feat: 网元信息Telnet客户端连接函数
This commit is contained in:
@@ -2,6 +2,7 @@ package service
|
||||
|
||||
import (
|
||||
"be.ems/src/framework/utils/ssh"
|
||||
"be.ems/src/framework/utils/telnet"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
)
|
||||
|
||||
@@ -47,12 +48,16 @@ type INeInfo interface {
|
||||
// CheckUniqueNeTypeAndNeId 校验同类型下标识是否唯一
|
||||
CheckUniqueNeTypeAndNeId(neType, neId, id string) bool
|
||||
|
||||
// NeRunSSHClient 网元主机的SSH客户端-为创建相关连接
|
||||
// NeRunSSHClient 网元主机的SSH客户端-为创建相关连接,注意结束后 Close()
|
||||
NeRunSSHClient(neType, neId string) (*ssh.ConnSSH, error)
|
||||
|
||||
// NeRunSSHCmd 网元主机的SSH客户端发送cmd命令
|
||||
NeRunSSHCmd(neType, neId, cmd string) (string, error)
|
||||
|
||||
// NeRunTelnetClient 网元主机的Telnet客户端-为创建相关连接,注意结束后 Close()
|
||||
// num 是网元主机telnet 1:4100 2:5200
|
||||
NeRunTelnetClient(neType, neId string, num int) (*telnet.ConnTelnet, error)
|
||||
|
||||
// neConfOAMRead 网元OAM配置文件读取
|
||||
NeConfOAMRead(neType, neId string) (map[string]any, error)
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"be.ems/src/framework/redis"
|
||||
"be.ems/src/framework/utils/parse"
|
||||
"be.ems/src/framework/utils/ssh"
|
||||
"be.ems/src/framework/utils/telnet"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
"be.ems/src/modules/network_element/repository"
|
||||
)
|
||||
@@ -298,7 +299,7 @@ func (r *NeInfoImpl) CheckUniqueNeTypeAndNeId(neType, neId, id string) bool {
|
||||
return uniqueId == ""
|
||||
}
|
||||
|
||||
// NeRunSSHClient 网元主机的SSH客户端-为创建相关连接
|
||||
// NeRunSSHClient 网元主机的SSH客户端-为创建相关连接,注意结束后 Close()
|
||||
func (r *NeInfoImpl) NeRunSSHClient(neType, neId string) (*ssh.ConnSSH, error) {
|
||||
neInfo := r.SelectNeInfoByNeTypeAndNeID(neType, neId)
|
||||
if neInfo.NeId != neId {
|
||||
@@ -315,7 +316,7 @@ func (r *NeInfoImpl) NeRunSSHClient(neType, neId string) (*ssh.ConnSSH, error) {
|
||||
logger.Errorf("NeRunSSHClient Hosts %s not found", neInfo.HostIDs)
|
||||
return nil, fmt.Errorf("neinfo host not found")
|
||||
}
|
||||
neHost := neInfo.Hosts[0]
|
||||
neHost := neInfo.Hosts[0] // 网元主机ssh 0:22
|
||||
if neHost.HostType != "ssh" {
|
||||
logger.Errorf("NeRunSSHClient Hosts first HostType %s not ssh", neHost.HostType)
|
||||
return nil, fmt.Errorf("neinfo host type not ssh")
|
||||
@@ -354,6 +355,37 @@ func (r *NeInfoImpl) NeRunSSHCmd(neType, neId, cmd string) (string, error) {
|
||||
return output, nil
|
||||
}
|
||||
|
||||
// NeRunTelnetClient 网元主机的Telnet客户端-为创建相关连接,注意结束后 Close()
|
||||
// num 是网元主机telnet 1:4100 2:5200
|
||||
func (r *NeInfoImpl) NeRunTelnetClient(neType, neId string, num int) (*telnet.ConnTelnet, error) {
|
||||
neInfo := r.SelectNeInfoByNeTypeAndNeID(neType, neId)
|
||||
if neInfo.NeId != neId {
|
||||
logger.Errorf("NeRunTelnetClient NeType:%s NeID:%s not found", neType, neId)
|
||||
return nil, fmt.Errorf("neinfo not found")
|
||||
}
|
||||
// 取主机信息
|
||||
if neInfo.HostIDs == "" {
|
||||
logger.Errorf("NeRunTelnetClient NeType:%s NeID:%s hostId not found", neType, neId)
|
||||
return nil, fmt.Errorf("neinfo hostId not found")
|
||||
}
|
||||
neInfo.Hosts = NewNeHostImpl.neHostRepository.SelectByIds(strings.Split(neInfo.HostIDs, ","))
|
||||
if len(neInfo.Hosts) <= 0 {
|
||||
logger.Errorf("NeRunTelnetClient Hosts %s not found", neInfo.HostIDs)
|
||||
return nil, fmt.Errorf("neinfo host not found")
|
||||
}
|
||||
neHost := neInfo.Hosts[num]
|
||||
|
||||
// 创建链接Telnet客户端
|
||||
var connTelnet telnet.ConnTelnet
|
||||
neHost.CopyTo(&connTelnet)
|
||||
telnetClient, err := connTelnet.NewClient()
|
||||
if err != nil {
|
||||
logger.Errorf("NeRunTelnetClient NewClient err => %s", err.Error())
|
||||
return nil, fmt.Errorf("neinfo telnet client new err")
|
||||
}
|
||||
return telnetClient, nil
|
||||
}
|
||||
|
||||
// neConfOAMData 网元OAM配置文件默认格式数据
|
||||
func (r *NeInfoImpl) neConfOAMData() map[string]any {
|
||||
return map[string]any{
|
||||
|
||||
Reference in New Issue
Block a user