([]string)
| 30 | } |
| 31 | |
| 32 | func (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 | |
| 82 | func 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)) |
no test coverage detected