diff --git a/domains/list.go b/domains/list.go index 83b19ac5..5268ac03 100644 --- a/domains/list.go +++ b/domains/list.go @@ -9,13 +9,13 @@ import ( "gopkg.in/errgo.v1" "github.com/Scalingo/cli/config" - scalingo "github.com/Scalingo/go-scalingo/v6" + "github.com/Scalingo/go-scalingo/v7" ) var letsencryptStatusString = map[string]string{ string(scalingo.LetsEncryptStatusPendingDNS): "Pending DNS", string(scalingo.LetsEncryptStatusNew): "Creating", - string(scalingo.LetsEncryptStatusCreated): "In use", + string(scalingo.LetsEncryptStatusCreated): "Created", string(scalingo.LetsEncryptStatusDNSRequired): "DNS required", string(scalingo.LetsEncryptStatusError): "Error", } @@ -31,7 +31,7 @@ func List(ctx context.Context, app string) error { } t := tablewriter.NewWriter(os.Stdout) - t.SetHeader([]string{"Domain", "TLS/SSL"}) + t.SetHeader([]string{"Domain", "TLS/SSL", "TLS Subject", "Let's Encrypt Certificate"}) hasCanonical := false for _, domain := range domains { @@ -40,19 +40,32 @@ func List(ctx context.Context, app string) error { hasCanonical = true domainName += " (*)" } - row := []string{domainName} - switch { - case !domain.SSL: - row = append(row, "-") - case domain.LetsEncrypt: - letsencryptStatus, ok := letsencryptStatusString[string(domain.LetsEncryptStatus)] + + tls := "-" + letsEncrypt := "Disabled" + if domain.LetsEncryptEnabled { + // If the domain is using Let's Encrypt (and not a custom cert), we mention it + if domain.LetsEncrypt { + tls = "Let's Encrypt" + } + // In any case we display the state of creation of the Let's Encrypt certificate + // So if a customer certification is used, it is still mentioned we have it + var ok bool + letsEncrypt, ok = letsencryptStatusString[string(domain.LetsEncryptStatus)] if !ok { - letsencryptStatus = string(domain.LetsEncryptStatus) + letsEncrypt = string(domain.LetsEncryptStatus) + } + + if !domain.LetsEncrypt && domain.LetsEncryptStatus == scalingo.LetsEncryptStatusCreated { + letsEncrypt = "Created, Not in use" } - row = append(row, "Let's Encrypt: "+letsencryptStatus) - default: - row = append(row, fmt.Sprintf("Valid until %v", domain.Validity)) } + + if domain.SSL && !domain.LetsEncrypt { + tls = fmt.Sprintf("Valid until %v", domain.Validity) + } + + row := []string{domainName, tls, domain.TLSCert, letsEncrypt} t.Append(row) } t.Render()