Skip to content

Commit e7bbf8f

Browse files
authored
Merge pull request #1219 from sunnylovestiramisu/automated-cherry-pick-of-#1092-upstream-release-1.7
Automated cherry pick of #1092: Separate user errors from internal errors
2 parents be6c6c5 + 7f52192 commit e7bbf8f

File tree

19 files changed

+302
-226
lines changed

19 files changed

+302
-226
lines changed

cmd/gce-pd-csi-driver/main.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func handle() {
102102
}
103103
extraVolumeLabels, err := common.ConvertLabelsStringToMap(*extraVolumeLabelsStr)
104104
if err != nil {
105-
klog.Fatalf("Bad extra volume labels: %w", err)
105+
klog.Fatalf("Bad extra volume labels: %v", err.Error())
106106
}
107107

108108
gceDriver := driver.GetGCEDriver()
@@ -119,7 +119,7 @@ func handle() {
119119
if *runControllerService {
120120
cloudProvider, err := gce.CreateCloudProvider(ctx, version, *cloudConfigFilePath)
121121
if err != nil {
122-
klog.Fatalf("Failed to get cloud provider: %w", err)
122+
klog.Fatalf("Failed to get cloud provider: %v", err.Error())
123123
}
124124
controllerServer = driver.NewControllerServer(gceDriver, cloudProvider)
125125
} else if *cloudConfigFilePath != "" {
@@ -131,20 +131,20 @@ func handle() {
131131
if *runNodeService {
132132
mounter, err := mountmanager.NewSafeMounter()
133133
if err != nil {
134-
klog.Fatalf("Failed to get safe mounter: %w", err)
134+
klog.Fatalf("Failed to get safe mounter: %v", err.Error())
135135
}
136136
deviceUtils := mountmanager.NewDeviceUtils()
137137
statter := mountmanager.NewStatter(mounter)
138138
meta, err := metadataservice.NewMetadataService()
139139
if err != nil {
140-
klog.Fatalf("Failed to set up metadata service: %w", err)
140+
klog.Fatalf("Failed to set up metadata service: %v", err.Error())
141141
}
142142
nodeServer = driver.NewNodeServer(gceDriver, mounter, deviceUtils, meta, statter)
143143
}
144144

145145
err = gceDriver.SetupGCEDriver(driverName, version, extraVolumeLabels, identityServer, controllerServer, nodeServer)
146146
if err != nil {
147-
klog.Fatalf("Failed to initialize GCE CSI Driver: %w", err)
147+
klog.Fatalf("Failed to initialize GCE CSI Driver: %v", err.Error())
148148
}
149149

150150
gce.AttachDiskBackoff.Duration = *attachDiskBackoffDuration

pkg/gce-cloud-provider/compute/fake-gce.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func (cloud *FakeCloudProvider) RepairUnderspecifiedVolumeKey(ctx context.Contex
103103
}
104104
r, err := common.GetRegionFromZones([]string{cloud.zone})
105105
if err != nil {
106-
return "", nil, fmt.Errorf("failed to get region from zones: %v", err)
106+
return "", nil, fmt.Errorf("failed to get region from zones: %w", err)
107107
}
108108
volumeKey.Region = r
109109
return project, volumeKey, nil

pkg/gce-cloud-provider/compute/gce-compute.go

+19-19
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func (cloud *CloudProvider) GetDefaultZone() string {
115115
func (cloud *CloudProvider) ListDisks(ctx context.Context) ([]*computev1.Disk, string, error) {
116116
region, err := common.GetRegionFromZones([]string{cloud.zone})
117117
if err != nil {
118-
return nil, "", fmt.Errorf("failed to get region from zones: %v", err)
118+
return nil, "", fmt.Errorf("failed to get region from zones: %w", err)
119119
}
120120
zones, err := cloud.ListZones(ctx, region)
121121
if err != nil {
@@ -162,7 +162,7 @@ func (cloud *CloudProvider) RepairUnderspecifiedVolumeKey(ctx context.Context, p
162162
}
163163
region, err := common.GetRegionFromZones([]string{cloud.zone})
164164
if err != nil {
165-
return "", nil, fmt.Errorf("failed to get region from zones: %v", err)
165+
return "", nil, fmt.Errorf("failed to get region from zones: %w", err)
166166
}
167167
switch volumeKey.Type() {
168168
case meta.Zonal:
@@ -216,7 +216,7 @@ func (cloud *CloudProvider) ListZones(ctx context.Context, region string) ([]str
216216
zones := []string{}
217217
zoneList, err := cloud.service.Zones.List(cloud.project).Filter(fmt.Sprintf("region eq .*%s$", region)).Do()
218218
if err != nil {
219-
return nil, fmt.Errorf("failed to list zones in region %s: %v", region, err)
219+
return nil, fmt.Errorf("failed to list zones in region %s: %w", region, err)
220220
}
221221
for _, zone := range zoneList.Items {
222222
zones = append(zones, zone.Name)
@@ -493,7 +493,7 @@ func (cloud *CloudProvider) insertRegionalDisk(
493493
klog.Warningf("GCE PD %s already exists, reusing", volKey.Name)
494494
return nil
495495
}
496-
return status.Error(codes.Internal, fmt.Sprintf("unknown Insert disk error: %v", err))
496+
return status.Error(codes.Internal, fmt.Sprintf("unknown Insert disk error: %v", err.Error()))
497497
}
498498
klog.V(5).Infof("InsertDisk operation %s for disk %s", opName, diskToCreate.Name)
499499

@@ -514,7 +514,7 @@ func (cloud *CloudProvider) insertRegionalDisk(
514514
klog.Warningf("GCE PD %s already exists after wait, reusing", volKey.Name)
515515
return nil
516516
}
517-
return fmt.Errorf("unknown Insert disk operation error: %v", err)
517+
return fmt.Errorf("unknown Insert disk operation error: %w", err)
518518
}
519519
return nil
520520
}
@@ -604,7 +604,7 @@ func (cloud *CloudProvider) insertZonalDisk(
604604
klog.Warningf("GCE PD %s already exists, reusing", volKey.Name)
605605
return nil
606606
}
607-
return fmt.Errorf("unknown Insert disk error: %v", err)
607+
return fmt.Errorf("unknown Insert disk error: %w", err)
608608
}
609609
klog.V(5).Infof("InsertDisk operation %s for disk %s", opName, diskToCreate.Name)
610610

@@ -626,7 +626,7 @@ func (cloud *CloudProvider) insertZonalDisk(
626626
klog.Warningf("GCE PD %s already exists after wait, reusing", volKey.Name)
627627
return nil
628628
}
629-
return fmt.Errorf("unknown Insert disk operation error: %v", err)
629+
return fmt.Errorf("unknown Insert disk operation error: %w", err)
630630
}
631631
return nil
632632
}
@@ -685,7 +685,7 @@ func (cloud *CloudProvider) AttachDisk(ctx context.Context, project string, volK
685685

686686
deviceName, err := common.GetDeviceName(volKey)
687687
if err != nil {
688-
return fmt.Errorf("failed to get device name: %v", err)
688+
return fmt.Errorf("failed to get device name: %w", err)
689689
}
690690
attachedDiskV1 := &computev1.AttachedDisk{
691691
DeviceName: deviceName,
@@ -697,13 +697,13 @@ func (cloud *CloudProvider) AttachDisk(ctx context.Context, project string, volK
697697

698698
op, err := cloud.service.Instances.AttachDisk(project, instanceZone, instanceName, attachedDiskV1).Context(ctx).Do()
699699
if err != nil {
700-
return fmt.Errorf("failed cloud service attach disk call: %v", err)
700+
return fmt.Errorf("failed cloud service attach disk call: %w", err)
701701
}
702702
klog.V(5).Infof("AttachDisk operation %s for disk %s", op.Name, attachedDiskV1.DeviceName)
703703

704704
err = cloud.waitForZonalOp(ctx, project, op.Name, instanceZone)
705705
if err != nil {
706-
return fmt.Errorf("failed when waiting for zonal op: %v", err)
706+
return fmt.Errorf("failed when waiting for zonal op: %w", err)
707707
}
708708
return nil
709709
}
@@ -814,7 +814,7 @@ func (cloud *CloudProvider) WaitForAttach(ctx context.Context, project string, v
814814
klog.V(6).Infof("Polling for attach of disk %v to instance %v to complete for %v", volKey.Name, instanceName, time.Since(start))
815815
disk, err := cloud.GetDisk(ctx, project, volKey, GCEAPIVersionV1)
816816
if err != nil {
817-
return false, fmt.Errorf("GetDisk failed to get disk: %v", err)
817+
return false, fmt.Errorf("GetDisk failed to get disk: %w", err)
818818
}
819819

820820
if disk == nil {
@@ -946,7 +946,7 @@ func (cloud *CloudProvider) waitForImageCreation(ctx context.Context, project, i
946946
klog.V(6).Infof("Checking GCE Image %s.", imageName)
947947
image, err := cloud.GetImage(ctx, project, imageName)
948948
if err != nil {
949-
klog.Warningf("Error in getting image %s, %w", imageName, err)
949+
klog.Warningf("Error in getting image %s, %v", imageName, err.Error())
950950
} else if image != nil {
951951
if image.Status != "PENDING" {
952952
klog.V(6).Infof("Image %s status is %s", imageName, image.Status)
@@ -1009,7 +1009,7 @@ func (cloud *CloudProvider) ResizeDisk(ctx context.Context, project string, volK
10091009
klog.V(5).Infof("Resizing disk %v to size %v", volKey, requestBytes)
10101010
cloudDisk, err := cloud.GetDisk(ctx, project, volKey, GCEAPIVersionV1)
10111011
if err != nil {
1012-
return -1, fmt.Errorf("failed to get disk: %v", err)
1012+
return -1, fmt.Errorf("failed to get disk: %w", err)
10131013
}
10141014

10151015
sizeGb := cloudDisk.GetSizeGb()
@@ -1037,13 +1037,13 @@ func (cloud *CloudProvider) resizeZonalDisk(ctx context.Context, project string,
10371037
}
10381038
op, err := cloud.service.Disks.Resize(project, volKey.Zone, volKey.Name, resizeReq).Context(ctx).Do()
10391039
if err != nil {
1040-
return -1, fmt.Errorf("failed to resize zonal volume %v: %v", volKey.String(), err)
1040+
return -1, fmt.Errorf("failed to resize zonal volume %v: %w", volKey.String(), err)
10411041
}
10421042
klog.V(5).Infof("ResizeDisk operation %s for disk %s", op.Name, volKey.Name)
10431043

10441044
err = cloud.waitForZonalOp(ctx, project, op.Name, volKey.Zone)
10451045
if err != nil {
1046-
return -1, fmt.Errorf("failed waiting for op for zonal resize for %s: %v", volKey.String(), err)
1046+
return -1, fmt.Errorf("failed waiting for op for zonal resize for %s: %w", volKey.String(), err)
10471047
}
10481048

10491049
return requestGb, nil
@@ -1056,13 +1056,13 @@ func (cloud *CloudProvider) resizeRegionalDisk(ctx context.Context, project stri
10561056

10571057
op, err := cloud.service.RegionDisks.Resize(project, volKey.Region, volKey.Name, resizeReq).Context(ctx).Do()
10581058
if err != nil {
1059-
return -1, fmt.Errorf("failed to resize regional volume %v: %v", volKey.String(), err)
1059+
return -1, fmt.Errorf("failed to resize regional volume %v: %w", volKey.String(), err)
10601060
}
10611061
klog.V(5).Infof("ResizeDisk operation %s for disk %s", op.Name, volKey.Name)
10621062

10631063
err = cloud.waitForRegionalOp(ctx, project, op.Name, volKey.Region)
10641064
if err != nil {
1065-
return -1, fmt.Errorf("failed waiting for op for regional resize for %s: %v", volKey.String(), err)
1065+
return -1, fmt.Errorf("failed waiting for op for regional resize for %s: %w", volKey.String(), err)
10661066
}
10671067

10681068
return requestGb, nil
@@ -1112,7 +1112,7 @@ func (cloud *CloudProvider) waitForSnapshotCreation(ctx context.Context, project
11121112
klog.V(6).Infof("Checking GCE Snapshot %s.", snapshotName)
11131113
snapshot, err := cloud.GetSnapshot(ctx, project, snapshotName)
11141114
if err != nil {
1115-
klog.Warningf("Error in getting snapshot %s, %w", snapshotName, err)
1115+
klog.Warningf("Error in getting snapshot %s, %v", snapshotName, err.Error())
11161116
} else if snapshot != nil {
11171117
if snapshot.Status != "CREATING" {
11181118
klog.V(6).Infof("Snapshot %s status is %s", snapshotName, snapshot.Status)
@@ -1159,7 +1159,7 @@ func encodeTags(tags map[string]string) (string, error) {
11591159

11601160
enc, err := json.Marshal(tags)
11611161
if err != nil {
1162-
return "", fmt.Errorf("failed to encodeTags %v: %v", tags, err)
1162+
return "", fmt.Errorf("failed to encodeTags %v: %w", tags, err)
11631163
}
11641164
return string(enc), nil
11651165
}

pkg/gce-cloud-provider/compute/gce.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func CreateCloudProvider(ctx context.Context, vendorVersion string, configPath s
100100

101101
project, zone, err := getProjectAndZone(configFile)
102102
if err != nil {
103-
return nil, fmt.Errorf("Failed getting Project and Zone: %v", err)
103+
return nil, fmt.Errorf("Failed getting Project and Zone: %w", err)
104104
}
105105

106106
return &CloudProvider{
@@ -148,13 +148,13 @@ func readConfig(configPath string) (*ConfigFile, error) {
148148

149149
reader, err := os.Open(configPath)
150150
if err != nil {
151-
return nil, fmt.Errorf("couldn't open cloud provider configuration at %s: %v", configPath, err)
151+
return nil, fmt.Errorf("couldn't open cloud provider configuration at %s: %w", configPath, err)
152152
}
153153
defer reader.Close()
154154

155155
cfg := &ConfigFile{}
156156
if err := gcfg.FatalOnly(gcfg.ReadInto(cfg, reader)); err != nil {
157-
return nil, fmt.Errorf("couldn't read cloud provider configuration at %s: %v", configPath, err)
157+
return nil, fmt.Errorf("couldn't read cloud provider configuration at %s: %w", configPath, err)
158158
}
159159
return cfg, nil
160160
}
@@ -193,7 +193,7 @@ func createCloudServiceWithDefaultServiceAccount(ctx context.Context, vendorVers
193193
func newOauthClient(ctx context.Context, tokenSource oauth2.TokenSource) (*http.Client, error) {
194194
if err := wait.PollImmediate(5*time.Second, 30*time.Second, func() (bool, error) {
195195
if _, err := tokenSource.Token(); err != nil {
196-
klog.Errorf("error fetching initial token: %w", err)
196+
klog.Errorf("error fetching initial token: %v", err.Error())
197197
return false, nil
198198
}
199199
return true, nil

pkg/gce-cloud-provider/metadata/metadata.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,19 @@ var _ MetadataService = &metadataServiceManager{}
4545
func NewMetadataService() (MetadataService, error) {
4646
zone, err := metadata.Zone()
4747
if err != nil {
48-
return nil, fmt.Errorf("failed to get current zone: %v", err)
48+
return nil, fmt.Errorf("failed to get current zone: %w", err)
4949
}
5050
projectID, err := metadata.ProjectID()
5151
if err != nil {
52-
return nil, fmt.Errorf("failed to get project: %v", err)
52+
return nil, fmt.Errorf("failed to get project: %w", err)
5353
}
5454
name, err := metadata.InstanceName()
5555
if err != nil {
56-
return nil, fmt.Errorf("failed to get instance name: %v", err)
56+
return nil, fmt.Errorf("failed to get instance name: %w", err)
5757
}
5858
fullMachineType, err := metadata.Get("instance/machine-type")
5959
if err != nil {
60-
return nil, fmt.Errorf("failed to get machine-type: %v", err)
60+
return nil, fmt.Errorf("failed to get machine-type: %w", err)
6161
}
6262
// Response format: "projects/[NUMERIC_PROJECT_ID]/machineTypes/[MACHINE_TYPE]"
6363
splits := strings.Split(fullMachineType, "/")

0 commit comments

Comments
 (0)