func()

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
}