github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/command/v2/shared/new_clients.go (about) 1 package shared 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" 9 "code.cloudfoundry.org/cli/command/translatableerror" 10 ) 11 12 // NewClients creates a new V2 Cloud Controller client and UAA client using the 13 // passed in config. 14 func NewClients(config command.Config, ui command.UI, targetCF bool) (*ccv2.Client, *uaa.Client, error) { 15 ccWrappers := []ccv2.ConnectionWrapper{} 16 17 verbose, location := config.Verbose() 18 if verbose { 19 ccWrappers = append(ccWrappers, ccWrapper.NewRequestLogger(ui.RequestLoggerTerminalDisplay())) 20 } 21 22 if location != nil { 23 ccWrappers = append(ccWrappers, ccWrapper.NewRequestLogger(ui.RequestLoggerFileWriter(location))) 24 } 25 26 authWrapper := ccWrapper.NewUAAAuthentication(nil, config) 27 28 ccWrappers = append(ccWrappers, authWrapper) 29 ccWrappers = append(ccWrappers, ccWrapper.NewRetryRequest(config.RequestRetryCount())) 30 31 ccClient := ccv2.NewClient(ccv2.Config{ 32 AppName: config.BinaryName(), 33 AppVersion: config.BinaryVersion(), 34 JobPollingTimeout: config.OverallPollingTimeout(), 35 JobPollingInterval: config.PollingInterval(), 36 Wrappers: ccWrappers, 37 }) 38 39 if !targetCF { 40 return ccClient, nil, nil 41 } 42 43 if config.Target() == "" { 44 return nil, nil, translatableerror.NoAPISetError{ 45 BinaryName: config.BinaryName(), 46 } 47 } 48 49 _, err := ccClient.TargetCF(ccv2.TargetSettings{ 50 URL: config.Target(), 51 SkipSSLValidation: config.SkipSSLValidation(), 52 DialTimeout: config.DialTimeout(), 53 }) 54 if err != nil { 55 return nil, nil, err 56 } 57 58 if ccClient.AuthorizationEndpoint() == "" { 59 return nil, nil, translatableerror.AuthorizationEndpointNotFoundError{} 60 } 61 62 uaaClient := uaa.NewClient(config) 63 64 if verbose { 65 uaaClient.WrapConnection(uaaWrapper.NewRequestLogger(ui.RequestLoggerTerminalDisplay())) 66 } 67 if location != nil { 68 uaaClient.WrapConnection(uaaWrapper.NewRequestLogger(ui.RequestLoggerFileWriter(location))) 69 } 70 71 uaaAuthWrapper := uaaWrapper.NewUAAAuthentication(nil, config) 72 uaaClient.WrapConnection(uaaAuthWrapper) 73 uaaClient.WrapConnection(uaaWrapper.NewRetryRequest(config.RequestRetryCount())) 74 75 err = uaaClient.SetupResources(ccClient.AuthorizationEndpoint()) 76 if err != nil { 77 return nil, nil, err 78 } 79 80 uaaAuthWrapper.SetClient(uaaClient) 81 authWrapper.SetClient(uaaClient) 82 83 return ccClient, uaaClient, err 84 }