diff --git a/cmd/gce-pd-csi-driver/main.go b/cmd/gce-pd-csi-driver/main.go index cc6b8b2ba..2b8e4bbb3 100644 --- a/cmd/gce-pd-csi-driver/main.go +++ b/cmd/gce-pd-csi-driver/main.go @@ -239,12 +239,15 @@ func enumFlag(target *gce.Environment, name string, allowedComputeEnvironment [] func urlFlag(target **url.URL, name string, usage string) { flag.Func(name, usage, func(flagValue string) error { + if flagValue == "" { + return nil + } computeURL, err := url.ParseRequestURI(flagValue) if err == nil { *target = computeURL return nil } - klog.Infof("Error parsing endpoint compute endpoint %v", err) + klog.Errorf("Error parsing endpoint compute endpoint %v", err) return err }) } diff --git a/test/e2e/tests/single_zone_e2e_test.go b/test/e2e/tests/single_zone_e2e_test.go index 71587270b..b2ccd0359 100644 --- a/test/e2e/tests/single_zone_e2e_test.go +++ b/test/e2e/tests/single_zone_e2e_test.go @@ -1295,6 +1295,16 @@ var _ = Describe("GCE PD CSI Driver", func() { klog.Infof("Creating new driver and client for node %s\n", i.GetName()) + // Create new driver and client with valid, empty endpoint + klog.Infof("Setup driver with empty compute endpoint %s\n", i.GetName()) + tcEmpty, err := testutils.GCEClientAndDriverSetup(i, "") + if err != nil { + klog.Fatalf("Failed to set up Test Context for instance %v: %v", i.GetName(), err) + } + _, err = tcEmpty.Client.ListVolumes() + + Expect(err).To(BeNil(), "no error expected when passed empty compute url") + // Create new driver and client w/ valid, passed-in endpoint tcValid, err := testutils.GCEClientAndDriverSetup(i, "https://compute.googleapis.com") if err != nil { diff --git a/test/e2e/utils/utils.go b/test/e2e/utils/utils.go index 0f92e685b..00e5b8fc3 100644 --- a/test/e2e/utils/utils.go +++ b/test/e2e/utils/utils.go @@ -57,9 +57,8 @@ func GCEClientAndDriverSetup(instance *remote.InstanceInfo, computeEndpoint stri fmt.Sprintf("--extra-labels=%s=%s", DiskLabelKey, DiskLabelValue), "--max-concurrent-format-and-mount=20", // otherwise the serialization times out the e2e test. } - if computeEndpoint != "" { - extra_flags = append(extra_flags, fmt.Sprintf("--compute-endpoint %s", computeEndpoint)) - } + extra_flags = append(extra_flags, fmt.Sprintf("--compute-endpoint=%s", computeEndpoint)) + workspace := remote.NewWorkspaceDir("gce-pd-e2e-") // Log at V(6) as the compute API calls are emitted at that level and it's // useful to see what's happening when debugging tests.