删除不需要的代码

This commit is contained in:
GoEdgeLab
2024-01-28 20:05:21 +08:00
parent 4bd7095a2f
commit 3cbd897a40

View File

@@ -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
}