github.com/ali-iotechsys/cli@v20.10.0+incompatible/cli/command/stack/swarm/common.go (about) 1 package swarm 2 3 import ( 4 "context" 5 6 "github.com/docker/cli/cli/compose/convert" 7 "github.com/docker/cli/opts" 8 "github.com/docker/docker/api/types" 9 "github.com/docker/docker/api/types/filters" 10 "github.com/docker/docker/api/types/swarm" 11 "github.com/docker/docker/client" 12 ) 13 14 func getStackFilter(namespace string) filters.Args { 15 filter := filters.NewArgs() 16 filter.Add("label", convert.LabelNamespace+"="+namespace) 17 return filter 18 } 19 20 func getStackServiceFilter(namespace string) filters.Args { 21 return getStackFilter(namespace) 22 } 23 24 func getStackFilterFromOpt(namespace string, opt opts.FilterOpt) filters.Args { 25 filter := opt.Value() 26 filter.Add("label", convert.LabelNamespace+"="+namespace) 27 return filter 28 } 29 30 func getAllStacksFilter() filters.Args { 31 filter := filters.NewArgs() 32 filter.Add("label", convert.LabelNamespace) 33 return filter 34 } 35 36 func getStackServices(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Service, error) { 37 return apiclient.ServiceList(ctx, types.ServiceListOptions{Filters: getStackServiceFilter(namespace)}) 38 } 39 40 func getStackNetworks(ctx context.Context, apiclient client.APIClient, namespace string) ([]types.NetworkResource, error) { 41 return apiclient.NetworkList(ctx, types.NetworkListOptions{Filters: getStackFilter(namespace)}) 42 } 43 44 func getStackSecrets(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Secret, error) { 45 return apiclient.SecretList(ctx, types.SecretListOptions{Filters: getStackFilter(namespace)}) 46 } 47 48 func getStackConfigs(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Config, error) { 49 return apiclient.ConfigList(ctx, types.ConfigListOptions{Filters: getStackFilter(namespace)}) 50 }