in cmd/hub/api/instance.go [86:213]
func formatStackInstanceEntity(instance *StackInstance, showSecrets, showLogs, showBackups bool, errors []error) []error {
title := fmt.Sprintf("%s / %s [%s]", instance.Name, instance.Domain, instance.Id)
if instance.Description != "" {
title = fmt.Sprintf("%s - %s", title, instance.Description)
}
fmt.Printf("\n\t%s\n", title)
if len(instance.Tags) > 0 {
fmt.Printf("\t\tTags: %s\n", strings.Join(instance.Tags, ", "))
}
if instance.Environment.Name != "" {
fmt.Printf("\t\tEnvironment: %s\n", formatEnvironmentRef(&instance.Environment))
}
if instance.Platform != nil && instance.Platform.Name != "" {
fmt.Printf("\t\tPlatform: %s\n", formatPlatformRef(instance.Platform))
}
if instance.Stack.Name != "" {
fmt.Printf("\t\tStack: %s\n", formatStackRef(&instance.Stack))
}
if instance.Template.Name != "" {
fmt.Printf("\t\tTemplate: %s\n", formatTemplateRef(&instance.Template))
}
if len(instance.ComponentsEnabled) > 0 {
fmt.Printf("\t\tComponents: %s\n", strings.Join(instance.ComponentsEnabled, ", "))
}
if len(instance.Verbs) > 0 {
fmt.Printf("\t\tVerbs: %s\n", strings.Join(instance.Verbs, ", "))
}
if g := instance.GitRemote; g.Public != "" {
templateRef := ""
if g.Template != nil && g.Template.Ref != "" {
templateRef = fmt.Sprintf("\n\t\t\tRef: %s", g.Template.Ref)
}
k8sRef := ""
if g.K8s != nil && g.K8s.Ref != "" {
k8sRef = fmt.Sprintf("\n\t\t\tstack-k8s-aws ref: %s", g.K8s.Ref)
}
fmt.Printf("\t\tGit: %s%s%s\n", g.Public, templateRef, k8sRef)
}
if instance.Status.Status != "" {
fmt.Printf("\t\tStatus: %s\n", instance.Status.Status)
}
if len(instance.StateFiles) > 0 {
fmt.Printf("\t\tState files:\n\t\t\t%s\n", strings.Join(instance.StateFiles, "\n\t\t\t"))
}
if len(instance.Provides) > 0 {
formatted := formatStackProvides(instance.Provides, "\t\t\t")
fmt.Printf("\t\tProvides:\n%s\n", formatted)
}
resource := fmt.Sprintf("%s/%s", stackInstancesResource, instance.Id)
if len(instance.Outputs) > 0 {
formatted, errs := formatStackOutputs(resource, instance.Outputs, showSecrets)
fmt.Printf("\t\tOutputs:\n%s", formatted)
if len(errs) > 0 {
errors = append(errors, errs...)
}
}
if len(instance.Parameters) > 0 {
fmt.Print("\t\tParameters:\n")
for _, param := range sortParameters(instance.Parameters) {
formatted, err := formatParameter(resource, param, showSecrets)
fmt.Printf("\t\t%s\n", formatted)
if err != nil {
errors = append(errors, err)
}
}
}
if instance.Status.Template != nil && instance.Status.Template.Commit != "" {
t := instance.Status.Template
commit := t.Commit
if len(commit) > 7 {
commit = commit[:7]
}
fmt.Printf("\t\tTemplate deployed: %s %s %s %v %s\n", commit, t.Ref, t.Author, t.Date, t.Subject)
}
if instance.Status.K8s != nil && instance.Status.K8s.Commit != "" {
t := instance.Status.K8s
commit := t.Commit
if len(commit) > 7 {
commit = commit[:7]
}
fmt.Printf("\t\tKubernetes deployed: %s %s %s %v %s\n", commit, t.Ref, t.Author, t.Date, t.Subject)
}
if len(instance.Status.Components) > 0 {
fmt.Print("\t\tComponents Status:\n")
for _, comp := range instance.Status.Components {
fmt.Print(formatComponentStatus(comp))
}
}
if len(instance.InflightOperations) > 0 {
fmt.Print("\t\tInflight Operations:\n")
for _, op := range instance.InflightOperations {
fmt.Print(formatInflightOperation(op, showLogs))
}
}
if showBackups {
backups, err := backupsByInstanceId(instance.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, showLogs, errors)
}
if len(errs) > 0 {
errors = append(errors, errs...)
}
}
if instance.Platform == nil {
backups, err = backupsByPlatformId(instance.Id)
if err != nil {
errors = append(errors, err)
}
if len(backups) > 0 {
fmt.Print("\tOverlay backups:\n")
errs := make([]error, 0)
for _, backup := range backups {
errs = formatBackupEntity(&backup, showLogs, errors)
}
if len(errs) > 0 {
errors = append(errors, errs...)
}
}
}
}
return errors
}