internal/cloud/gcp: use pkg.go.dev/cloud.google.com/go for Compute Engine

The internal GCP package used `pkg.go.dev/google.golang.org/api` [1] to
interact with Compute Engine API. Modify the package to use the new and
idiomatic `pkg.go.dev/cloud.google.com/go` [2] library for interacting
with the Compute Engine API. The new library have been already used to
interact with the Cloudbuild and Storage APIs. The new library was not
used for Compute Engine since the beginning, because at that time, it
didn't support Compute Engine.

Update go.mod and vendored packages.

[1] https://github.com/googleapis/google-api-go-client
[2] https://github.com/googleapis/google-cloud-go

Signed-off-by: Tomas Hozza <thozza@redhat.com>
This commit is contained in:
Tomas Hozza 2022-01-04 11:32:52 +01:00 committed by Sanne Raymaekers
parent 9302befa67
commit 07a5745875
714 changed files with 441887 additions and 233259 deletions

View file

@ -11,10 +11,11 @@ import (
"regexp"
"strings"
compute "cloud.google.com/go/compute/apiv1"
"cloud.google.com/go/storage"
"google.golang.org/api/compute/v1"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
computepb "google.golang.org/genproto/googleapis/cloud/compute/v1"
)
const (
@ -124,15 +125,19 @@ func (g *GCP) StorageImageImportCleanup(ctx context.Context, imageName string) (
return deletedObjects, errors
}
defer storageClient.Close()
computeService, err := compute.NewService(ctx, option.WithCredentials(g.creds))
imagesClient, err := compute.NewImagesRESTClient(ctx, option.WithCredentials(g.creds))
if err != nil {
errors = append(errors, fmt.Errorf("failed to get Compute Engine client: %v", err))
errors = append(errors, fmt.Errorf("failed to get Compute Engine Images client: %v", err))
return deletedObjects, errors
}
defer imagesClient.Close()
// Clean up the cache bucket
image, err := computeService.Images.Get(g.creds.ProjectID, imageName).Context(ctx).Do()
req := &computepb.GetImageRequest{
Project: g.GetProjectID(),
Image: imageName,
}
image, err := imagesClient.Get(ctx, req)
if err != nil {
// Without the image, we can not determine which objects to delete, just return
errors = append(errors, fmt.Errorf("failed to get image: %v", err))
@ -143,7 +148,7 @@ func (g *GCP) StorageImageImportCleanup(ctx context.Context, imageName string) (
// e.g. "https://www.googleapis.com/compute/v1/projects/ascendant-braid-303513/zones/europe-west1-b/disks/disk-d7tr4"
// e.g. "https://www.googleapis.com/compute/v1/projects/ascendant-braid-303513/zones/europe-west1-b/disks/disk-l7s2w-1"
// Needed is only the part between "disk-" and possible "-<num>"/"EOF"
ss := strings.Split(image.SourceDisk, "/")
ss := strings.Split(image.GetSourceDisk(), "/")
srcDiskName := ss[len(ss)-1]
ss = strings.Split(srcDiskName, "-")
if len(ss) < 2 {