func()

in controllers/blobstore/chain/crete_file_blobstore.go [22:60]


func (c *CreateFileBlobStore) ServeRequest(ctx context.Context, blobStore *nexusApi.NexusBlobStore) error {
	if blobStore.Spec.File == nil {
		return nil
	}

	log := ctrl.LoggerFrom(ctx).WithValues("blobstore_name", blobStore.Spec.Name)
	log.Info("Start creating file blobstore")

	nexusBlobStore, err := c.nexusFileBlobStoreApiClient.Get(blobStore.Spec.Name)
	if err != nil {
		if !nexus.IsErrNotFound(err) {
			return fmt.Errorf("failed to get blobstore: %w", err)
		}

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

		if err = c.nexusFileBlobStoreApiClient.Create(specToFileBlobstore(&blobStore.Spec)); err != nil {
			return fmt.Errorf("failed to create blobstore: %w", err)
		}

		log.Info("Blobstore has been created")

		return nil
	}

	newNexusBlobStore := specToFileBlobstore(&blobStore.Spec)

	if fileBlobstoreChanged(newNexusBlobStore, nexusBlobStore) {
		log.Info("Updating blobstore")

		if err = c.nexusFileBlobStoreApiClient.Update(blobStore.Spec.Name, newNexusBlobStore); err != nil {
			return fmt.Errorf("failed to update blobstore: %w", err)
		}

		log.Info("Blobstore has been updated")
	}

	return nil
}