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  }