in clients/zk_client/zk_client.go [132:160]
func (zc *ShenYuZkClient) GetEphemeralServiceInstanceInfo(metaData interface{}) (instances interface{}, err error) {
mdr := zc.checkCommonParam(metaData, err)
path := zc.Zcp.ZkRoot + "/" + mdr.AppName
childs, _, err := zc.ZkClient.Children(path)
if err != nil {
if err == zk.ErrNoNode {
return []*model.MetaDataRegister{}, nil //default return empty MetaDataRegister
}
return nil, err
}
var nodes []*model.MetaDataRegister
for _, child := range childs {
fullPath := path + "/" + child
data, _, err := zc.ZkClient.Get(fullPath)
if err != nil {
if err == zk.ErrNoNode {
continue
}
return nil, err
}
node := new(model.MetaDataRegister)
err = json.Unmarshal(data, node)
if err != nil {
return nil, err
}
nodes = append(nodes, node)
}
return nodes, nil
}