These were deprecated inf0e5a0d654,036d3a6bab, andd16c560664and were only used internally. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
47 lines
1.7 KiB
Go
47 lines
1.7 KiB
Go
package stack
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/docker/cli/cli/command/service"
|
|
"github.com/moby/moby/api/types/swarm"
|
|
"github.com/moby/moby/client"
|
|
)
|
|
|
|
// getServices is the swarm implementation of listing stack services
|
|
func getServices(ctx context.Context, apiClient client.APIClient, opts serviceListOptions) ([]swarm.Service, error) {
|
|
listOpts := client.ServiceListOptions{
|
|
Filters: getStackFilterFromOpt(opts.namespace, opts.filter),
|
|
// When not running "quiet", also get service status (number of running
|
|
// and desired tasks). Note that this is only supported on API v1.41 and
|
|
// up; older API versions ignore this option, and we will have to collect
|
|
// the information manually below.
|
|
Status: !opts.quiet,
|
|
}
|
|
|
|
services, err := apiClient.ServiceList(ctx, listOpts)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if listOpts.Status {
|
|
// Now that a request was made, we know what API version was used (either
|
|
// through configuration, or after client and daemon negotiated a version).
|
|
// If API version v1.41 or up was used; the daemon should already have done
|
|
// the legwork for us, and we don't have to calculate the number of desired
|
|
// and running tasks. On older API versions, we need to do some extra requests
|
|
// to get that information.
|
|
//
|
|
// So theoretically, this step can be skipped based on API version, however,
|
|
// some of our unit tests don't set the API version, and there may be other
|
|
// situations where the client uses the "default" version. To account for
|
|
// these situations, we do a quick check for services that do not have
|
|
// a ServiceStatus set, and perform a lookup for those.
|
|
services, err = service.AppendServiceStatus(ctx, apiClient, services)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return services, nil
|
|
}
|