Skip to content

Commit a413cc4

Browse files
Merge pull request openshift#7169 from barbacbd/CORS-2656
CORS-2656: Remove context from cluster uninstaller struct
2 parents 74d48f8 + 316a42d commit a413cc4

22 files changed

+262
-229
lines changed

pkg/destroy/gcp/address.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
package gcp
22

33
import (
4+
"context"
5+
46
"github.com/pkg/errors"
57
"google.golang.org/api/compute/v1"
68
"google.golang.org/api/googleapi"
79

810
"github.com/openshift/installer/pkg/types/gcp"
911
)
1012

11-
func (o *ClusterUninstaller) listAddresses() ([]cloudResource, error) {
12-
return o.listAddressesWithFilter("items(name,region,addressType),nextPageToken", o.clusterIDFilter(), nil)
13+
func (o *ClusterUninstaller) listAddresses(ctx context.Context) ([]cloudResource, error) {
14+
return o.listAddressesWithFilter(ctx, "items(name,region,addressType),nextPageToken", o.clusterIDFilter(), nil)
1315
}
1416

1517
// listAddressesWithFilter lists addresses in the project that satisfy the filter criteria.
1618
// The fields parameter specifies which fields should be returned in the result, the filter string contains
1719
// a filter string passed to the API to filter results. The filterFunc is a client-side filtering function
1820
// that determines whether a particular result should be returned or not.
19-
func (o *ClusterUninstaller) listAddressesWithFilter(fields string, filter string, filterFunc func(*compute.Address) bool) ([]cloudResource, error) {
21+
func (o *ClusterUninstaller) listAddressesWithFilter(ctx context.Context, fields string, filter string, filterFunc func(*compute.Address) bool) ([]cloudResource, error) {
2022
o.Logger.Debugf("Listing addresses")
21-
ctx, cancel := o.contextWithTimeout()
23+
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
2224
defer cancel()
2325
result := []cloudResource{}
2426
req := o.computeSvc.Addresses.List(o.ProjectID, o.Region).Fields(googleapi.Field(fields))
@@ -58,9 +60,9 @@ func (o *ClusterUninstaller) listAddressesWithFilter(fields string, filter strin
5860
return result, nil
5961
}
6062

61-
func (o *ClusterUninstaller) deleteAddress(item cloudResource) error {
63+
func (o *ClusterUninstaller) deleteAddress(ctx context.Context, item cloudResource) error {
6264
o.Logger.Debugf("Deleting address %s", item.name)
63-
ctx, cancel := o.contextWithTimeout()
65+
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
6466
defer cancel()
6567
op, err := o.computeSvc.Addresses.Delete(o.ProjectID, o.Region, item.name).RequestId(o.requestID(item.typeName, item.name)).Context(ctx).Do()
6668
if err != nil && !isNoOp(err) {
@@ -81,14 +83,14 @@ func (o *ClusterUninstaller) deleteAddress(item cloudResource) error {
8183

8284
// destroyAddresses removes all address resources that have a name prefixed
8385
// with the cluster's infra ID.
84-
func (o *ClusterUninstaller) destroyAddresses() error {
85-
found, err := o.listAddresses()
86+
func (o *ClusterUninstaller) destroyAddresses(ctx context.Context) error {
87+
found, err := o.listAddresses(ctx)
8688
if err != nil {
8789
return err
8890
}
8991
items := o.insertPendingItems("address", found)
9092
for _, item := range items {
91-
err := o.deleteAddress(item)
93+
err := o.deleteAddress(ctx, item)
9294
if err != nil {
9395
o.errorTracker.suppressWarning(item.key, err, o.Logger)
9496
}

pkg/destroy/gcp/backendservice.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
package gcp
22

33
import (
4+
"context"
5+
46
"github.com/pkg/errors"
57
"google.golang.org/api/compute/v1"
68
"google.golang.org/api/googleapi"
79

810
"github.com/openshift/installer/pkg/types/gcp"
911
)
1012

11-
func (o *ClusterUninstaller) listBackendServices() ([]cloudResource, error) {
12-
return o.listBackendServicesWithFilter("items(name),nextPageToken", o.clusterIDFilter(), nil)
13+
func (o *ClusterUninstaller) listBackendServices(ctx context.Context) ([]cloudResource, error) {
14+
return o.listBackendServicesWithFilter(ctx, "items(name),nextPageToken", o.clusterIDFilter(), nil)
1315
}
1416

1517
// listBackendServicesWithFilter lists backend services in the project that satisfy the filter criteria.
1618
// The fields parameter specifies which fields should be returned in the result, the filter string contains
1719
// a filter string passed to the API to filter results. The filterFunc is a client-side filtering function
1820
// that determines whether a particular result should be returned or not.
19-
func (o *ClusterUninstaller) listBackendServicesWithFilter(fields string, filter string, filterFunc func(*compute.BackendService) bool) ([]cloudResource, error) {
21+
func (o *ClusterUninstaller) listBackendServicesWithFilter(ctx context.Context, fields string, filter string, filterFunc func(*compute.BackendService) bool) ([]cloudResource, error) {
2022
o.Logger.Debugf("Listing backend services")
21-
ctx, cancel := o.contextWithTimeout()
23+
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
2224
defer cancel()
2325
result := []cloudResource{}
2426
req := o.computeSvc.RegionBackendServices.List(o.ProjectID, o.Region).Fields(googleapi.Field(fields))
@@ -51,9 +53,9 @@ func (o *ClusterUninstaller) listBackendServicesWithFilter(fields string, filter
5153
return result, nil
5254
}
5355

54-
func (o *ClusterUninstaller) deleteBackendService(item cloudResource) error {
56+
func (o *ClusterUninstaller) deleteBackendService(ctx context.Context, item cloudResource) error {
5557
o.Logger.Debugf("Deleting backend service %s", item.name)
56-
ctx, cancel := o.contextWithTimeout()
58+
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
5759
defer cancel()
5860
op, err := o.computeSvc.RegionBackendServices.Delete(o.ProjectID, o.Region, item.name).RequestId(o.requestID(item.typeName, item.name)).Context(ctx).Do()
5961
if err != nil && !isNoOp(err) {
@@ -74,14 +76,14 @@ func (o *ClusterUninstaller) deleteBackendService(item cloudResource) error {
7476

7577
// destroyBackendServices removes backend services with a name prefixed
7678
// with the cluster's infra ID.
77-
func (o *ClusterUninstaller) destroyBackendServices() error {
78-
found, err := o.listBackendServices()
79+
func (o *ClusterUninstaller) destroyBackendServices(ctx context.Context) error {
80+
found, err := o.listBackendServices(ctx)
7981
if err != nil {
8082
return err
8183
}
8284
items := o.insertPendingItems("backendservice", found)
8385
for _, item := range items {
84-
err := o.deleteBackendService(item)
86+
err := o.deleteBackendService(ctx, item)
8587
if err != nil {
8688
o.errorTracker.suppressWarning(item.key, err, o.Logger)
8789
}

pkg/destroy/gcp/bucket.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package gcp
22

33
import (
4+
"context"
45
"regexp"
56

67
"github.com/pkg/errors"
@@ -13,17 +14,17 @@ var (
1314
multiDashes = regexp.MustCompile(`-{2,}`)
1415
)
1516

16-
func (o *ClusterUninstaller) listBuckets() ([]cloudResource, error) {
17-
return o.listBucketsWithFilter("items(name),nextPageToken", o.ClusterID+"-", nil)
17+
func (o *ClusterUninstaller) listBuckets(ctx context.Context) ([]cloudResource, error) {
18+
return o.listBucketsWithFilter(ctx, "items(name),nextPageToken", o.ClusterID+"-", nil)
1819
}
1920

2021
// listBucketsWithFilter lists buckets in the project that satisfy the filter criteria.
2122
// The fields parameter specifies which fields should be returned in the result, the filter string contains
2223
// a prefix string passed to the API to filter results. The filterFunc is a client-side filtering function
2324
// that determines whether a particular result should be returned or not.
24-
func (o *ClusterUninstaller) listBucketsWithFilter(fields string, prefix string, filterFunc func(*storage.Bucket) bool) ([]cloudResource, error) {
25+
func (o *ClusterUninstaller) listBucketsWithFilter(ctx context.Context, fields string, prefix string, filterFunc func(*storage.Bucket) bool) ([]cloudResource, error) {
2526
o.Logger.Debug("Listing storage buckets")
26-
ctx, cancel := o.contextWithTimeout()
27+
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
2728
defer cancel()
2829
result := []cloudResource{}
2930
req := o.storageSvc.Buckets.List(o.ProjectID).Fields(googleapi.Field(fields))
@@ -50,9 +51,9 @@ func (o *ClusterUninstaller) listBucketsWithFilter(fields string, prefix string,
5051
return result, nil
5152
}
5253

53-
func (o *ClusterUninstaller) deleteBucket(item cloudResource) error {
54+
func (o *ClusterUninstaller) deleteBucket(ctx context.Context, item cloudResource) error {
5455
o.Logger.Debugf("Deleting storate bucket %s", item.name)
55-
ctx, cancel := o.contextWithTimeout()
56+
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
5657
defer cancel()
5758
err := o.storageSvc.Buckets.Delete(item.name).Context(ctx).Do()
5859
if err != nil && !isNoOp(err) {
@@ -65,25 +66,25 @@ func (o *ClusterUninstaller) deleteBucket(item cloudResource) error {
6566

6667
// destroyBuckets finds all gcs buckets that have a name prefixed
6768
// with the cluster's infra ID. It then removes all the objects in each bucket and deletes it.
68-
func (o *ClusterUninstaller) destroyBuckets() error {
69-
found, err := o.listBuckets()
69+
func (o *ClusterUninstaller) destroyBuckets(ctx context.Context) error {
70+
found, err := o.listBuckets(ctx)
7071
if err != nil {
7172
return err
7273
}
7374
items := o.insertPendingItems("bucket", found)
7475
for _, item := range items {
75-
foundObjects, err := o.listBucketObjects(item)
76+
foundObjects, err := o.listBucketObjects(ctx, item)
7677
if err != nil {
7778
return err
7879
}
7980
objects := o.insertPendingItems("bucketobject", foundObjects)
8081
for _, object := range objects {
81-
err = o.deleteBucketObject(item, object)
82+
err = o.deleteBucketObject(ctx, item, object)
8283
if err != nil {
8384
o.errorTracker.suppressWarning(object.key, err, o.Logger)
8485
}
8586
}
86-
err = o.deleteBucket(item)
87+
err = o.deleteBucket(ctx, item)
8788
if err != nil {
8889
o.errorTracker.suppressWarning(item.key, err, o.Logger)
8990
}

pkg/destroy/gcp/bucketobject.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package gcp
22

33
import (
4+
"context"
5+
46
"github.com/pkg/errors"
57
storage "google.golang.org/api/storage/v1"
68
)
79

8-
func (o *ClusterUninstaller) listBucketObjects(bucket cloudResource) ([]cloudResource, error) {
10+
func (o *ClusterUninstaller) listBucketObjects(ctx context.Context, bucket cloudResource) ([]cloudResource, error) {
911
o.Logger.Debugf("Listing objects for storage bucket %s", bucket.name)
10-
ctx, cancel := o.contextWithTimeout()
12+
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
1113
defer cancel()
1214
result := []cloudResource{}
1315
req := o.storageSvc.Objects.List(bucket.name).Fields("items(name),nextPageToken")
@@ -28,9 +30,9 @@ func (o *ClusterUninstaller) listBucketObjects(bucket cloudResource) ([]cloudRes
2830
return result, nil
2931
}
3032

31-
func (o *ClusterUninstaller) deleteBucketObject(bucket cloudResource, item cloudResource) error {
33+
func (o *ClusterUninstaller) deleteBucketObject(ctx context.Context, bucket cloudResource, item cloudResource) error {
3234
o.Logger.Debugf("Deleting storate object %s/%s", bucket.name, item.name)
33-
ctx, cancel := o.contextWithTimeout()
35+
ctx, cancel := context.WithTimeout(ctx, defaultTimeout)
3436
defer cancel()
3537
err := o.storageSvc.Objects.Delete(bucket.name, item.name).Context(ctx).Do()
3638
if err != nil && !isNoOp(err) {

0 commit comments

Comments
 (0)