github.com/panekj/cli@v0.0.0-20230304125325-467dd2f3797e/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 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 getStackServices(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Service, error) {
    33  	return apiclient.ServiceList(ctx, types.ServiceListOptions{Filters: getStackFilter(namespace)})
    34  }
    35  
    36  func getStackNetworks(ctx context.Context, apiclient client.APIClient, namespace string) ([]types.NetworkResource, error) {
    37  	return apiclient.NetworkList(ctx, types.NetworkListOptions{Filters: getStackFilter(namespace)})
    38  }
    39  
    40  func getStackSecrets(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Secret, error) {
    41  	return apiclient.SecretList(ctx, types.SecretListOptions{Filters: getStackFilter(namespace)})
    42  }
    43  
    44  func getStackConfigs(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Config, error) {
    45  	return apiclient.ConfigList(ctx, types.ConfigListOptions{Filters: getStackFilter(namespace)})
    46  }