func()

in pkg/discovery/discovery.go [86:117]


func (d *discovery) refresh(ctx context.Context) ([]*targetgroup.Group, error) {
	level.Info(d.logger).Log("msg", "Inside refresh")
	sess, err := session.NewSessionWithOptions(session.Options{
		Config: *d.aws,
	})
	if err != nil {
		return nil, errors.Wrap(err, "could not create aws session")
	}

	cloudmap := servicediscovery.New(sess)
	tgs := []*targetgroup.Group{}
	d.newSources = make(map[targetSourceSpec]bool)

	lni := &servicediscovery.ListNamespacesInput{}

	if err = cloudmap.ListNamespacesPagesWithContext(ctx, lni, func(lno *servicediscovery.ListNamespacesOutput, lastPage bool) bool {
		for _, ns := range lno.Namespaces {
			if d.cloudmapNamespace != nil && aws.StringValue(ns.Name) != *d.cloudmapNamespace {
				continue
			}
			tgs = append(tgs, d.processNamespace(ctx, cloudmap, ns)...)
		}
		return false
	}); err != nil {
		return nil, errors.Wrap(err, "could not list namespaces")
	}

	tgs = append(tgs, d.cleanDeletedTargets()...)

	level.Info(d.logger).Log("msg", "Refresh done", "target-group-count", len(tgs))
	return tgs, nil
}