github.com/olljanat/moby@v1.13.1/cli/command/stack/common.go (about)

     1  package stack
     2  
     3  import (
     4  	"golang.org/x/net/context"
     5  
     6  	"github.com/docker/docker/api/types"
     7  	"github.com/docker/docker/api/types/filters"
     8  	"github.com/docker/docker/api/types/swarm"
     9  	"github.com/docker/docker/cli/compose/convert"
    10  	"github.com/docker/docker/client"
    11  	"github.com/docker/docker/opts"
    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 getStackFilterFromOpt(namespace string, opt opts.FilterOpt) filters.Args {
    21  	filter := opt.Value()
    22  	filter.Add("label", convert.LabelNamespace+"="+namespace)
    23  	return filter
    24  }
    25  
    26  func getAllStacksFilter() filters.Args {
    27  	filter := filters.NewArgs()
    28  	filter.Add("label", convert.LabelNamespace)
    29  	return filter
    30  }
    31  
    32  func getServices(
    33  	ctx context.Context,
    34  	apiclient client.APIClient,
    35  	namespace string,
    36  ) ([]swarm.Service, error) {
    37  	return apiclient.ServiceList(
    38  		ctx,
    39  		types.ServiceListOptions{Filters: getStackFilter(namespace)})
    40  }
    41  
    42  func getStackNetworks(
    43  	ctx context.Context,
    44  	apiclient client.APIClient,
    45  	namespace string,
    46  ) ([]types.NetworkResource, error) {
    47  	return apiclient.NetworkList(
    48  		ctx,
    49  		types.NetworkListOptions{Filters: getStackFilter(namespace)})
    50  }
    51  
    52  func getStackSecrets(
    53  	ctx context.Context,
    54  	apiclient client.APIClient,
    55  	namespace string,
    56  ) ([]swarm.Secret, error) {
    57  	return apiclient.SecretList(
    58  		ctx,
    59  		types.SecretListOptions{Filters: getStackFilter(namespace)})
    60  }