in pkg/cloudmap/client.go [105:137]
func (sdc *serviceDiscoveryClient) GetService(ctx context.Context, nsName string, svcName string) (svc *model.Service, err error) {
sdc.log.Info("fetching a service", "namespace", nsName, "name", svcName)
endpts, cacheHit := sdc.cache.GetEndpoints(nsName, svcName)
if cacheHit {
return &model.Service{
Namespace: nsName,
Name: svcName,
Endpoints: endpts,
}, nil
}
svcIdMap, err := sdc.getServiceIds(ctx, nsName)
if err != nil {
return nil, err
}
_, found := svcIdMap[svcName]
if !found {
return nil, nil
}
endpts, err = sdc.getEndpoints(ctx, nsName, svcName)
if err != nil {
return nil, err
}
return &model.Service{
Namespace: nsName,
Name: svcName,
Endpoints: endpts,
}, nil
}