package service import ( "basic.com/valib/bhomeclient.git" "encoding/json" "errors" "vamicro/devicemanage-service/vo" ) func remoteCall(arg interface{}, rTopic string, targetDevId string, ip string) (*bhomeclient.Reply, error) { body, err := json.Marshal(arg) if err != nil { return nil, err } r, err := WrapQueryRpc(rTopic, body, targetDevId, ip) if err != nil { return nil, err } if len(r) != 1 { return nil, errors.New("no response") } var ret bhomeclient.Reply err = json.Unmarshal(r[0].Payload, &ret) if err != nil { return nil, err } return &ret, nil } //控制其它节点创建集群 func RemoteCreateCluster(arg vo.CreateClusterArg) (*bhomeclient.Reply, error){ return remoteCall(arg, "RemoteCreateCluster", "", arg.Ip) } func RemoteSearchCluster(arg vo.SearchClusterArg) (*bhomeclient.Reply, error) { return remoteCall(arg, "RemoteSearchCluster", arg.DevId, arg.Ip) } func RemoteGetSearchNodes(arg vo.GetSearchNodesArg) (*bhomeclient.Reply, error) { return remoteCall(arg, "RemoteGetSearchNodes", arg.DevId, arg.Ip) } func RemoteJoinCluster(arg vo.JoinClusterArg) (*bhomeclient.Reply, error) { return remoteCall(arg, "RemoteJoinCluster", arg.DevId, arg.Ip) } func RemoteReboot(arg vo.RebootArg) (*bhomeclient.Reply, error) { return remoteCall(arg, "RemoteReboot", arg.DevId, arg.Ip) } func RemoteUninstall(arg vo.UninstallArg) (*bhomeclient.Reply, error) { return remoteCall(arg, "RemoteUninstall", "", "") } func RemoteUpgrade(arg vo.UpgradeArg) (*bhomeclient.Reply, error) { return remoteCall(arg, "RemoteUpgrade", "", "") } func RemoteSysUpdate(arg vo.SysUpdateArg) (*bhomeclient.Reply, error) { return remoteCall(arg, "RemoteSysUpdate", "", "") }