common.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package stack
  2. import (
  3. "golang.org/x/net/context"
  4. "github.com/docker/docker/api/types"
  5. "github.com/docker/docker/api/types/filters"
  6. "github.com/docker/docker/api/types/swarm"
  7. "github.com/docker/docker/client"
  8. "github.com/docker/docker/opts"
  9. "github.com/docker/docker/pkg/composetransform"
  10. )
  11. func getStackFilter(namespace string) filters.Args {
  12. filter := filters.NewArgs()
  13. filter.Add("label", composetransform.LabelNamespace+"="+namespace)
  14. return filter
  15. }
  16. func getStackFilterFromOpt(namespace string, opt opts.FilterOpt) filters.Args {
  17. filter := opt.Value()
  18. filter.Add("label", composetransform.LabelNamespace+"="+namespace)
  19. return filter
  20. }
  21. func getAllStacksFilter() filters.Args {
  22. filter := filters.NewArgs()
  23. filter.Add("label", composetransform.LabelNamespace)
  24. return filter
  25. }
  26. func getServices(
  27. ctx context.Context,
  28. apiclient client.APIClient,
  29. namespace string,
  30. ) ([]swarm.Service, error) {
  31. return apiclient.ServiceList(
  32. ctx,
  33. types.ServiceListOptions{Filters: getStackFilter(namespace)})
  34. }
  35. func getStackNetworks(
  36. ctx context.Context,
  37. apiclient client.APIClient,
  38. namespace string,
  39. ) ([]types.NetworkResource, error) {
  40. return apiclient.NetworkList(
  41. ctx,
  42. types.NetworkListOptions{Filters: getStackFilter(namespace)})
  43. }