provider/aws_sd.go
func (p *AWSSDProvider) ListServicesByNamespaceID(namespaceID *string) (map[string]*sd.Service, error) {
	serviceIds := make([]*string, 0)

	f := func(resp *sd.ListServicesOutput, lastPage bool) bool {
		for _, srv := range resp.Services {
			serviceIds = append(serviceIds, srv.Id)
		}

		return true
	}

	err := p.client.ListServicesPages(&sd.ListServicesInput{
		Filters: []*sd.ServiceFilter{{
			Name:   aws.String(sd.ServiceFilterNameNamespaceId),
			Values: []*string{namespaceID},
		}},
	}, f)
	if err != nil {
		return nil, err
	}

	// get detail of each listed service
	services := make(map[string]*sd.Service)
	for _, serviceID := range serviceIds {
		service, err := p.GetServiceDetail(serviceID)
		if err != nil {
			return nil, err
		}

		services[aws.StringValue(service.Name)] = service
	}

	return services, nil
}
func (p *AWSSDProvider) ListServicesByNamespaceID(namespaceID *string) (map[string]*sd.Service, error) {
	serviceIds := make([]*string, 0)

	f := func(resp *sd.ListServicesOutput, lastPage bool) bool {
		for _, srv := range resp.Services {
			serviceIds = append(serviceIds, srv.Id)
		}

		return true
	}

	err := p.client.ListServicesPages(&sd.ListServicesInput{
		Filters: []*sd.ServiceFilter{{
			Name:   aws.String(sd.ServiceFilterNameNamespaceId),
			Values: []*string{namespaceID},
		}},
	}, f)
	if err != nil {
		return nil, err
	}

	// get detail of each listed service
	services := make(map[string]*sd.Service)
	for _, serviceID := range serviceIds {
		service, err := p.GetServiceDetail(serviceID)
		if err != nil {
			return nil, err
		}

		services[aws.StringValue(service.Name)] = service
	}

	return services, nil
}
func ( p * AWSSDProvider ) ListServicesByNamespaceID ( namespaceID * string ) ( map [ string ] * sd . Service , error ) { serviceIds := make ( [ ] * string , 0 ) f := func ( resp * sd . ListServicesOutput , lastPage bool ) bool { for _ , srv := range resp . Services { serviceIds = append ( serviceIds , srv . Id ) } return true } err := p . client . ListServicesPages ( & sd . ListServicesInput { Filters : [ ] * sd . ServiceFilter { { Name : aws . String ( sd . ServiceFilterNameNamespaceId ) , Values : [ ] * string { namespaceID } , } } , } , f ) if err != nil { return nil , err } // get detail of each listed service services := make ( map [ string ] * sd . Service ) for _ , serviceID := range serviceIds { service , err := p . GetServiceDetail ( serviceID ) if err != nil { return nil , err } services [ aws . StringValue ( service . Name ) ] = service } return services , nil }
// ListServicesByNamespaceID returns list of services in given namespace. Returns map[srv_name]*sd.Service
ListServicesByNamespaceID returns list of services in given namespace . Returns map [ srv_name ] * sd . Service