func (cmd API) setAPIEndpoint(endpoint string, skipSSL bool, cmdName string) error { if strings.HasSuffix(endpoint, "/") { endpoint = strings.TrimSuffix(endpoint, "/") } cmd.config.SetSSLDisabled(skipSSL) refresher := coreconfig.APIConfigRefresher{ Endpoint: endpoint, EndpointRepo: cmd.endpointRepo, Config: cmd.config, } warning, err := refresher.Refresh() if err != nil { cmd.config.SetAPIEndpoint("") cmd.config.SetSSLDisabled(false) switch typedErr := err.(type) { case *errors.InvalidSSLCert: cfAPICommand := terminal.CommandColor(fmt.Sprintf("%s %s --skip-ssl-validation", cf.Name, cmdName)) tipMessage := fmt.Sprintf(T("TIP: Use '{{.APICommand}}' to continue with an insecure API endpoint", map[string]interface{}{"APICommand": cfAPICommand})) return errors.New(T("Invalid SSL Cert for {{.URL}}\n{{.TipMessage}}", map[string]interface{}{"URL": typedErr.URL, "TipMessage": tipMessage})) default: return typedErr } } if warning != nil { cmd.ui.Say(terminal.WarningColor(warning.Warn())) } return nil }
func (cmd *OneTimeSSHCode) Get() (string, error) { refresher := coreconfig.APIConfigRefresher{ Endpoint: cmd.config.APIEndpoint(), EndpointRepo: cmd.endpointRepo, Config: cmd.config, } _, err := refresher.Refresh() if err != nil { return "", errors.New("Error refreshing config: " + err.Error()) } token, err := cmd.authRepo.RefreshAuthToken() if err != nil { return "", errors.New(T("Error refreshing oauth token: ") + err.Error()) } sshCode, err := cmd.authRepo.Authorize(token) if err != nil { return "", errors.New(T("Error getting SSH code: ") + err.Error()) } return sshCode, nil }