@@ -10,13 +10,7 @@ import (
1010 "sync"
1111 "time"
1212
13- "github.com/IBM-Cloud/bluemix-go"
14- "github.com/IBM-Cloud/bluemix-go/api/resource/resourcev2/controllerv2"
15- "github.com/IBM-Cloud/bluemix-go/authentication"
1613 "github.com/IBM-Cloud/bluemix-go/crn"
17- "github.com/IBM-Cloud/bluemix-go/http"
18- "github.com/IBM-Cloud/bluemix-go/rest"
19- bxsession "github.com/IBM-Cloud/bluemix-go/session"
2014 "github.com/IBM-Cloud/power-go-client/clients/instance"
2115 "github.com/IBM-Cloud/power-go-client/ibmpisession"
2216 "github.com/IBM/go-sdk-core/v5/core"
@@ -28,7 +22,6 @@ import (
2822 "github.com/IBM/platform-services-go-sdk/resourcecontrollerv2"
2923 "github.com/IBM/platform-services-go-sdk/resourcemanagerv2"
3024 "github.com/IBM/vpc-go-sdk/vpcv1"
31- "github.com/golang-jwt/jwt"
3225 "github.com/sirupsen/logrus"
3326 utilerrors "k8s.io/apimachinery/pkg/util/errors"
3427 "k8s.io/apimachinery/pkg/util/wait"
@@ -74,42 +67,6 @@ type User struct {
7467 generation int `default:"2"`
7568}
7669
77- func fetchUserDetails (bxSession * bxsession.Session , generation int ) (* User , error ) {
78- config := bxSession .Config
79- user := User {}
80- var bluemixToken string
81-
82- if strings .HasPrefix (config .IAMAccessToken , "Bearer" ) {
83- bluemixToken = config .IAMAccessToken [7 :len (config .IAMAccessToken )]
84- } else {
85- bluemixToken = config .IAMAccessToken
86- }
87-
88- token , err := jwt .Parse (bluemixToken , func (token * jwt.Token ) (interface {}, error ) {
89- return "" , nil
90- })
91- if err != nil && ! strings .Contains (err .Error (), "key is of invalid type" ) {
92- return & user , err
93- }
94-
95- claims := token .Claims .(jwt.MapClaims )
96- if email , ok := claims ["email" ]; ok {
97- user .Email = email .(string )
98- }
99- user .ID = claims ["id" ].(string )
100- user .Account = claims ["account" ].(map [string ]interface {})["bss" ].(string )
101- iss := claims ["iss" ].(string )
102- if strings .Contains (iss , "https://iam.cloud.ibm.com" ) {
103- user .cloudName = "bluemix"
104- } else {
105- user .cloudName = "staging"
106- }
107- user .cloudType = "public"
108-
109- user .generation = generation
110- return & user , nil
111- }
112-
11370// ClusterUninstaller holds the various options for the cluster we want to delete.
11471type ClusterUninstaller struct {
11572 APIKey string
@@ -414,23 +371,14 @@ func (o *ClusterUninstaller) newAuthenticator(apikey string) (core.Authenticator
414371
415372func (o * ClusterUninstaller ) loadSDKServices () error {
416373 var (
417- bxSession * bxsession.Session
418- tokenProviderEndpoint = "https://iam.cloud.ibm.com" //nolint:gosec // not a credential despite `token` in its name
419- tokenRefresher * authentication.IAMAuthRepository
420- err error
421- ctrlv2 controllerv2.ResourceControllerAPIV2
422- resourceClientV2 controllerv2.ResourceServiceInstanceRepository
423- authenticator core.Authenticator
424- versionDate = "2023-07-04"
425- tgOptions * transitgatewayapisv1.TransitGatewayApisV1Options
426- serviceName string
374+ err error
375+ authenticator core.Authenticator
376+ versionDate = "2023-07-04"
377+ tgOptions * transitgatewayapisv1.TransitGatewayApisV1Options
378+ serviceName string
427379 )
428380
429381 defer func () {
430- o .Logger .Debugf ("loadSDKServices: bxSession = %v" , bxSession )
431- o .Logger .Debugf ("loadSDKServices: tokenRefresher = %v" , tokenRefresher )
432- o .Logger .Debugf ("loadSDKServices: ctrlv2 = %v" , ctrlv2 )
433- o .Logger .Debugf ("loadSDKServices: resourceClientV2 = %v" , resourceClientV2 )
434382 o .Logger .Debugf ("loadSDKServices: o.ServiceGUID = %v" , o .ServiceGUID )
435383 o .Logger .Debugf ("loadSDKServices: o.piSession = %v" , o .piSession )
436384 o .Logger .Debugf ("loadSDKServices: o.instanceClient = %v" , o .instanceClient )
@@ -446,43 +394,11 @@ func (o *ClusterUninstaller) loadSDKServices() error {
446394 return fmt .Errorf ("loadSDKServices: missing APIKey in metadata.json" )
447395 }
448396
449- bxSession , err = bxsession .New (& bluemix.Config {
450- BluemixAPIKey : o .APIKey ,
451- TokenProviderEndpoint : & tokenProviderEndpoint ,
452- Debug : false ,
453- })
454- if err != nil {
455- return fmt .Errorf ("loadSDKServices: bxsession.New: %w" , err )
456- }
457-
458- tokenRefresher , err = authentication .NewIAMAuthRepository (bxSession .Config , & rest.Client {
459- DefaultHeader : gohttp.Header {
460- "User-Agent" : []string {http .UserAgent ()},
461- },
462- })
463- if err != nil {
464- return fmt .Errorf ("loadSDKServices: authentication.NewIAMAuthRepository: %w" , err )
465- }
466- err = tokenRefresher .AuthenticateAPIKey (bxSession .Config .BluemixAPIKey )
467- if err != nil {
468- return fmt .Errorf ("loadSDKServices: tokenRefresher.AuthenticateAPIKey: %w" , err )
469- }
470-
471- user , err := fetchUserDetails (bxSession , 2 )
397+ user , err := powervs .FetchUserDetails (o .APIKey )
472398 if err != nil {
473399 return fmt .Errorf ("loadSDKServices: fetchUserDetails: %w" , err )
474400 }
475401
476- ctrlv2 , err = controllerv2 .New (bxSession )
477- if err != nil {
478- return fmt .Errorf ("loadSDKServices: controllerv2.New: %w" , err )
479- }
480-
481- resourceClientV2 = ctrlv2 .ResourceServiceInstanceV2 ()
482- if err != nil {
483- return fmt .Errorf ("loadSDKServices: ctrlv2.ResourceServiceInstanceV2: %w" , err )
484- }
485-
486402 authenticator , err = o .newAuthenticator (o .APIKey )
487403 if err != nil {
488404 return err
0 commit comments