in cmd/hub/api/logs.go [220:309]
func parseFilters(selectors []string) []Filter {
filters := make([]Filter, 0, len(selectors))
if len(selectors) > 0 {
for _, selector := range selectors {
entityKind := "stackInstance"
spec := strings.SplitN(selector, "/", 2)
if len(spec) == 2 {
entityKind = spec[0]
selector = spec[1]
}
ids := []string{}
switch entityKind {
case "cloudAccount":
accounts, err := cloudAccountsBy(selector, false)
if err != nil {
log.Fatalf("Unable to get Cloud Account by `%s`: %v", selector, err)
}
for _, account := range accounts {
ids = append(ids, account.Id)
}
case "environment":
environments, err := environmentsBy(selector)
if err != nil {
log.Fatalf("Unable to get Environment by `%s`: %v", selector, err)
}
for _, environment := range environments {
ids = append(ids, environment.Id)
}
case "stackTemplate":
templates, err := templatesBy(selector)
if err != nil {
log.Fatalf("Unable to get Template by `%s`: %v", selector, err)
}
for _, template := range templates {
ids = append(ids, template.Id)
}
case "stackInstance":
instances, err := stackInstancesBy(selector, "")
if err != nil {
log.Fatalf("Unable to get Stack Instance by `%s`: %v", selector, err)
}
for _, instance := range instances {
ids = append(ids, instance.Id)
}
case "backup":
backups, err := backupsBy(selector)
if err != nil {
log.Fatalf("Unable to get Backup by `%s`: %v", selector, err)
}
for _, backup := range backups {
ids = append(ids, backup.Id)
}
case "application":
applications, err := applicationsBy(selector)
if err != nil {
log.Fatalf("Unable to get Application by `%s`: %v", selector, err)
}
for _, application := range applications {
ids = append(ids, application.Id)
}
default:
log.Fatalf("Unknown entity kind `%s`", entityKind)
}
if len(ids) == 0 {
if config.Force {
if !util.IsUint(selector) {
ids = []string{selector}
}
} else {
log.Fatalf("Entity `%s` by `%s` not found", entityKind, selector)
}
}
for _, id := range ids {
filters = append(filters, Filter{Id: id, Entity: entityKind})
}
}
}
return filters
}