
- https://github.com/docker/swarmkit/pull/2266 (support for templating Node.Hostname in docker executor) - https://github.com/docker/swarmkit/pull/2281 (change restore action on objects to be update, not delete/create) - https://github.com/docker/swarmkit/pull/2285 (extend watch queue with timeout and size limit) - https://github.com/docker/swarmkit/pull/2253 (version-aware failure tracking in the scheduler) - https://github.com/docker/swarmkit/pull/2275 (update containerd and port executor to container client library) - https://github.com/docker/swarmkit/pull/2292 (rename some generic resources) - https://github.com/docker/swarmkit/pull/2300 (limit the size of the external CA response) - https://github.com/docker/swarmkit/pull/2301 (delete global tasks when the node running them is deleted) Minor cleanups, dependency bumps, and vendoring: - https://github.com/docker/swarmkit/pull/2271 - https://github.com/docker/swarmkit/pull/2279 - https://github.com/docker/swarmkit/pull/2283 - https://github.com/docker/swarmkit/pull/2282 - https://github.com/docker/swarmkit/pull/2274 - https://github.com/docker/swarmkit/pull/2296 (dependency bump of etcd, go-winio) Signed-off-by: Ying Li <ying.li@docker.com>
54 lines
1.3 KiB
Go
54 lines
1.3 KiB
Go
package genericresource
|
|
|
|
import (
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/docker/swarmkit/api"
|
|
)
|
|
|
|
func discreteToString(d *api.GenericResource_DiscreteResourceSpec) string {
|
|
return strconv.FormatInt(d.DiscreteResourceSpec.Value, 10)
|
|
}
|
|
|
|
// Kind returns the kind key as a string
|
|
func Kind(res *api.GenericResource) string {
|
|
switch r := res.Resource.(type) {
|
|
case *api.GenericResource_DiscreteResourceSpec:
|
|
return r.DiscreteResourceSpec.Kind
|
|
case *api.GenericResource_NamedResourceSpec:
|
|
return r.NamedResourceSpec.Kind
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
// Value returns the value key as a string
|
|
func Value(res *api.GenericResource) string {
|
|
switch res := res.Resource.(type) {
|
|
case *api.GenericResource_DiscreteResourceSpec:
|
|
return discreteToString(res)
|
|
case *api.GenericResource_NamedResourceSpec:
|
|
return res.NamedResourceSpec.Value
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
// EnvFormat returns the environment string version of the resource
|
|
func EnvFormat(res []*api.GenericResource, prefix string) []string {
|
|
envs := make(map[string][]string)
|
|
for _, v := range res {
|
|
key := Kind(v)
|
|
val := Value(v)
|
|
envs[key] = append(envs[key], val)
|
|
}
|
|
|
|
env := make([]string, 0, len(res))
|
|
for k, v := range envs {
|
|
k = strings.ToUpper(prefix + "_" + k)
|
|
env = append(env, k+"="+strings.Join(v, ","))
|
|
}
|
|
|
|
return env
|
|
}
|