From 330d5a3d215dec7a3734a2d95a3fd1d101985b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Tue, 20 Jul 2021 10:55:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E5=90=84=E4=B8=AA=E5=9C=B0=E6=96=B9?= =?UTF-8?q?=E6=94=AF=E6=8C=81IPv6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/installers/installer_base.go | 11 ++++++----- internal/installers/ssh_client.go | 12 ++++++------ internal/rpc/services/service_node_grant.go | 3 ++- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/internal/installers/installer_base.go b/internal/installers/installer_base.go index f987c8ba..4f9ae30c 100644 --- a/internal/installers/installer_base.go +++ b/internal/installers/installer_base.go @@ -2,6 +2,7 @@ package installers import ( "errors" + "github.com/TeaOSLab/EdgeCommon/pkg/configutils" "github.com/iwind/TeaGo/Tea" stringutil "github.com/iwind/TeaGo/utils/string" "golang.org/x/crypto/ssh" @@ -17,7 +18,7 @@ type BaseInstaller struct { client *SSHClient } -// 登录SSH服务 +// Login 登录SSH服务 func (this *BaseInstaller) Login(credentials *Credentials) error { var hostKeyCallback ssh.HostKeyCallback = nil @@ -78,7 +79,7 @@ func (this *BaseInstaller) Login(credentials *Credentials) error { Timeout: 5 * time.Second, // TODO 后期可以设置这个超时时间 } - sshClient, err := ssh.Dial("tcp", credentials.Host+":"+strconv.Itoa(credentials.Port), config) + sshClient, err := ssh.Dial("tcp", configutils.QuoteIP(credentials.Host)+":"+strconv.Itoa(credentials.Port), config) if err != nil { return err } @@ -90,7 +91,7 @@ func (this *BaseInstaller) Login(credentials *Credentials) error { return nil } -// 关闭SSH服务 +// Close 关闭SSH服务 func (this *BaseInstaller) Close() error { if this.client != nil { return this.client.Close() @@ -99,7 +100,7 @@ func (this *BaseInstaller) Close() error { return nil } -// 查找最新的版本的文件 +// LookupLatestInstaller 查找最新的版本的文件 func (this *BaseInstaller) LookupLatestInstaller(filePrefix string) (string, error) { matches, err := filepath.Glob(Tea.Root + Tea.DS + "deploy" + Tea.DS + "*.zip") if err != nil { @@ -131,7 +132,7 @@ func (this *BaseInstaller) LookupLatestInstaller(filePrefix string) (string, err return result, nil } -// 上传安装助手 +// InstallHelper 上传安装助手 func (this *BaseInstaller) InstallHelper(targetDir string) (env *Env, err error) { uname, _, err := this.client.Exec("uname -a") if err != nil { diff --git a/internal/installers/ssh_client.go b/internal/installers/ssh_client.go index ab6b487c..855f3b7f 100644 --- a/internal/installers/ssh_client.go +++ b/internal/installers/ssh_client.go @@ -30,7 +30,7 @@ func NewSSHClient(raw *ssh.Client) (*SSHClient, error) { return c, nil } -// 执行shell命令 +// Exec 执行shell命令 func (this *SSHClient) Exec(cmd string) (stdout string, stderr string, err error) { session, err := this.raw.NewSession() if err != nil { @@ -86,7 +86,7 @@ func (this *SSHClient) Chmod(path string, mode os.FileMode) error { return this.sftp.Chmod(path, mode) } -// 拷贝文件 +// Copy 拷贝文件 func (this *SSHClient) Copy(localPath string, remotePath string, mode os.FileMode) error { localFp, err := os.Open(localPath) if err != nil { @@ -110,12 +110,12 @@ func (this *SSHClient) Copy(localPath string, remotePath string, mode os.FileMod return this.Chmod(remotePath, mode) } -// 获取新Session +// NewSession 获取新Session func (this *SSHClient) NewSession() (*ssh.Session, error) { return this.raw.NewSession() } -// 读取文件内容 +// ReadFile 读取文件内容 func (this *SSHClient) ReadFile(path string) ([]byte, error) { fp, err := this.sftp.OpenFile(path, 0444) if err != nil { @@ -134,7 +134,7 @@ func (this *SSHClient) ReadFile(path string) ([]byte, error) { return buffer.Bytes(), nil } -// 写入文件内容 +// WriteFile 写入文件内容 func (this *SSHClient) WriteFile(path string, data []byte) (n int, err error) { fp, err := this.sftp.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY) if err != nil { @@ -148,7 +148,7 @@ func (this *SSHClient) WriteFile(path string, data []byte) (n int, err error) { return } -// 删除文件 +// Remove 删除文件 func (this *SSHClient) Remove(path string) error { return this.sftp.Remove(path) } diff --git a/internal/rpc/services/service_node_grant.go b/internal/rpc/services/service_node_grant.go index bcfe4f5f..63283861 100644 --- a/internal/rpc/services/service_node_grant.go +++ b/internal/rpc/services/service_node_grant.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/TeaOSLab/EdgeAPI/internal/db/models" "github.com/TeaOSLab/EdgeAPI/internal/utils/numberutils" + "github.com/TeaOSLab/EdgeCommon/pkg/configutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "golang.org/x/crypto/ssh" "net" @@ -252,7 +253,7 @@ func (this *NodeGrantService) TestNodeGrant(ctx context.Context, req *pb.TestNod Timeout: 5 * time.Second, // TODO 后期可以设置这个超时时间 } - sshClient, err := ssh.Dial("tcp", req.Host+":"+fmt.Sprintf("%d", req.Port), config) + sshClient, err := ssh.Dial("tcp", configutils.QuoteIP(req.Host)+":"+fmt.Sprintf("%d", req.Port), config) if err != nil { resp.Error = "connect failed: " + err.Error() return resp, nil