// GetServices returns all services of a managed swarm cluster. func (c *Cluster) GetServices(options apitypes.ServiceListOptions) ([]types.Service, error) { c.RLock() defer c.RUnlock() if !c.isActiveManager() { return nil, ErrNoManager } filters, err := newListServicesFilters(options.Filter) if err != nil { return nil, err } r, err := c.client.ListServices( c.getRequestContext(), &swarmapi.ListServicesRequest{Filters: filters}) if err != nil { return nil, err } var services []types.Service for _, service := range r.Services { services = append(services, convert.ServiceFromGRPC(*service)) } return services, nil }
// GetServices returns all services of a managed swarm cluster. func (c *Cluster) GetServices(options apitypes.ServiceListOptions) ([]types.Service, error) { c.mu.RLock() defer c.mu.RUnlock() state := c.currentNodeState() if !state.IsActiveManager() { return nil, c.errNoManager(state) } filters, err := newListServicesFilters(options.Filters) if err != nil { return nil, err } ctx, cancel := c.getRequestContext() defer cancel() r, err := state.controlClient.ListServices( ctx, &swarmapi.ListServicesRequest{Filters: filters}) if err != nil { return nil, err } services := []types.Service{} for _, service := range r.Services { services = append(services, convert.ServiceFromGRPC(*service)) } return services, nil }
// GetService returns a service based on a ID or name. func (c *Cluster) GetService(input string) (types.Service, error) { c.RLock() defer c.RUnlock() if !c.isActiveManager() { return types.Service{}, ErrNoManager } service, err := getService(c.getRequestContext(), c.client, input) if err != nil { return types.Service{}, err } return convert.ServiceFromGRPC(*service), nil }
// GetService returns a service based on an ID or name. func (c *Cluster) GetService(input string) (types.Service, error) { c.mu.RLock() defer c.mu.RUnlock() state := c.currentNodeState() if !state.IsActiveManager() { return types.Service{}, c.errNoManager(state) } ctx, cancel := c.getRequestContext() defer cancel() service, err := getService(ctx, state.controlClient, input) if err != nil { return types.Service{}, err } return convert.ServiceFromGRPC(*service), nil }