-
Notifications
You must be signed in to change notification settings - Fork 28
/
kinds.go
74 lines (67 loc) · 1.83 KB
/
kinds.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package draft
import "strings"
const (
kindBlockStore = "bst"
kindCDN = "cdn"
kindClient = "cli"
kindUnknown = "unk"
kindDNS = "dns"
kindNoSQL = "doc"
kindFileStore = "fst"
kindFunction = "fun"
kindGateway = "gtw"
kindContainersManager = "kub"
kindLBA = "lba"
kindCache = "mem"
kindPubSub = "msg"
kindObjectStore = "ost"
kindQueue = "que"
kindRDB = "rdb"
kindService = "ser"
kindUser = "usr"
kindFirewall = "waf"
kindWeb = "web"
)
// validateProvider sets a valid cloud provider (one of 'aws', 'gcp', 'azure')
func validateProvider() func(com *Component) {
provs := map[string]bool{"aws": true, "google": true, "azure": true}
return func(com *Component) {
val := strings.ToLower(strings.TrimSpace(com.Provider))
if provs[val] {
com.Provider = val
} else {
com.Provider = "default"
}
}
}
func validateKind() func(com *Component) {
kinds := map[string]bool{
kindBlockStore: true,
kindCDN: true,
kindClient: true,
kindDNS: true,
kindNoSQL: true,
kindFileStore: true,
kindFunction: true,
kindGateway: true,
kindContainersManager: true,
kindLBA: true,
kindCache: true,
kindPubSub: true,
kindObjectStore: true,
kindQueue: true,
kindRDB: true,
kindService: true,
kindUser: true,
kindFirewall: true,
kindWeb: true,
}
return func(com *Component) {
val := strings.ToLower(strings.TrimSpace(com.Kind))
if kinds[val] {
com.Kind = val
} else {
com.Kind = kindUnknown
}
}
}