22 lines
501 B
Go
22 lines
501 B
Go
package registrar
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
clientv3 "go.etcd.io/etcd/client/v3"
|
|
)
|
|
|
|
func (r *ServiceRegistrar) ListInstance(serviceName string, servicePart string) ([]string, error) {
|
|
keyPrefix := fmt.Sprintf("/services/%s/%s", serviceName, servicePart)
|
|
resp, err := r.client.Get(context.Background(), keyPrefix, clientv3.WithPrefix())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var result []string
|
|
for _, kv := range resp.Kvs {
|
|
result = append(result, string(kv.Value))
|
|
}
|
|
return result, nil
|
|
}
|