@@ -16,6 +16,8 @@ package client
16
16
17
17
import (
18
18
"context"
19
+ "os"
20
+ "strings"
19
21
"time"
20
22
21
23
"github.com/oracle/oci-go-sdk/v65/common"
@@ -193,14 +195,50 @@ type client struct {
193
195
logger * zap.SugaredLogger
194
196
}
195
197
198
+ func setupBaseClient (log * zap.SugaredLogger , client * common.BaseClient , signer common.HTTPRequestSigner , interceptor common.RequestInterceptor , endpointOverrideEnvVar string ) {
199
+ client .Signer = signer
200
+ client .Interceptor = interceptor
201
+ if endpointOverrideEnvVar != "" {
202
+ endpointOverride , ok := os .LookupEnv (endpointOverrideEnvVar )
203
+ if ok && endpointOverride != "" {
204
+ client .Host = endpointOverride
205
+ }
206
+ }
207
+ clusterIpFamily , ok := os .LookupEnv (ClusterIpFamilyEnv )
208
+ // currently as dual stack endpoints are going to be present in selected regions, only for IPv6 single stack cluster we will be using dual stack endpoints
209
+ if ok && strings .EqualFold (clusterIpFamily , Ipv6Stack ) {
210
+ // TODO: Uncomment once method is available in Public SDK
211
+ //client.EnableDualStackEndpoints(true)
212
+
213
+ region , ok := os .LookupEnv ("OCI_RESOURCE_PRINCIPAL_REGION" )
214
+ if ! ok {
215
+ log .Errorf ("unable to get OCI_RESOURCE_PRINCIPAL_REGION env var for region" )
216
+ }
217
+
218
+ authEndpoint , ok := os .LookupEnv ("OCI_SDK_AUTH_CLIENT_REGION_URL" )
219
+ if ! ok {
220
+ authDualStackEndpoint := common .StringToRegion (region ).EndpointForTemplate ("" , "ds.auth.{region}.oci.{secondLevelDomain}" )
221
+ if err := os .Setenv ("OCI_SDK_AUTH_CLIENT_REGION_URL" , authDualStackEndpoint ); err != nil {
222
+ log .Errorf ("unable to set OCI_SDK_AUTH_CLIENT_REGION_URL env var for oci auth dual stack endpoint" )
223
+ } else {
224
+ log .Infof ("OCI_SDK_AUTH_CLIENT_REGION_URL env var set to: %s" , authDualStackEndpoint )
225
+ }
226
+ } else {
227
+ log .Infof ("OCI_SDK_AUTH_CLIENT_REGION_URL env var set to: %s" , authEndpoint )
228
+ }
229
+ }
230
+ }
231
+
196
232
// New constructs an OCI API client.
197
- func New (logger * zap.SugaredLogger , cp common.ConfigurationProvider , opRateLimiter * RateLimiter ) (Interface , error ) {
233
+ func New (logger * zap.SugaredLogger , cp common.ConfigurationProvider , opRateLimiter * RateLimiter , targetTenancyID string ) (Interface , error ) {
198
234
199
235
compute , err := core .NewComputeClientWithConfigurationProvider (cp )
200
236
if err != nil {
201
237
return nil , errors .Wrap (err , "NewComputeClientWithConfigurationProvider" )
202
238
}
203
239
240
+ setupBaseClient (logger , & compute .BaseClient , nil , nil , "" )
241
+
204
242
err = configureCustomTransport (logger , & compute .BaseClient )
205
243
if err != nil {
206
244
return nil , errors .Wrap (err , "configuring load balancer client custom transport" )
@@ -211,6 +249,8 @@ func New(logger *zap.SugaredLogger, cp common.ConfigurationProvider, opRateLimit
211
249
return nil , errors .Wrap (err , "NewVirtualNetworkClientWithConfigurationProvider" )
212
250
}
213
251
252
+ setupBaseClient (logger , & network .BaseClient , nil , nil , "" )
253
+
214
254
err = configureCustomTransport (logger , & network .BaseClient )
215
255
if err != nil {
216
256
return nil , errors .Wrap (err , "configuring load balancer client custom transport" )
@@ -221,6 +261,8 @@ func New(logger *zap.SugaredLogger, cp common.ConfigurationProvider, opRateLimit
221
261
return nil , errors .Wrap (err , "NewLoadBalancerClientWithConfigurationProvider" )
222
262
}
223
263
264
+ setupBaseClient (logger , & lb .BaseClient , nil , nil , "" )
265
+
224
266
err = configureCustomTransport (logger , & lb .BaseClient )
225
267
if err != nil {
226
268
return nil , errors .Wrap (err , "configuring loadbalancer client custom transport" )
@@ -231,6 +273,8 @@ func New(logger *zap.SugaredLogger, cp common.ConfigurationProvider, opRateLimit
231
273
return nil , errors .Wrap (err , "NewNetworkLoadBalancerClientWithConfigurationProvider" )
232
274
}
233
275
276
+ setupBaseClient (logger , & nlb .BaseClient , nil , nil , "" )
277
+
234
278
err = configureCustomTransport (logger , & nlb .BaseClient )
235
279
if err != nil {
236
280
return nil , errors .Wrap (err , "configuring networkloadbalancer client custom transport" )
@@ -241,6 +285,8 @@ func New(logger *zap.SugaredLogger, cp common.ConfigurationProvider, opRateLimit
241
285
return nil , errors .Wrap (err , "NewIdentityClientWithConfigurationProvider" )
242
286
}
243
287
288
+ setupBaseClient (logger , & identity .BaseClient , nil , nil , "" )
289
+
244
290
err = configureCustomTransport (logger , & identity .BaseClient )
245
291
if err != nil {
246
292
return nil , errors .Wrap (err , "configuring identity service client custom transport" )
@@ -252,6 +298,8 @@ func New(logger *zap.SugaredLogger, cp common.ConfigurationProvider, opRateLimit
252
298
// return nil, errors.Wrap(err, "NewCompartmentsClientWithConfigurationProvider")
253
299
//}
254
300
//
301
+ //setupBaseClient(logger, &compartment.BaseClient, nil, nil, "")
302
+ //
255
303
//err = configureCustomTransport(logger, &compartment.BaseClient)
256
304
//if err != nil {
257
305
// return nil, errors.Wrap(err, "configuring compartment service client custom transport")
@@ -262,6 +310,8 @@ func New(logger *zap.SugaredLogger, cp common.ConfigurationProvider, opRateLimit
262
310
return nil , errors .Wrap (err , "NewBlockstorageClientWithConfigurationProvider" )
263
311
}
264
312
313
+ setupBaseClient (logger , & bs .BaseClient , nil , nil , "" )
314
+
265
315
err = configureCustomTransport (logger , & bs .BaseClient )
266
316
if err != nil {
267
317
return nil , errors .Wrap (err , "configuring block storage service client custom transport" )
@@ -272,6 +322,8 @@ func New(logger *zap.SugaredLogger, cp common.ConfigurationProvider, opRateLimit
272
322
return nil , errors .Wrap (err , "NewFileStorageClientWithConfigurationProvider" )
273
323
}
274
324
325
+ setupBaseClient (logger , & fss .BaseClient , nil , nil , "" )
326
+
275
327
err = configureCustomTransport (logger , & fss .BaseClient )
276
328
if err != nil {
277
329
return nil , errors .Wrap (err , "configuring file storage service client custom transport" )
@@ -342,6 +394,7 @@ func (c *client) LoadBalancer(logger *zap.SugaredLogger, lbType string, targetTe
342
394
logger .Error ("Failed to get new LB client with oke workload identity configuration provider! Error:" + err .Error ())
343
395
return nil
344
396
}
397
+ setupBaseClient (logger , & lb .BaseClient , nil , nil , "" )
345
398
346
399
err = configureCustomTransport (logger , & lb .BaseClient )
347
400
if err != nil {
@@ -361,6 +414,7 @@ func (c *client) LoadBalancer(logger *zap.SugaredLogger, lbType string, targetTe
361
414
logger .Error ("Failed to get new NLB client with oke workload identity configuration provider! Error:" + err .Error ())
362
415
return nil
363
416
}
417
+ setupBaseClient (logger , & nlb .BaseClient , nil , nil , "" )
364
418
365
419
err = configureCustomTransport (logger , & nlb .BaseClient )
366
420
if err != nil {
@@ -391,6 +445,8 @@ func (c *client) Networking(ociClientConfig *OCIClientConfig) NetworkingInterfac
391
445
return nil
392
446
}
393
447
448
+ setupBaseClient (c .logger , & network .BaseClient , nil , nil , "" )
449
+
394
450
err = configureCustomTransport (c .logger , & network .BaseClient )
395
451
if err != nil {
396
452
c .logger .Error ("Failed configure custom transport for Network Client %v" , err )
@@ -427,6 +483,8 @@ func (c *client) Identity(ociClientConfig *OCIClientConfig) IdentityInterface {
427
483
return nil
428
484
}
429
485
486
+ setupBaseClient (c .logger , & identity .BaseClient , nil , nil , "" )
487
+
430
488
err = configureCustomTransport (c .logger , & identity .BaseClient )
431
489
if err != nil {
432
490
c .logger .Error ("Failed configure custom transport for Identity Client %v" , err )
@@ -440,6 +498,8 @@ func (c *client) Identity(ociClientConfig *OCIClientConfig) IdentityInterface {
440
498
// return nil
441
499
//}
442
500
//
501
+ //setupBaseClient(c.logger, &compartment.BaseClient, nil, nil, "")
502
+ //
443
503
//err = configureCustomTransport(c.logger, &compartment.BaseClient)
444
504
//if err != nil {
445
505
// c.logger.Error("Failed configure custom transport for Compartments Client %v", err)
@@ -476,6 +536,8 @@ func (c *client) FSS(ociClientConfig *OCIClientConfig) FileStorageInterface {
476
536
return nil
477
537
}
478
538
539
+ setupBaseClient (c .logger , & fc .BaseClient , nil , nil , "" )
540
+
479
541
err = configureCustomTransport (c .logger , & fc .BaseClient )
480
542
if err != nil {
481
543
c .logger .Errorf ("Failed configure custom transport for FSS Client %v" , err .Error ())
0 commit comments