github.com/randomtask1155/cli@v6.41.1-0.20181227003417-a98eed78cbde+incompatible/integration/helpers/client.go (about) 1 package helpers 2 3 import ( 4 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv2" 5 ccWrapper "code.cloudfoundry.org/cli/api/cloudcontroller/wrapper" 6 "code.cloudfoundry.org/cli/api/uaa" 7 uaaWrapper "code.cloudfoundry.org/cli/api/uaa/wrapper" 8 "code.cloudfoundry.org/cli/command/translatableerror" 9 "code.cloudfoundry.org/cli/util/configv3" 10 ) 11 12 func CreateCCV2Client() (*ccv2.Client, error) { 13 config, err := configv3.LoadConfig(configv3.FlagOverride{}) 14 if err != nil { 15 return nil, err 16 } 17 18 ccWrappers := []ccv2.ConnectionWrapper{} 19 authWrapper := ccWrapper.NewUAAAuthentication(nil, config) 20 21 ccWrappers = append(ccWrappers, authWrapper) 22 ccWrappers = append(ccWrappers, ccWrapper.NewRetryRequest(config.RequestRetryCount())) 23 24 ccClient := ccv2.NewClient(ccv2.Config{ 25 AppName: config.BinaryName(), 26 AppVersion: config.BinaryVersion(), 27 JobPollingTimeout: config.OverallPollingTimeout(), 28 JobPollingInterval: config.PollingInterval(), 29 Wrappers: ccWrappers, 30 }) 31 32 _, err = ccClient.TargetCF(ccv2.TargetSettings{ 33 URL: config.Target(), 34 SkipSSLValidation: config.SkipSSLValidation(), 35 DialTimeout: config.DialTimeout(), 36 }) 37 if err != nil { 38 return nil, err 39 } 40 41 if ccClient.AuthorizationEndpoint() == "" { 42 return nil, translatableerror.AuthorizationEndpointNotFoundError{} 43 } 44 45 uaaClient := uaa.NewClient(config) 46 47 uaaAuthWrapper := uaaWrapper.NewUAAAuthentication(nil, config) 48 uaaClient.WrapConnection(uaaAuthWrapper) 49 uaaClient.WrapConnection(uaaWrapper.NewRetryRequest(config.RequestRetryCount())) 50 51 err = uaaClient.SetupResources(ccClient.AuthorizationEndpoint()) 52 if err != nil { 53 return nil, err 54 } 55 56 uaaAuthWrapper.SetClient(uaaClient) 57 authWrapper.SetClient(uaaClient) 58 return ccClient, nil 59 }