// +build experimental package stack import ( "golang.org/x/net/context" "github.com/docker/engine-api/client" "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/filters" "github.com/docker/engine-api/types/swarm" ) 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{Filter: getStackFilter(namespace)}) } func getNetworks( ctx context.Context, apiclient client.APIClient, namespace string, ) ([]types.NetworkResource, error) { return apiclient.NetworkList( ctx, types.NetworkListOptions{Filters: getStackFilter(namespace)}) }