@@ -19,7 +19,6 @@ import (
19
19
"errors"
20
20
"fmt"
21
21
"net/http"
22
- "net/url"
23
22
"os"
24
23
"runtime"
25
24
"time"
@@ -38,9 +37,6 @@ import (
38
37
"k8s.io/klog/v2"
39
38
)
40
39
41
- type Environment string
42
- type Version string
43
-
44
40
const (
45
41
TokenURL = "https://accounts.google.com/o/oauth2/token"
46
42
diskSourceURITemplateSingleZone = "projects/%s/zones/%s/disks/%s" // {gce.projectID}/zones/{disk.Zone}/disks/{disk.Name}"
@@ -50,12 +46,7 @@ const (
50
46
51
47
regionURITemplate = "projects/%s/regions/%s"
52
48
53
- replicaZoneURITemplateSingleZone = "projects/%s/zones/%s" // {gce.projectID}/zones/{disk.Zone}
54
- versionV1 Version = "v1"
55
- versionBeta Version = "beta"
56
- versionAlpha Version = "alpha"
57
- EnvironmentStaging Environment = "staging"
58
- EnvironmentProduction Environment = "production"
49
+ replicaZoneURITemplateSingleZone = "projects/%s/zones/%s" // {gce.projectID}/zones/{disk.Zone}
59
50
)
60
51
61
52
type CloudProvider struct {
@@ -81,7 +72,7 @@ type ConfigGlobal struct {
81
72
Zone string `gcfg:"zone"`
82
73
}
83
74
84
- func CreateCloudProvider (ctx context.Context , vendorVersion string , configPath string , computeEndpoint * url. URL , computeEnvironment Environment ) (* CloudProvider , error ) {
75
+ func CreateCloudProvider (ctx context.Context , vendorVersion string , configPath string , computeEndpoint string ) (* CloudProvider , error ) {
85
76
configFile , err := readConfig (configPath )
86
77
if err != nil {
87
78
return nil , err
@@ -96,23 +87,20 @@ func CreateCloudProvider(ctx context.Context, vendorVersion string, configPath s
96
87
return nil , err
97
88
}
98
89
99
- svc , err := createCloudService (ctx , vendorVersion , tokenSource , computeEndpoint , computeEnvironment )
90
+ svc , err := createCloudService (ctx , vendorVersion , tokenSource , computeEndpoint )
100
91
if err != nil {
101
92
return nil , err
102
93
}
103
- klog .Infof ("Compute endpoint for V1 version: %s" , svc .BasePath )
104
94
105
- betasvc , err := createBetaCloudService (ctx , vendorVersion , tokenSource , computeEndpoint , computeEnvironment )
95
+ betasvc , err := createBetaCloudService (ctx , vendorVersion , tokenSource , computeEndpoint )
106
96
if err != nil {
107
97
return nil , err
108
98
}
109
- klog .Infof ("Compute endpoint for Beta version: %s" , betasvc .BasePath )
110
99
111
- alphasvc , err := createAlphaCloudService (ctx , vendorVersion , tokenSource , computeEndpoint , computeEnvironment )
100
+ alphasvc , err := createAlphaCloudService (ctx , vendorVersion , tokenSource , computeEndpoint )
112
101
if err != nil {
113
102
return nil , err
114
103
}
115
- klog .Infof ("Compute endpoint for Alpha version: %s" , alphasvc .BasePath )
116
104
117
105
project , zone , err := getProjectAndZone (configFile )
118
106
if err != nil {
@@ -176,23 +164,16 @@ func readConfig(configPath string) (*ConfigFile, error) {
176
164
return cfg , nil
177
165
}
178
166
179
- func createAlphaCloudService (ctx context.Context , vendorVersion string , tokenSource oauth2.TokenSource , computeEndpoint * url.URL , computeEnvironment Environment ) (* computealpha.Service , error ) {
180
- computeOpts , err := getComputeVersion (ctx , tokenSource , computeEndpoint , computeEnvironment , versionAlpha )
181
- if err != nil {
182
- klog .Errorf ("Failed to get compute endpoint: %s" , err )
183
- }
184
- service , err := computealpha .NewService (ctx , computeOpts ... )
167
+ func createBetaCloudService (ctx context.Context , vendorVersion string , tokenSource oauth2.TokenSource , computeEndpoint string ) (* computebeta.Service , error ) {
168
+ client , err := newOauthClient (ctx , tokenSource )
185
169
if err != nil {
186
170
return nil , err
187
171
}
188
- service .UserAgent = fmt .Sprintf ("GCE CSI Driver/%s (%s %s)" , vendorVersion , runtime .GOOS , runtime .GOARCH )
189
- return service , nil
190
- }
191
172
192
- func createBetaCloudService ( ctx context. Context , vendorVersion string , tokenSource oauth2. TokenSource , computeEndpoint * url. URL , computeEnvironment Environment ) ( * computebeta. Service , error ) {
193
- computeOpts , err := getComputeVersion ( ctx , tokenSource , computeEndpoint , computeEnvironment , versionBeta )
194
- if err != nil {
195
- klog . Errorf ( "Failed to get compute endpoint: %s" , err )
173
+ computeOpts := []option. ClientOption { option . WithHTTPClient ( client )}
174
+ if computeEndpoint != "" {
175
+ betaEndpoint := fmt . Sprintf ( "%s/compute/beta/" , computeEndpoint )
176
+ computeOpts = append ( computeOpts , option . WithEndpoint ( betaEndpoint ) )
196
177
}
197
178
service , err := computebeta .NewService (ctx , computeOpts ... )
198
179
if err != nil {
@@ -202,41 +183,47 @@ func createBetaCloudService(ctx context.Context, vendorVersion string, tokenSour
202
183
return service , nil
203
184
}
204
185
205
- func createCloudService (ctx context.Context , vendorVersion string , tokenSource oauth2.TokenSource , computeEndpoint * url. URL , computeEnvironment Environment ) (* compute .Service , error ) {
206
- computeOpts , err := getComputeVersion (ctx , tokenSource , computeEndpoint , computeEnvironment , versionV1 )
186
+ func createAlphaCloudService (ctx context.Context , vendorVersion string , tokenSource oauth2.TokenSource , computeEndpoint string ) (* computealpha .Service , error ) {
187
+ client , err := newOauthClient (ctx , tokenSource )
207
188
if err != nil {
208
- klog . Errorf ( "Failed to get compute endpoint: %s" , err )
189
+ return nil , err
209
190
}
210
- service , err := compute .NewService (ctx , computeOpts ... )
191
+
192
+ computeOpts := []option.ClientOption {option .WithHTTPClient (client )}
193
+ if computeEndpoint != "" {
194
+ alphaEndpoint := fmt .Sprintf ("%s/compute/alpha/" , computeEndpoint )
195
+ computeOpts = append (computeOpts , option .WithEndpoint (alphaEndpoint ))
196
+ }
197
+ service , err := computealpha .NewService (ctx , computeOpts ... )
211
198
if err != nil {
212
199
return nil , err
213
200
}
214
201
service .UserAgent = fmt .Sprintf ("GCE CSI Driver/%s (%s %s)" , vendorVersion , runtime .GOOS , runtime .GOARCH )
215
202
return service , nil
216
203
}
217
204
218
- func getComputeVersion (ctx context.Context , tokenSource oauth2.TokenSource , computeEndpoint * url.URL , computeEnvironment Environment , computeVersion Version ) ([]option.ClientOption , error ) {
205
+ func createCloudService (ctx context.Context , vendorVersion string , tokenSource oauth2.TokenSource , computeEndpoint string ) (* compute.Service , error ) {
206
+ svc , err := createCloudServiceWithDefaultServiceAccount (ctx , vendorVersion , tokenSource , computeEndpoint )
207
+ return svc , err
208
+ }
209
+
210
+ func createCloudServiceWithDefaultServiceAccount (ctx context.Context , vendorVersion string , tokenSource oauth2.TokenSource , computeEndpoint string ) (* compute.Service , error ) {
219
211
client , err := newOauthClient (ctx , tokenSource )
220
212
if err != nil {
221
213
return nil , err
222
214
}
223
- computeOpts := []option.ClientOption {option .WithHTTPClient (client )}
224
215
225
- if computeEndpoint != nil {
226
- computeEnvironmentSuffix := constructComputeEndpointPath (computeEnvironment , computeVersion )
227
- computeEndpoint .Path = computeEnvironmentSuffix
228
- endpoint := computeEndpoint .String ()
229
- computeOpts = append (computeOpts , option .WithEndpoint (endpoint ))
216
+ computeOpts := []option.ClientOption {option .WithHTTPClient (client )}
217
+ if computeEndpoint != "" {
218
+ v1Endpoint := fmt .Sprintf ("%s/compute/v1/" , computeEndpoint )
219
+ computeOpts = append (computeOpts , option .WithEndpoint (v1Endpoint ))
230
220
}
231
- return computeOpts , nil
232
- }
233
-
234
- func constructComputeEndpointPath (env Environment , version Version ) string {
235
- prefix := ""
236
- if env == EnvironmentStaging {
237
- prefix = fmt .Sprintf ("%s_" , env )
221
+ service , err := compute .NewService (ctx , computeOpts ... )
222
+ if err != nil {
223
+ return nil , err
238
224
}
239
- return fmt .Sprintf ("compute/%s%s/" , prefix , version )
225
+ service .UserAgent = fmt .Sprintf ("GCE CSI Driver/%s (%s %s)" , vendorVersion , runtime .GOOS , runtime .GOARCH )
226
+ return service , nil
240
227
}
241
228
242
229
func newOauthClient (ctx context.Context , tokenSource oauth2.TokenSource ) (* http.Client , error ) {
0 commit comments