in cmd/hub/api/secret.go [27:106]
func CreateSecret(entityKind, selector, name, component, kind string, values map[string]string) {
id := ""
resource := ""
var parameters []Parameter
var qErr error
switch entityKind {
case "environment":
env, err := environmentBy(selector)
qErr = err
if err == nil && env != nil {
id = env.Id
resource = environmentsResource
parameters = env.Parameters
}
case "template":
template, err := templateBy(selector)
qErr = err
if err == nil && template != nil {
id = template.Id
resource = templatesResource
parameters = template.Parameters
}
case "instance":
instance, err := stackInstanceBy(selector)
qErr = err
if err == nil && instance != nil {
id = instance.Id
resource = stackInstancesResource
parameters = instance.Parameters
}
default:
log.Fatalf("Unknown entity kind `%s`", entityKind)
}
if id == "" && qErr == nil {
qErr = errors.New("Not Found")
}
if qErr != nil {
log.Fatalf("Unable to query %s: %v", entityKind, qErr)
}
for _, existing := range parameters {
if !util.Empty(existing.Value) && existing.Name == name &&
((existing.Component == "" && component == "") || existing.Component == component) {
qname := name
if component != "" {
qname = fmt.Sprintf("%s|%s", name, component)
}
log.Fatalf("Parameter `%s` already exist in %s `%s` and is not empty", qname, entityKind, selector)
}
}
secretId, err := createSecret(resource, id, name, component, kind, values)
if err != nil {
log.Fatalf("Unable to create %s secret: %v", entityKind, err)
}
if config.Verbose {
log.Printf("Secret `%s` created in %s `%s` with id `%s`",
name, entityKind, selector, secretId)
}
if config.Verbose {
switch entityKind {
case "environment":
env, err := environmentById(id)
if err == nil {
formatEnvironment(env)
}
case "template":
template, err := templateById(id)
if err == nil {
formatTemplate(template)
}
case "instance":
instance, err := stackInstanceBy(id)
if err == nil {
formatStackInstance(instance)
}
}
}
}