1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package stack
- import (
- "golang.org/x/net/context"
- "github.com/docker/docker/api/types"
- "github.com/docker/docker/api/types/filters"
- "github.com/docker/docker/api/types/swarm"
- "github.com/docker/docker/client"
- )
- const (
- labelNamespace = "com.docker.stack.namespace"
- )
- func getStackLabels(namespace string, labels map[string]string) map[string]string {
- if labels == nil {
- labels = make(map[string]string)
- }
- labels[labelNamespace] = namespace
- return labels
- }
- func getStackFilter(namespace string) filters.Args {
- filter := filters.NewArgs()
- filter.Add("label", labelNamespace+"="+namespace)
- return filter
- }
- func getServices(
- ctx context.Context,
- apiclient client.APIClient,
- namespace string,
- ) ([]swarm.Service, error) {
- return apiclient.ServiceList(
- ctx,
- types.ServiceListOptions{Filters: getStackFilter(namespace)})
- }
- func getStackNetworks(
- ctx context.Context,
- apiclient client.APIClient,
- namespace string,
- ) ([]types.NetworkResource, error) {
- return apiclient.NetworkList(
- ctx,
- types.NetworkListOptions{Filters: getStackFilter(namespace)})
- }
- type namespace struct {
- name string
- }
- func (n namespace) scope(name string) string {
- return n.name + "_" + name
- }
|