mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-03 04:10:27 +08:00
68 lines
1.5 KiB
Go
68 lines
1.5 KiB
Go
// Copyright 2023 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
|
|
|
package node
|
|
|
|
import (
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/configs"
|
|
teaconst "github.com/TeaOSLab/EdgeAdmin/internal/const"
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/rpc"
|
|
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
|
)
|
|
|
|
// UpgradeCheckAction 检查升级结果
|
|
type UpgradeCheckAction struct {
|
|
actionutils.ParentAction
|
|
}
|
|
|
|
func (this *UpgradeCheckAction) Init() {
|
|
this.Nav("", "", "")
|
|
}
|
|
|
|
func (this *UpgradeCheckAction) RunPost(params struct {
|
|
NodeId int64
|
|
}) {
|
|
this.Data["isOk"] = false
|
|
|
|
nodeResp, err := this.RPC().APINodeRPC().FindEnabledAPINode(this.AdminContext(), &pb.FindEnabledAPINodeRequest{ApiNodeId: params.NodeId})
|
|
if err != nil {
|
|
this.Success()
|
|
return
|
|
}
|
|
|
|
var node = nodeResp.ApiNode
|
|
if node == nil || len(node.AccessAddrs) == 0 {
|
|
this.Success()
|
|
return
|
|
}
|
|
|
|
apiConfig, err := configs.LoadAPIConfig()
|
|
if err != nil {
|
|
this.Success()
|
|
return
|
|
}
|
|
|
|
var newAPIConfig = apiConfig.Clone()
|
|
newAPIConfig.RPCEndpoints = node.AccessAddrs
|
|
rpcClient, err := rpc.NewRPCClient(newAPIConfig, false)
|
|
if err != nil {
|
|
this.Success()
|
|
return
|
|
}
|
|
|
|
versionResp, err := rpcClient.APINodeRPC().FindCurrentAPINodeVersion(rpcClient.Context(0), &pb.FindCurrentAPINodeVersionRequest{})
|
|
if err != nil {
|
|
this.Success()
|
|
return
|
|
}
|
|
|
|
if versionResp.Version != teaconst.Version {
|
|
this.Success()
|
|
return
|
|
}
|
|
|
|
this.Data["isOk"] = true
|
|
|
|
this.Success()
|
|
}
|