func()

in pkg/aws/cloudmap.go [92:116]


func (c *CloudMapClient) getServices(selectedNamespaces []string, sdNamespaces map[string]string) ([]*servicediscovery.ServiceSummary, error) {
	sdServices := make([]*servicediscovery.ServiceSummary, 0)
	for _, name := range selectedNamespaces {
		if id, present := sdNamespaces[name]; present {
			fmt.Printf("Discovering scraping targets in the namespace '%s'\n", name)
			filterType := aws.String("NAMESPACE_ID")
			filterCondition := aws.String("EQ")
			filterValues := []*string{&id}
			serviceFilter := servicediscovery.ServiceFilter{
				Name:      filterType,
				Values:    filterValues,
				Condition: filterCondition}
			listServiceOutput, err := c.service.ListServices(&servicediscovery.ListServicesInput{Filters: []*servicediscovery.ServiceFilter{&serviceFilter}})
			if err != nil {
				log.Println(err)
				return nil, err
			}
			for _, serviceSummary := range listServiceOutput.Services {
				sdServices = append(sdServices, serviceSummary)
			}
		}
	}
	fmt.Printf("No.of services discovered for scraping = %d\n", len(sdServices))
	return sdServices, nil
}