in cmd/hub/api/secret.go [128:210]
func GetSecret(entityKind, selector, uuid string, jsonFormat bool) {
if config.Debug {
log.Printf("Getting %s/%s secret `%s`", entityKind, selector, uuid)
}
id := ""
resource := ""
var qErr error
switch entityKind {
case "cloudaccount":
cloudAccount, err := cloudAccountBy(selector)
qErr = err
if err == nil && cloudAccount != nil {
id = cloudAccount.Id
}
resource = cloudAccountsResource
case "environment":
env, err := environmentBy(selector)
qErr = err
if err == nil && env != nil {
id = env.Id
}
resource = environmentsResource
case "template":
template, err := templateBy(selector)
qErr = err
if err == nil && template != nil {
id = template.Id
}
resource = templatesResource
case "instance":
instance, err := stackInstanceBy(selector)
qErr = err
if err == nil && instance != nil {
id = instance.Id
}
resource = stackInstancesResource
case "application":
application, err := applicationBy(selector)
qErr = err
if err == nil && application != nil {
id = application.Id
}
resource = applicationsResource
default:
log.Fatalf("Unknown entity kind `%s`", entityKind)
}
if id == "" && qErr == nil {
qErr = errors.New("Not Found")
}
if qErr != nil {
msg := fmt.Sprintf("Unable to query %s %s: %v", entityKind, selector, qErr)
if config.Force && util.IsUint(selector) {
util.Warn("%s", msg)
id = selector
} else {
log.Fatal(msg)
}
}
resource = fmt.Sprintf("%s/%s", resource, id)
resp, err := secret(resource, uuid)
if err != nil {
log.Fatalf("Unable to get secret: %v", err)
}
if jsonFormat {
out, err := json.MarshalIndent(resp, "", " ")
if err != nil {
log.Fatalf("Error marshalling JSON response for output: %v", err)
}
os.Stdout.Write(out)
os.Stdout.Write([]byte("\n"))
} else {
str, kind := formatSecret(resp)
if config.Debug {
log.Printf("Secret kind: %s", kind)
}
fmt.Println(str)
}
}