From 3cbd897a40b5f145d36dda5687a76dc91502d91c Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 28 Jan 2024 20:05:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clusters/cluster/node/nodeutils/utils.go | 132 ------------------ 1 file changed, 132 deletions(-) diff --git a/internal/web/actions/default/clusters/cluster/node/nodeutils/utils.go b/internal/web/actions/default/clusters/cluster/node/nodeutils/utils.go index 9e8e7d90..f147c768 100644 --- a/internal/web/actions/default/clusters/cluster/node/nodeutils/utils.go +++ b/internal/web/actions/default/clusters/cluster/node/nodeutils/utils.go @@ -4,23 +4,12 @@ package nodeutils import ( "errors" - "fmt" - "github.com/TeaOSLab/EdgeAdmin/internal/configs" - teaconst "github.com/TeaOSLab/EdgeAdmin/internal/const" - "github.com/TeaOSLab/EdgeAdmin/internal/rpc" - "github.com/TeaOSLab/EdgeAdmin/internal/utils" - executils "github.com/TeaOSLab/EdgeAdmin/internal/utils/exec" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/langs/codes" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" - "github.com/iwind/TeaGo/Tea" "github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/types" - "gopkg.in/yaml.v3" - "os" - "runtime" "strconv" - "time" ) // InitNodeInfo 初始化节点信息 @@ -115,124 +104,3 @@ func InitNodeInfo(parentAction *actionutils.ParentAction, nodeId int64) (*pb.Nod return nodeResp.Node, nil } - -// InstallLocalNode 安装本地节点 -func InstallLocalNode() error { - var targetDir = Tea.Root - var nodeDir = targetDir + "/edge-node" - var apiAddr = "http://127.0.0.1:8001" // 先固定 - - // 查找节点安装文件 - var zipFile = Tea.Root + "/edge-api/deploy/edge-node-linux-" + runtime.GOARCH + "-v" + teaconst.Version /** 默认和管理系统一致 **/ + ".zip" - { - stat, err := os.Stat(zipFile) - if err != nil { - if os.IsNotExist(err) { - return errors.New("installer file not found in '" + zipFile + "'") - } - return fmt.Errorf("open installer file failed: %w", err) - } - if stat.IsDir() { - return errors.New("invalid installer file '" + zipFile + "'") - } - } - - // 解压节点 - var unzip = utils.NewUnzip(zipFile, targetDir) - err := unzip.Run() - if err != nil { - return fmt.Errorf("unzip installer file failed: %w", err) - } - - // 创建节点 - rpcClient, err := rpc.SharedRPC() - if err != nil { - return fmt.Errorf("create rpc client failed: %w", err) - } - var ctx = rpcClient.Context(0) - nodeClustersResp, err := rpcClient.NodeClusterRPC().ListEnabledNodeClusters(ctx, &pb.ListEnabledNodeClustersRequest{ - IdDesc: true, - Offset: 0, - Size: 1, - }) - if err != nil { - return err - } - if len(nodeClustersResp.NodeClusters) == 0 { - return errors.New("no clusters yet, please create a cluster at least") - } - var clusterId = nodeClustersResp.NodeClusters[0].Id - - // 检查节点是否已生成 - countNodesResp, err := rpcClient.NodeRPC().CountAllEnabledNodesMatch(ctx, &pb.CountAllEnabledNodesMatchRequest{ - NodeClusterId: clusterId, - }) - if err != nil { - return err - } - if countNodesResp.Count > 0 { - // 这里先不判断是否有本地节点,只要有节点,就不允许再次执行 - return errors.New("there are already nodes in the cluster") - } - - createNodeResp, err := rpcClient.NodeRPC().CreateNode(ctx, &pb.CreateNodeRequest{ - Name: "本地节点", - NodeClusterId: clusterId, - NodeLogin: nil, - NodeGroupId: 0, - DnsRoutes: nil, - NodeRegionId: 0, - }) - if err != nil { - return err - } - var nodeId = createNodeResp.NodeId - nodeResp, err := rpcClient.NodeRPC().FindEnabledNode(ctx, &pb.FindEnabledNodeRequest{NodeId: nodeId}) - if err != nil { - return err - } - if nodeResp.Node == nil { - return errors.New("could not find local node with created id '" + types.String(nodeId) + "'") - } - var node = nodeResp.Node - - // 生成节点配置 - var apiConfig = &configs.APIConfig{ - RPCEndpoints: []string{apiAddr}, - RPCDisableUpdate: true, - NodeId: node.UniqueId, - Secret: node.Secret, - } - apiConfigYAML, err := yaml.Marshal(apiConfig) - if err != nil { - return fmt.Errorf("encode config failed: %w", err) - } - err = os.WriteFile(nodeDir+"/configs/api_node.yaml", apiConfigYAML, 0666) - if err != nil { - return fmt.Errorf("write config file failed: %w", err) - } - - // 测试节点 - { - var cmd = executils.NewTimeoutCmd(5*time.Second, nodeDir+"/bin/edge-node", "test") - cmd.WithStdout() - cmd.WithStderr() - err = cmd.Run() - if err != nil { - return fmt.Errorf("node test failed: %w", err) - } - } - - // 启动节点 - { - var cmd = executils.NewTimeoutCmd(5*time.Second, nodeDir+"/bin/edge-node", "start") - cmd.WithStdout() - cmd.WithStderr() - err = cmd.Run() - if err != nil { - return fmt.Errorf("node start failed: %w", err) - } - } - - return nil -}