From 63645d248c765244488cd34dbc1bb6528ca6b7c7 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 05 九月 2023 09:58:13 +0800 Subject: [PATCH] 修复编译 --- system-service/service/ctrlService.go | 652 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 326 insertions(+), 326 deletions(-) diff --git a/system-service/service/ctrlService.go b/system-service/service/ctrlService.go index c2dc80c..cc20fec 100644 --- a/system-service/service/ctrlService.go +++ b/system-service/service/ctrlService.go @@ -1,327 +1,327 @@ -package service - -import ( - "basic.com/valib/bhomeclient.git" - "basic.com/valib/bhomedbapi.git" - "basic.com/valib/serf.git/serf" - "encoding/json" - "errors" - "github.com/satori/go.uuid" - "time" - "vamicro/config" - "vamicro/system-service/models" - sc "vamicro/system-service/serf" - dvo "vamicro/devicemanage-service/vo" - "vamicro/system-service/sys" - "vamicro/system-service/vo" -) - -func init() { - sc.RegisterRpcHandles( - DevAuthApply, - RemoteCreateCluster, - RemoteSearchCluster, - RemoteGetSearchNodes, - RemoteJoinCluster, - RemoteReboot, - RemoteUninstall, - RemoteUpgrade, - RemoteSysUpdate, - ) -} - -func DevAuthApply(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - type applyArg struct { - Key string `json:"key"` - FromDevId string `json:"fromDevId"` - FromIp string `json:"fromIp"` - } - var ret bhomeclient.Reply - var retErr error - var reqBody applyArg - if err := json.Unmarshal(arg.Data, &reqBody); err == nil && reqBody.Key != "" && reqBody.FromIp != "" && reqBody.FromDevId != "" { - //1.楠岃瘉璇锋眰鐨刱ey鏄惁鍖归厤 - var config models.AuthConfig - ic, _ := config.Select() - if ic > 0 { - if config.AuthType == models.AuthType_Key && reqBody.Key != config.Password { - ret.Msg = "鐢宠瀵嗛挜涓嶅尮閰�" - } - } - - //2.鍐欏叆authDevice - var da models.AuthDevice - i, _ := da.FindByDevId(reqBody.FromDevId) - if i == 0 { //鏈敵璇疯繃 - tmp := models.AuthDevice{ - Id: uuid.NewV4().String(), - DevId: reqBody.FromDevId, - DevIp: reqBody.FromIp, - ApplyKey: reqBody.Key, - CreateTime: time.Now().Format("2006-01-02 15:04:05"), - } - if tmp.Insert() { - ret.Success = true - ret.Msg = "娣诲姞鎴愬姛锛屽緟瀹℃牳" - } else { - ret.Msg = "娣诲姞澶辫触" - } - } else { //宸茬敵璇疯繃 - if da.Status == models.AuthStatus_Agreed { - ret.Success = true - ret.Msg = "宸查�氳繃锛屾棤闇�閲嶅鐢宠" - } else if da.Status == models.AuthStatus_AuthCanceled { - ret.Msg = "宸插彇娑堟巿鏉�" - } else { - ret.Msg = "璇风瓑鍊欏鏍�" - } - } - } else { - ret.Msg = "鍙傛暟鏈夎" - } - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr -} - -func RemoteCreateCluster(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - var ret bhomeclient.Reply - var retErr error - var param dvo.CreateClusterArg - if err := json.Unmarshal(arg.Data, ¶m);err != nil { - retErr = err - } - if len(param.Password) != 6 || param.ClusterName == "" { - ret.Msg = "鍙傛暟鏈夎" - } else { - sv := NewClusterService(sc.GetBusHandle()) - b, newCluterId := sv.Create(param.ClusterName, param.Password, param.VirtualIp) - if b { - param.ClusterId = newCluterId - ret.Data = param - } else { - retErr = errors.New("鍒涘缓闆嗙兢澶辫触") - } - } - - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr -} - -func RemoteSearchCluster(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - var ret bhomeclient.Reply - var retErr error - var param dvo.SearchClusterArg - if err := json.Unmarshal(arg.Data, ¶m);err != nil { - retErr = err - } - if len(param.Password) != 6 { - retErr = errors.New("瀵嗙爜閿欒") - } else { - searchNum := uuid.NewV4().String() - sv := NewClusterService(sc.GetBusHandle()) - retErr = sv.SearchByPwd(param.Password) - if retErr !=nil { - ret.Success = true - ret.Msg = "鎼滅储涓�..." - } else { - ret.Success = true - ret.Data = searchNum - } - } - - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr -} - -func RemoteGetSearchNodes(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - var ret bhomeclient.Reply - var retErr error - sv := NewClusterService(sc.GetBusHandle()) - nodes := sv.SearchNodes() - if nodes !=nil && len(nodes)>0 { - var nodeArr []interface{} - for _,n :=range nodes { - nodeArr = append(nodeArr, n) - } - - ret.Data = nodeArr - } else { - ret.Data = []interface{}{} - } - ret.Success = true - ret.Msg = "鏌ヨ鎴愬姛" - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr -} - -func RemoteJoinCluster(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - var ret bhomeclient.Reply - var retErr error - var param dvo.JoinClusterArg - if err := json.Unmarshal(arg.Data, ¶m);err != nil { - retErr = err - } else { - sv := NewClusterService(sc.GetBusHandle()) - cj := vo.ClusterJoinVo{ - ClusterId: param.ClusterId, - Password: param.Password, - NodeIps: param.NodeIps, - } - if b,err := sv.JoinCluster(&cj); b{ - ret.Success = true - ret.Msg = "鍔犲叆鎴愬姛" - } else { - ret.Success = false - retErr = err - } - } - - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr -} - -func RemoteReboot(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - var ret bhomeclient.Reply - var retErr error - var param dvo.RebootArg - if err := json.Unmarshal(arg.Data, ¶m);err != nil { - retErr = err - } else { - if isOk, msg := sys.Reboot(); !isOk { - ret.Msg = msg - } else { - ret.Success = true - ret.Msg = "姝e湪閲嶅惎..." - } - } - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr -} - -func RemoteUninstall(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - var ret bhomeclient.Reply - var retErr error - var param dvo.UninstallArg - if err := json.Unmarshal(arg.Data, ¶m);err != nil { - retErr = err - } else { - if param.Type ==1 { //鍗歌浇绠楁硶 - api := bhomedbapi.SdkApi{} - b, d := api.Delete(param.Id) - ret.Success = b - ret.Data = d - } else if param.Type == 2 { //鍗歌浇搴旂敤 - api := bhomedbapi.AppApi{} - b, d := api.Delete(param.Id) - ret.Success = b - ret.Data = d - } - } - - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr -} - -func RemoteUpgrade(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - var ret bhomeclient.Reply - var retErr error - var param dvo.UpgradeArg - if err := json.Unmarshal(arg.Data, ¶m);err != nil { - retErr = err - } else { - api := bhomedbapi.AppApi{} - b, d := api.Upgrade(param.Id) - ret.Success = b - ret.Data = d - } - - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr -} - -func RemoteSysUpdate(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { - var ret bhomeclient.Reply - var retErr error - var param dvo.SysUpdateArg - if err := json.Unmarshal(arg.Data, ¶m);err != nil { - retErr = err - } else { - //璋冪敤version-control鐨勬帴鍙o紝鎵ц鍗囩骇鎿嶄綔 - ret.Msg = "build..." - } - - nr := serf.NodeResponse{ - From: config.Server.AnalyServerId, - } - if data, err := json.Marshal(ret); err != nil { - retErr = err - } else { - nr.Payload = data - } - - return append([]serf.NodeResponse{}, nr), retErr +package service + +import ( + "basic.com/valib/bhomeclient.git" + "basic.com/valib/bhomedbapi.git" + "basic.com/valib/serf.git/serf" + "encoding/json" + "errors" + "github.com/satori/go.uuid" + "time" + "vamicro/config" + "vamicro/system-service/models" + sc "vamicro/system-service/serf" + dvo "vamicro/devicemanage-service/vo" + "vamicro/system-service/sys" + "vamicro/system-service/vo" +) + +func init() { + sc.RegisterRpcHandles( + DevAuthApply, + RemoteCreateCluster, + RemoteSearchCluster, + RemoteGetSearchNodes, + RemoteJoinCluster, + RemoteReboot, + RemoteUninstall, + RemoteUpgrade, + RemoteSysUpdate, + ) +} + +func DevAuthApply(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + type applyArg struct { + Key string `json:"key"` + FromDevId string `json:"fromDevId"` + FromIp string `json:"fromIp"` + } + var ret bhomeclient.Reply + var retErr error + var reqBody applyArg + if err := json.Unmarshal(arg.Data, &reqBody); err == nil && reqBody.Key != "" && reqBody.FromIp != "" && reqBody.FromDevId != "" { + //1.楠岃瘉璇锋眰鐨刱ey鏄惁鍖归厤 + var config models.AuthConfig + ic, _ := config.Select() + if ic > 0 { + if config.AuthType == models.AuthType_Key && reqBody.Key != config.Password { + ret.Msg = "鐢宠瀵嗛挜涓嶅尮閰�" + } + } + + //2.鍐欏叆authDevice + var da models.AuthDevice + i, _ := da.FindByDevId(reqBody.FromDevId) + if i == 0 { //鏈敵璇疯繃 + tmp := models.AuthDevice{ + Id: uuid.NewV4().String(), + DevId: reqBody.FromDevId, + DevIp: reqBody.FromIp, + ApplyKey: reqBody.Key, + CreateTime: time.Now().Format("2006-01-02 15:04:05"), + } + if tmp.Insert() { + ret.Success = true + ret.Msg = "娣诲姞鎴愬姛锛屽緟瀹℃牳" + } else { + ret.Msg = "娣诲姞澶辫触" + } + } else { //宸茬敵璇疯繃 + if da.Status == models.AuthStatus_Agreed { + ret.Success = true + ret.Msg = "宸查�氳繃锛屾棤闇�閲嶅鐢宠" + } else if da.Status == models.AuthStatus_AuthCanceled { + ret.Msg = "宸插彇娑堟巿鏉�" + } else { + ret.Msg = "璇风瓑鍊欏鏍�" + } + } + } else { + ret.Msg = "鍙傛暟鏈夎" + } + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr +} + +func RemoteCreateCluster(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + var ret bhomeclient.Reply + var retErr error + var param dvo.CreateClusterArg + if err := json.Unmarshal(arg.Data, ¶m);err != nil { + retErr = err + } + if len(param.Password) != 6 || param.ClusterName == "" { + ret.Msg = "鍙傛暟鏈夎" + } else { + sv := NewClusterService(sc.GetBusHandle()) + b, newCluterId := sv.Create(param.ClusterName, param.Password, param.VirtualIp) + if b { + param.ClusterId = newCluterId + ret.Data = param + } else { + retErr = errors.New("鍒涘缓闆嗙兢澶辫触") + } + } + + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr +} + +func RemoteSearchCluster(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + var ret bhomeclient.Reply + var retErr error + var param dvo.SearchClusterArg + if err := json.Unmarshal(arg.Data, ¶m);err != nil { + retErr = err + } + if len(param.Password) != 6 { + retErr = errors.New("瀵嗙爜閿欒") + } else { + searchNum := uuid.NewV4().String() + sv := NewClusterService(sc.GetBusHandle()) + retErr = sv.SearchByPwd(param.Password) + if retErr !=nil { + ret.Success = true + ret.Msg = "鎼滅储涓�..." + } else { + ret.Success = true + ret.Data = searchNum + } + } + + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr +} + +func RemoteGetSearchNodes(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + var ret bhomeclient.Reply + var retErr error + sv := NewClusterService(sc.GetBusHandle()) + nodes := sv.SearchNodes() + if nodes !=nil && len(nodes)>0 { + var nodeArr []interface{} + for _,n :=range nodes { + nodeArr = append(nodeArr, n) + } + + ret.Data = nodeArr + } else { + ret.Data = []interface{}{} + } + ret.Success = true + ret.Msg = "鏌ヨ鎴愬姛" + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr +} + +func RemoteJoinCluster(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + var ret bhomeclient.Reply + var retErr error + var param dvo.JoinClusterArg + if err := json.Unmarshal(arg.Data, ¶m);err != nil { + retErr = err + } else { + sv := NewClusterService(sc.GetBusHandle()) + cj := vo.ClusterJoinVo{ + ClusterId: param.ClusterId, + Password: param.Password, + NodeIps: param.NodeIps, + } + if b,err := sv.JoinCluster(&cj); b{ + ret.Success = true + ret.Msg = "鍔犲叆鎴愬姛" + } else { + ret.Success = false + retErr = err + } + } + + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr +} + +func RemoteReboot(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + var ret bhomeclient.Reply + var retErr error + var param dvo.RebootArg + if err := json.Unmarshal(arg.Data, ¶m);err != nil { + retErr = err + } else { + if isOk, msg := sys.Reboot(); !isOk { + ret.Msg = msg + } else { + ret.Success = true + ret.Msg = "姝e湪閲嶅惎..." + } + } + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr +} + +func RemoteUninstall(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + var ret bhomeclient.Reply + var retErr error + var param dvo.UninstallArg + if err := json.Unmarshal(arg.Data, ¶m);err != nil { + retErr = err + } else { + if param.Type ==1 { //鍗歌浇绠楁硶 + api := bhomedbapi.SdkApi{} + b, d := api.Delete(param.Id) + ret.Success = b + ret.Data = d + } else if param.Type == 2 { //鍗歌浇搴旂敤 + api := bhomedbapi.AppApi{} + b, d := api.Delete(param.Id) + ret.Success = b + ret.Data = d + } + } + + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr +} + +func RemoteUpgrade(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + var ret bhomeclient.Reply + var retErr error + var param dvo.UpgradeArg + if err := json.Unmarshal(arg.Data, ¶m);err != nil { + retErr = err + } else { + api := bhomedbapi.AppApi{} + b, d := api.Upgrade(param.Id) + ret.Success = b + ret.Data = d + } + + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr +} + +func RemoteSysUpdate(arg sc.RpcParamTopic) ([]serf.NodeResponse, error) { + var ret bhomeclient.Reply + var retErr error + var param dvo.SysUpdateArg + if err := json.Unmarshal(arg.Data, ¶m);err != nil { + retErr = err + } else { + //璋冪敤version-control鐨勬帴鍙o紝鎵ц鍗囩骇鎿嶄綔 + ret.Msg = "build..." + } + + nr := serf.NodeResponse{ + From: config.Server.AnalyServerId, + } + if data, err := json.Marshal(ret); err != nil { + retErr = err + } else { + nr.Payload = data + } + + return append([]serf.NodeResponse{}, nr), retErr } \ No newline at end of file -- Gitblit v1.8.0