From c4e4b3928cbc36efcf0e64bfabc1f4d76d48e03e Mon Sep 17 00:00:00 2001 From: pa250194 Date: Thu, 14 Oct 2021 09:39:53 -0500 Subject: [PATCH] Added Logger to closing GCP client Signed-off-by: pa250194 Added log for GCP provider auth error Signed-off-by: pa250194 --- controllers/bucket_controller.go | 7 +++++-- pkg/gcp/gcp.go | 10 +++++++++- pkg/gcp/gcp_test.go | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/controllers/bucket_controller.go b/controllers/bucket_controller.go index 86efc75c..002c95c6 100644 --- a/controllers/bucket_controller.go +++ b/controllers/bucket_controller.go @@ -268,12 +268,13 @@ func (r *BucketReconciler) reconcileDelete(ctx context.Context, bucket sourcev1. // reconcileWithGCP handles getting objects from a Google Cloud Platform bucket // using a gcp client func (r *BucketReconciler) reconcileWithGCP(ctx context.Context, bucket sourcev1.Bucket, tempDir string) (sourcev1.Bucket, error) { + log := logr.FromContext(ctx) gcpClient, err := r.authGCP(ctx, bucket) if err != nil { err = fmt.Errorf("auth error: %w", err) return sourcev1.BucketNotReady(bucket, sourcev1.AuthenticationFailedReason, err.Error()), err } - defer gcpClient.Client.Close() + defer gcpClient.Close(log) ctxTimeout, cancel := context.WithTimeout(ctx, bucket.Spec.Timeout.Duration) defer cancel() @@ -432,7 +433,9 @@ func (r *BucketReconciler) authGCP(ctx context.Context, bucket sourcev1.Bucket) } -func (r *BucketReconciler) auth(ctx context.Context, bucket sourcev1.Bucket) (*minio.Client, error) { +// authMinio creates a new Minio client to interact with S3 +// compatible storage services. +func (r *BucketReconciler) authMinio(ctx context.Context, bucket sourcev1.Bucket) (*minio.Client, error) { opt := minio.Options{ Region: bucket.Spec.Region, Secure: !bucket.Spec.Insecure, diff --git a/pkg/gcp/gcp.go b/pkg/gcp/gcp.go index cd4bedac..9127fcde 100644 --- a/pkg/gcp/gcp.go +++ b/pkg/gcp/gcp.go @@ -25,6 +25,7 @@ import ( "path/filepath" gcpstorage "cloud.google.com/go/storage" + "github.com/go-logr/logr" "google.golang.org/api/iterator" "google.golang.org/api/option" ) @@ -127,7 +128,7 @@ func (c *GCPClient) FGetObject(ctx context.Context, bucketName, objectName, loca return err } if !exists { - return ObjectDoesNotExist + return ErrorObjectDoesNotExist } objectFile, err := os.OpenFile(localPath, os.O_CREATE|os.O_WRONLY, 0600) @@ -162,3 +163,10 @@ func (c *GCPClient) ListObjects(ctx context.Context, bucketName string, query *g items := c.Client.Bucket(bucketName).Objects(ctx, query) return items } + +// Close closes the GCP Client and logs any useful errors +func (c *GCPClient) Close(log logr.Logger) { + if err := c.Client.Close(); err != nil { + log.Error(err, "GCP Provider") + } +} diff --git a/pkg/gcp/gcp_test.go b/pkg/gcp/gcp_test.go index f6618498..99d72309 100644 --- a/pkg/gcp/gcp_test.go +++ b/pkg/gcp/gcp_test.go @@ -30,6 +30,7 @@ import ( "os" "path/filepath" "testing" + "time" gcpstorage "cloud.google.com/go/storage" "github.com/fluxcd/source-controller/pkg/gcp"