forked from aputs/kube-register
-
Notifications
You must be signed in to change notification settings - Fork 0
/
metadata.go
36 lines (32 loc) · 760 Bytes
/
metadata.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
package main
import (
"errors"
"strings"
"github.com/coreos/fleet/machine"
)
func hasMetadata(ms machine.MachineState, metadata map[string][]string) bool {
for k, v := range metadata {
for _, s := range v {
if ms.Metadata[k] == s {
return true
}
}
}
return false
}
func parseMetadata(rawMetadata string) (map[string][]string, error) {
metadataList := strings.Split(rawMetadata, ",")
metadata := make(map[string][]string)
for _, kv := range metadataList {
i := strings.Index(kv, "=")
if i > 0 {
if _, ok := metadata[kv[:i]]; !ok {
metadata[kv[:i]] = []string{}
}
metadata[kv[:i]] = append(metadata[kv[:i]], kv[i+1:])
} else {
return nil, errors.New("invalid key/value pair " + kv)
}
}
return metadata, nil
}