package clusters import ( "encoding/json" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" ) type UpgradeStatusAction struct { actionutils.ParentAction } func (this *UpgradeStatusAction) RunPost(params struct { NodeId int64 }) { resp, err := this.RPC().HTTPDNSNodeRPC().FindHTTPDNSNode(this.AdminContext(), &pb.FindHTTPDNSNodeRequest{ NodeId: params.NodeId, }) if err != nil { this.ErrorPage(err) return } if resp.GetNode() == nil { this.Data["status"] = nil this.Success() return } this.Data["status"] = decodeUpgradeInstallStatusMap(resp.GetNode().GetInstallStatusJSON()) this.Success() } func decodeUpgradeInstallStatusMap(raw []byte) map[string]interface{} { result := map[string]interface{}{ "isRunning": false, "isFinished": false, "isOk": false, "error": "", "errorCode": "", } if len(raw) == 0 { return result } _ = json.Unmarshal(raw, &result) return result }