in controllers/blobstore/chain/crete_s3_blobstore.go [25:64]
func (c *CreateS3BlobStore) ServeRequest(ctx context.Context, blobStore *nexusApi.NexusBlobStore) error {
if blobStore.Spec.S3 == nil {
return nil
}
log := ctrl.LoggerFrom(ctx).WithValues("blobstore_name", blobStore.Spec.Name)
log.Info("Start creating S3 blobstore")
nexusBlobStore, err := c.specToS3Blobstore(ctx, &blobStore.Spec, blobStore.Namespace)
if err != nil {
return err
}
_, err = c.nexusS3BlobStoreApiClient.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.nexusS3BlobStoreApiClient.Create(nexusBlobStore); err != nil {
return fmt.Errorf("failed to create blobstore: %w", err)
}
log.Info("Blobstore has been created")
return nil
}
log.Info("Updating blobstore")
if err = c.nexusS3BlobStoreApiClient.Update(blobStore.Spec.Name, nexusBlobStore); err != nil {
return fmt.Errorf("failed to update blobstore: %w", err)
}
log.Info("Blobstore has been updated")
return nil
}