in cmd/hub/api/environment.go [73:212]
func formatEnvironmentEntity(env *Environment, showSecrets, showMyTeams,
showServiceAccount, showServiceAccountLoginToken, getCloudCredentials, showBackups bool, errors []error) []error {
title := fmt.Sprintf("%s [%s]", env.Name, env.Id)
if env.Description != "" {
title = fmt.Sprintf("%s - %s", title, env.Description)
}
fmt.Printf("\n\t%s\n", title)
if len(env.Tags) > 0 {
fmt.Printf("\t\tTags: %s\n", strings.Join(env.Tags, ", "))
}
var dnsDomains []string
if env.CloudAccount != "" {
account, err := cloudAccountById(env.CloudAccount, false)
if err != nil {
errors = append(errors, err)
} else {
fmt.Printf("\t\tCloud Account: %s\n", formatCloudAccountTitle(account))
dnsDomains = append(dnsDomains, account.BaseDomain)
}
if getCloudCredentials && account != nil {
keys, err := cloudAccountCredentials(account.Id, account.Kind)
if err != nil {
errors = append(errors, err)
} else {
formatted, err := formatCloudAccountCredentials(keys)
if err != nil {
errors = append(errors, err)
} else {
fmt.Printf("\t\tSecurity Credentials: %s\n", formatted)
}
}
}
}
if len(env.Providers) > 0 {
var kubes []string
for _, provider := range env.Providers {
if provider.Kind == "kubernetes" && provider.Name != "" {
kubes = append(kubes, provider.Name)
}
}
for _, provider := range env.Providers {
if provider.Kind == "dns-domain" {
for _, p := range provider.Parameters {
if p.Name == "dns.baseDomain" {
if domain, ok := p.Value.(string); ok {
faulty := ""
if !util.Contains(kubes, domain) {
faulty = " (no cluster)"
}
dnsDomains = append(dnsDomains, domain+faulty)
}
}
}
}
}
}
if len(dnsDomains) > 0 {
fmt.Printf("\t\tDomains: %s\n", strings.Join(dnsDomains, ", "))
}
resource := fmt.Sprintf("%s/%s", environmentsResource, env.Id)
if len(env.Parameters) > 0 {
fmt.Print("\t\tParameters:\n")
for _, param := range sortParameters(env.Parameters) {
formatted, err := formatParameter(resource, param, showSecrets)
fmt.Printf("\t\t%s\n", formatted)
if err != nil {
errors = append(errors, err)
}
}
}
if len(env.Providers) > 0 {
fmt.Print("\t\tProviders:\n")
for i, provider := range env.Providers {
fmt.Printf("\t\t %02d %s [%s]\n", i, provider.Name, provider.Kind)
provides := "(none)"
if len(provider.Provides) > 0 {
provides = strings.Join(provider.Provides, ", ")
}
fmt.Printf("\t\t\tProvides: %s\n", provides)
if len(provider.Parameters) > 0 {
fmt.Print("\t\t\tParameters:\n")
for _, param := range sortParameters(provider.Parameters) {
formatted, err := formatParameter(resource, param, showSecrets)
fmt.Printf("\t\t\t%s\n", formatted)
if err != nil {
errors = append(errors, err)
}
}
}
}
}
if len(env.TeamsPermissions) > 0 {
formatted := formatTeams(env.TeamsPermissions)
fmt.Printf("\t\tTeams: %s\n", formatted)
if showMyTeams {
teams, err := myTeams(env.Id)
formatted := formatTeams(teams)
fmt.Printf("\t\tMy Teams: %s\n", formatted)
if err != nil {
errors = append(errors, err)
}
}
}
if showServiceAccount {
teams, err := myTeams(env.Id)
if err != nil {
errors = append(errors, err)
} else {
if len(teams) > 0 {
for _, team := range teams {
account, err := serviceAccount(env.Id, team.Id)
if err != nil {
errors = append(errors, err)
} else {
formatted := formatServiceAccount(team, account, showServiceAccountLoginToken)
fmt.Printf("\t\tService Account: %s\n", formatted)
}
}
}
}
}
if showBackups {
backups, err := backupsByEnvironmentId(env.Id)
if err != nil {
errors = append(errors, err)
}
if len(backups) > 0 {
fmt.Print("\tBackups:\n")
errs := make([]error, 0)
for _, backup := range backups {
errs = formatBackupEntity(&backup, false, errors)
}
if len(errs) > 0 {
errors = append(errors, errs...)
}
}
}
return errors
}