-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Expand file tree
/
Copy pathhelpers.go
More file actions
48 lines (43 loc) · 1.19 KB
/
helpers.go
File metadata and controls
48 lines (43 loc) · 1.19 KB
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
package genericresource
import (
api "github.com/moby/moby/api/types/swarm"
)
// NewSet creates a set object
func NewSet(key string, vals ...string) []api.GenericResource {
rs := make([]api.GenericResource, 0, len(vals))
for _, v := range vals {
rs = append(rs, NewString(key, v))
}
return rs
}
// NewString creates a String resource
func NewString(kind, value string) api.GenericResource {
return api.GenericResource{
NamedResourceSpec: &api.NamedGenericResource{
Kind: kind,
Value: value,
},
}
}
// NewDiscrete creates a Discrete resource
func NewDiscrete(key string, val int64) api.GenericResource {
return api.GenericResource{
DiscreteResourceSpec: &api.DiscreteGenericResource{
Kind: key,
Value: val,
},
}
}
// GetResource returns resources from the "resources" parameter matching the kind key
func GetResource(kind string, resources []api.GenericResource) []api.GenericResource {
var res []api.GenericResource
for _, r := range resources {
switch {
case r.DiscreteResourceSpec != nil && r.DiscreteResourceSpec.Kind == kind:
res = append(res, r)
case r.NamedResourceSpec != nil && r.NamedResourceSpec.Kind == kind:
res = append(res, r)
}
}
return res
}