func()

in controllers/cleanuppolicy/chain/create_cleanuppolicy.go [22:52]


func (c *CreateNexusCleanupPolicy) ServeRequest(ctx context.Context, policy *nexusApi.NexusCleanupPolicy) error {
	log := ctrl.LoggerFrom(ctx).WithValues("name", policy.Spec.Name)
	log.Info("Start creating cleanup policy")

	_, err := c.apiClient.Get(ctx, policy.Spec.Name)
	if err != nil {
		if !nexus.IsErrNotFound(err) {
			return fmt.Errorf("failed to get cleanup policy: %w", err)
		}

		log.Info("Cleanup policy doesn't exist, creating new one")

		if err = c.apiClient.Create(ctx, specToCleanupPolicy(&policy.Spec)); err != nil {
			return fmt.Errorf("failed to create cleanup policy: %w", err)
		}

		log.Info("Cleanup policy has been created")

		return nil
	}

	log.Info("Updating cleanup policy")

	if err = c.apiClient.Update(ctx, policy.Spec.Name, specToCleanupPolicy(&policy.Spec)); err != nil {
		return fmt.Errorf("failed to update cleanup policy: %w", err)
	}

	log.Info("Cleanup policy has been updated")

	return nil
}