MCPcopy Create free account
hub / github.com/cloudfoundry/credhub-cli / Execute

Method Execute

commands/api.go:32–80  ·  view source on GitHub ↗
([]string)

Source from the content-addressed store, hash-verified

30}
31
32func (c *ApiCommand) Execute([]string) error {
33 var newConfig config.Config
34 if c.Server.ServerUrl != "" {
35 newConfig.ApiURL = c.Server.ServerUrl
36 } else if c.ServerFlagUrl != "" {
37 newConfig.ApiURL = c.ServerFlagUrl
38 } else if c.config.ApiURL != "" {
39 fmt.Println(c.config.ApiURL)
40 return nil
41 } else {
42 return errors.NewNoApiUrlSetError()
43 }
44 newConfig.ApiURL = util.AddDefaultSchemeIfNecessary(newConfig.ApiURL)
45
46 caCerts, err := ReadOrGetCaCerts(c.CaCerts)
47 if err != nil {
48 return err
49 }
50 newConfig.CaCerts = caCerts
51 newConfig.InsecureSkipVerify = c.SkipTlsValidation
52 newConfig.HttpTimeout = c.config.HttpTimeout
53
54 credhubInfo, err := GetApiInfo(newConfig.ApiURL, newConfig.CaCerts, newConfig.InsecureSkipVerify, newConfig.HttpTimeout)
55 if err != nil {
56 return errors.NewNetworkError(err)
57 }
58 newConfig.AuthURL = credhubInfo.AuthServer.URL
59
60 if newConfig.AuthURL != c.config.AuthURL {
61 RevokeTokenIfNecessary(c.config)
62 MarkTokensAsRevokedInConfig(&c.config)
63 }
64 newConfig.AccessToken = c.config.AccessToken
65 newConfig.RefreshToken = c.config.RefreshToken
66
67 err = verifyAuthServerConnection(newConfig, newConfig.InsecureSkipVerify)
68 if err != nil {
69 return errors.NewAuthServerNetworkError(err)
70 }
71
72 err = PrintWarnings(newConfig.ApiURL, newConfig.InsecureSkipVerify)
73 fmt.Println("Setting the target url:", newConfig.ApiURL)
74
75 if err != nil {
76 return err
77 }
78
79 return config.WriteConfig(newConfig)
80}
81
82func GetApiInfo(serverUrl string, caCerts []string, skipTlsValidation bool, httpTimeout *time.Duration) (*server.Info, error) {
83 credhubClient, err := credhub.New(serverUrl, credhub.CaCerts(caCerts...), credhub.SkipTLSValidation(skipTlsValidation), credhub.SetHttpTimeout(httpTimeout))

Callers 4

mainFunction · 0.45

Calls 11

NewNoApiUrlSetErrorFunction · 0.92
NewNetworkErrorFunction · 0.92
WriteConfigFunction · 0.92
GetApiInfoFunction · 0.85
RevokeTokenIfNecessaryFunction · 0.85
PrintWarningsFunction · 0.85
ReadOrGetCaCertsFunction · 0.70

Tested by

no test coverage detected