Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-operation-api
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-operation-api
Commits
f2cdf1ec
Commit
f2cdf1ec
authored
Jul 03, 2023
by
黄智
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
63baf5dd
a20551a8
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
192 additions
and
39 deletions
+192
-39
src/bean/vo/request/task_manage.go
src/bean/vo/request/task_manage.go
+1
-0
src/common/tools/hosts
src/common/tools/hosts
+16
-0
src/common/tools/hosts.go
src/common/tools/hosts.go
+62
-0
src/controller/task_manage.go
src/controller/task_manage.go
+1
-0
src/service/host_manage.go
src/service/host_manage.go
+92
-38
src/service/task_manage.go
src/service/task_manage.go
+20
-1
No files found.
src/bean/vo/request/task_manage.go
View file @
f2cdf1ec
...
@@ -37,4 +37,5 @@ type ExecScriptReq struct {
...
@@ -37,4 +37,5 @@ type ExecScriptReq struct {
Type
int
`form:"type"`
//脚本额外变量类型1yaml 2json
Type
int
`form:"type"`
//脚本额外变量类型1yaml 2json
Value
string
`form:"value"`
//脚本额外变量值
Value
string
`form:"value"`
//脚本额外变量值
Script
string
`form:"script"`
//执行脚本
Script
string
`form:"script"`
//执行脚本
ScriptUrl
string
`form:"script_url"`
//执行脚本url
}
}
src/common/tools/hosts
0 → 100644
View file @
f2cdf1ec
[HostGroup]
HostIp192.168.0.1 ansible_ssh_host=192.168.0.1 ansible_ssh_port=22 ansible_ssh_user="admin" ansible_ssh_pass="123456"
HostIp192.186.10.1 ansible_ssh_host=192.186.10.1 ansible_ssh_port=22 ansible_ssh_user="admin" ansible_ssh_pass="123456"
HostIp101.168.0.1 ansible_ssh_host=101.168.0.1 ansible_ssh_port=22 ansible_ssh_user="root" ansible_ssh_pass=""
HostIp101.186.10.1 ansible_ssh_host=101.186.10.1 ansible_ssh_port=22 ansible_ssh_user="root" ansible_ssh_pass=""
[webGroup1]
192.168.0.11 ansible_ssh_host=192.168.0.11 ansible_ssh_user=root ansible_ssh_pass=123.com ansible_ssh_port=3333
192.168.0.12 ansible_ssh_host=192.168.0.12 ansible_ssh_user=root ansible_ssh_pass=1234.com ansible_ssh_port=2222
[webGroup2]
192.168.1.11 ansible_ssh_host=192.168.1.11 ansible_ssh_user=admin ansible_ssh_pass=ccc.com ansible_ssh_port=11
192.168.1.12 ansible_ssh_host=192.168.1.12 ansible_ssh_user=admin ansible_ssh_pass=111.com ansible_ssh_port=22
[HostGroup15]
HostIp22 ansible_ssh_host=192.168.0.1 ansible_ssh_port=22 ansible_ssh_user="admin" ansible_ssh_pass="123456"
HostIp23 ansible_ssh_host=192.186.10.1 ansible_ssh_port=22 ansible_ssh_user="admin" ansible_ssh_pass="123456"
HostIp24 ansible_ssh_host=101.168.0.1 ansible_ssh_port=22 ansible_ssh_user="root" ansible_ssh_pass=""
HostIp25 ansible_ssh_host=101.186.10.1 ansible_ssh_port=22 ansible_ssh_user="root" ansible_ssh_pass=""
src/common/tools/hosts.go
0 → 100644
View file @
f2cdf1ec
package
tools
import
(
"bufio"
"fmt"
"os"
"strings"
)
func
HostsToJson
()
(
data
map
[
string
][]
string
,
err
error
)
{
f
,
err
:=
os
.
Open
(
`/etc/ansible/hosts`
)
//f, err := os.Open(`D:\work\goWork\智能运维平台\so-operation-api\src\common\tools\hosts`)
if
err
!=
nil
{
return
nil
,
err
}
defer
f
.
Close
()
data
=
make
(
map
[
string
][]
string
)
// 以这个文件为参数,创建一个 scanner
s
:=
bufio
.
NewScanner
(
f
)
var
key
string
var
per
[]
string
// 扫描每行文件,按行读取
for
s
.
Scan
()
{
if
strings
.
HasPrefix
(
s
.
Text
(),
"["
)
&&
strings
.
HasSuffix
(
s
.
Text
(),
"]"
)
{
key
=
s
.
Text
()
per
=
[]
string
{}
data
[
key
]
=
per
}
else
{
data
[
key
]
=
append
(
data
[
key
],
s
.
Text
())
}
}
if
s
.
Err
()
!=
nil
{
return
nil
,
s
.
Err
()
}
return
data
,
nil
}
func
MapToSaveHosts
(
data
map
[
string
][]
string
)
error
{
f
,
err
:=
os
.
OpenFile
(
"/etc/ansible/hosts"
,
os
.
O_APPEND
|
os
.
O_CREATE
|
os
.
O_RDWR
|
os
.
O_TRUNC
,
0777
)
//f, err := os.OpenFile("D:/work/goWork/智能运维平台/so-operation-api/src/common/tools/hosts", os.O_APPEND|os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0777)
if
err
!=
nil
{
return
err
}
defer
f
.
Close
()
for
k
,
v
:=
range
data
{
_
,
err
=
f
.
Write
([]
byte
(
fmt
.
Sprintf
(
"%s
\n
"
,
k
)))
if
err
!=
nil
{
return
err
}
_
,
err
=
f
.
Write
([]
byte
(
strings
.
Join
(
v
,
"
\n
"
)))
if
err
!=
nil
{
return
err
}
_
,
err
=
f
.
Write
([]
byte
(
"
\n
"
))
if
err
!=
nil
{
return
err
}
}
return
nil
}
src/controller/task_manage.go
View file @
f2cdf1ec
...
@@ -123,6 +123,7 @@ func ExecScript(c *gin.Context) {
...
@@ -123,6 +123,7 @@ func ExecScript(c *gin.Context) {
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
return
return
}
}
taskManageSvc
:=
service
.
TaskManageSvc
{}
taskManageSvc
:=
service
.
TaskManageSvc
{}
data
,
err
:=
taskManageSvc
.
ExecScript
(
req
)
data
,
err
:=
taskManageSvc
.
ExecScript
(
req
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
src/service/host_manage.go
View file @
f2cdf1ec
...
@@ -11,8 +11,8 @@ import (
...
@@ -11,8 +11,8 @@ import (
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/response"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/response"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/client"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/client"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/conf"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/conf"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/tools"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"os"
"os/exec"
"os/exec"
"strings"
"strings"
"time"
"time"
...
@@ -22,7 +22,8 @@ type HostManageSvc struct {
...
@@ -22,7 +22,8 @@ type HostManageSvc struct {
User
*
entity
.
SystemUser
User
*
entity
.
SystemUser
}
}
const
AnsibleGroup
string
=
"HostManage"
const
AnsibleGroup
string
=
"HostGroup"
const
AnsibleIp
string
=
"HostIp"
// AddHostManage 新增主机
// AddHostManage 新增主机
func
(
h
*
HostManageSvc
)
AddHostManage
(
req
request
.
AddHostManageReq
)
(
err
error
)
{
func
(
h
*
HostManageSvc
)
AddHostManage
(
req
request
.
AddHostManageReq
)
(
err
error
)
{
...
@@ -84,12 +85,22 @@ func (h *HostManageSvc) AddHostManage(req request.AddHostManageReq) (err error)
...
@@ -84,12 +85,22 @@ func (h *HostManageSvc) AddHostManage(req request.AddHostManageReq) (err error)
return
return
}
}
//读取hosts中的主机组
hosts
,
err
:=
tools
.
HostsToJson
()
if
err
!=
nil
{
err
=
resp
.
MarshalError
.
WithError
(
err
)
session
.
Rollback
()
return
}
hosts
[
"["
+
AnsibleGroup
+
fmt
.
Sprintf
(
"%d"
,
hostManage
.
Id
)
+
"]"
]
=
nil
//新增主机分组列表
//新增主机分组列表
for
_
,
v
:=
range
hostManageLists
{
for
_
,
v
:=
range
hostManageLists
{
port
:=
"22"
port
:=
"22"
if
v
.
Port
!=
""
{
if
v
.
Port
!=
""
{
port
=
v
.
Port
port
=
v
.
Port
}
}
hostManageList
:=
entity
.
HostManageList
{
hostManageList
:=
entity
.
HostManageList
{
Ip
:
v
.
Ip
,
Ip
:
v
.
Ip
,
Port
:
port
,
Port
:
port
,
...
@@ -106,6 +117,18 @@ func (h *HostManageSvc) AddHostManage(req request.AddHostManageReq) (err error)
...
@@ -106,6 +117,18 @@ func (h *HostManageSvc) AddHostManage(req request.AddHostManageReq) (err error)
session
.
Rollback
()
session
.
Rollback
()
return
return
}
}
hostsIp
:=
fmt
.
Sprintf
(
"%s ansible_ssh_host=%s ansible_ssh_port=%s ansible_ssh_user=
\"
%s
\"
ansible_ssh_pass=
\"
%s
\"
"
,
AnsibleIp
+
fmt
.
Sprintf
(
"%d"
,
hostManageList
.
Id
),
v
.
Ip
,
v
.
Port
,
v
.
UserName
,
v
.
Password
)
hosts
[
"["
+
AnsibleGroup
+
fmt
.
Sprintf
(
"%d"
,
hostManage
.
Id
)
+
"]"
]
=
append
(
hosts
[
"["
+
AnsibleGroup
+
fmt
.
Sprintf
(
"%d"
,
hostManage
.
Id
)
+
"]"
],
hostsIp
)
}
//写入hosts
err
=
tools
.
MapToSaveHosts
(
hosts
)
if
err
!=
nil
{
err
=
resp
.
MarshalError
.
WithError
(
err
)
session
.
Rollback
()
return
}
}
session
.
Commit
()
session
.
Commit
()
...
@@ -166,6 +189,14 @@ func (h *HostManageSvc) EditHostManage(req request.EditHostManageReq) (err error
...
@@ -166,6 +189,14 @@ func (h *HostManageSvc) EditHostManage(req request.EditHostManageReq) (err error
return
return
}
}
//读取hosts中的主机组
hosts
,
err
:=
tools
.
HostsToJson
()
if
err
!=
nil
{
err
=
resp
.
MarshalError
.
WithError
(
err
)
return
}
hosts
[
"["
+
AnsibleGroup
+
fmt
.
Sprintf
(
"%d"
,
req
.
Id
)
+
"]"
]
=
nil
//新增主机分组列表
//新增主机分组列表
for
_
,
v
:=
range
hostManageLists
{
for
_
,
v
:=
range
hostManageLists
{
port
:=
"22"
port
:=
"22"
...
@@ -188,8 +219,19 @@ func (h *HostManageSvc) EditHostManage(req request.EditHostManageReq) (err error
...
@@ -188,8 +219,19 @@ func (h *HostManageSvc) EditHostManage(req request.EditHostManageReq) (err error
session
.
Rollback
()
session
.
Rollback
()
return
return
}
}
hostsIp
:=
fmt
.
Sprintf
(
"%s ansible_ssh_host=%s ansible_ssh_port=%s ansible_ssh_user=
\"
%s
\"
ansible_ssh_pass=
\"
%s
\"
"
,
AnsibleIp
+
fmt
.
Sprintf
(
"%d"
,
hostManageList
.
Id
),
v
.
Ip
,
v
.
Port
,
v
.
UserName
,
v
.
Password
)
hosts
[
"["
+
AnsibleGroup
+
fmt
.
Sprintf
(
"%d"
,
req
.
Id
)
+
"]"
]
=
append
(
hosts
[
"["
+
AnsibleGroup
+
fmt
.
Sprintf
(
"%d"
,
req
.
Id
)
+
"]"
],
hostsIp
)
}
}
//写入hosts
err
=
tools
.
MapToSaveHosts
(
hosts
)
if
err
!=
nil
{
err
=
resp
.
MarshalError
.
WithError
(
err
)
return
}
session
.
Commit
()
session
.
Commit
()
return
return
}
}
...
@@ -352,22 +394,22 @@ func (h *HostManageSvc) ListStateHostManage(req request.StateHostManageReq) (err
...
@@ -352,22 +394,22 @@ func (h *HostManageSvc) ListStateHostManage(req request.StateHostManageReq) (err
}
}
//往hosts文件中写入主机组ip
//往hosts文件中写入主机组ip
f
,
err
:=
os
.
OpenFile
(
"/etc/ansible/hosts"
,
os
.
O_APPEND
|
os
.
O_CREATE
|
os
.
O_RDWR
|
os
.
O_TRUNC
,
0777
)
//f, err := os.OpenFile("/etc/ansible/hosts", os.O_APPEND|os.O_CREATE|os.O_RDWR
, 0777)
if
err
!=
nil
{
//
if err != nil {
err
=
resp
.
FileExecError
.
WithError
(
err
)
//
err = resp.FileExecError.WithError(err)
return
//
return
}
//
}
defer
f
.
Close
()
//
defer f.Close()
_
,
err
=
f
.
Write
([]
byte
(
fmt
.
Sprintf
(
"%s%d
\n
"
,
AnsibleGroup
,
req
.
Id
)))
//
_, err = f.Write([]byte(fmt.Sprintf("%s%d\n", AnsibleGroup, req.Id)))
if
err
!=
nil
{
//
if err != nil {
return
resp
.
FileExecError
.
WithError
(
err
)
//
return resp.FileExecError.WithError(err)
}
//
}
for
_
,
v
:=
range
hostManageList
{
//
for _, v := range hostManageList {
_
,
err
=
f
.
Write
([]
byte
(
fmt
.
Sprintf
(
"%s ansible_ssh_host=%s ansible_ssh_port=%s ansible_ssh_user=
\"
%s
\"
ansible_ssh_pass=
\"
%s
\"\n
"
,
v
.
Ip
,
v
.
Ip
,
v
.
Port
,
v
.
UserName
,
v
.
Password
)))
//
_, err = f.Write([]byte(fmt.Sprintf("%s ansible_ssh_host=%s ansible_ssh_port=%s ansible_ssh_user=\"%s\" ansible_ssh_pass=\"%s\"\n", v.Ip, v.Ip, v.Port, v.UserName, v.Password)))
if
err
!=
nil
{
//
if err != nil {
return
resp
.
FileExecError
.
WithError
(
err
)
//
return resp.FileExecError.WithError(err)
}
//
}
}
//
}
for
_
,
v
:=
range
hostManageList
{
for
_
,
v
:=
range
hostManageList
{
//修改状态
//修改状态
_
,
err
=
session
.
Table
(
"host_manage_list"
)
.
Where
(
"is_delete = 0 AND id = ?"
,
v
.
Id
)
.
_
,
err
=
session
.
Table
(
"host_manage_list"
)
.
Where
(
"is_delete = 0 AND id = ?"
,
v
.
Id
)
.
...
@@ -393,7 +435,7 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL
...
@@ -393,7 +435,7 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL
}
}
//处理ip列表
//处理ip列表
ipGroup
:=
1
ipGroup
:=
1
H
ostManageListCaches
:=
make
([]
entity
.
HostManageListCache
,
0
)
h
ostManageListCaches
:=
make
([]
entity
.
HostManageListCache
,
0
)
for
_
,
v
:=
range
hostManageList
{
for
_
,
v
:=
range
hostManageList
{
port
:=
"22"
port
:=
"22"
if
v
.
Port
!=
""
{
if
v
.
Port
!=
""
{
...
@@ -410,40 +452,52 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL
...
@@ -410,40 +452,52 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL
Password
:
v
.
Password
,
Password
:
v
.
Password
,
IpGroup
:
ipGroup
,
IpGroup
:
ipGroup
,
}
}
HostManageListCaches
=
append
(
H
ostManageListCaches
,
HostManageListCache
)
hostManageListCaches
=
append
(
h
ostManageListCaches
,
HostManageListCache
)
}
}
ipGroup
+=
1
ipGroup
+=
1
}
}
//
往hosts文件中写入主机组ip
//
读取hosts中的主机组
f
,
err
:=
os
.
OpenFile
(
"/etc/ansible/hosts"
,
os
.
O_APPEND
|
os
.
O_CREATE
|
os
.
O_RDWR
|
os
.
O_TRUNC
,
0777
)
hosts
,
err
:=
tools
.
HostsToJson
(
)
if
err
!=
nil
{
if
err
!=
nil
{
err
=
resp
.
FileExec
Error
.
WithError
(
err
)
err
=
resp
.
Marshal
Error
.
WithError
(
err
)
return
return
}
}
defer
f
.
Close
()
if
_
,
ok
:=
hosts
[
"["
+
AnsibleGroup
+
"]"
];
!
ok
{
for
_
,
v
:=
range
hostManageList
{
// 不存在
_
,
err
=
f
.
Write
([]
byte
(
fmt
.
Sprintf
(
"%s ansible_ssh_host=%s ansible_ssh_port=%s ansible_ssh_user=
\"
%s
\"
ansible_ssh_pass=
\"
%s
\"\n
"
,
v
.
Ip
,
v
.
Ip
,
v
.
Port
,
v
.
UserName
,
v
.
Password
)))
hosts
[
"["
+
AnsibleGroup
+
"]"
]
=
nil
}
for
_
,
v
:=
range
hostManageListCaches
{
hostsIp
:=
fmt
.
Sprintf
(
"%s ansible_ssh_host=%s ansible_ssh_port=%s ansible_ssh_user=
\"
%s
\"
ansible_ssh_pass=
\"
%s
\"
"
,
AnsibleIp
+
v
.
Ip
,
v
.
Ip
,
v
.
Port
,
v
.
UserName
,
v
.
Password
)
flag
:=
0
for
_
,
v1
:=
range
hosts
[
"["
+
AnsibleGroup
+
"]"
]
{
if
v1
==
hostsIp
{
flag
=
1
}
}
if
flag
==
0
{
hosts
[
"["
+
AnsibleGroup
+
"]"
]
=
append
(
hosts
[
"["
+
AnsibleGroup
+
"]"
],
hostsIp
)
}
}
//写入hosts
err
=
tools
.
MapToSaveHosts
(
hosts
)
if
err
!=
nil
{
if
err
!=
nil
{
err
=
resp
.
FileExec
Error
.
WithError
(
err
)
err
=
resp
.
Marshal
Error
.
WithError
(
err
)
return
return
}
}
}
//状态检测
//状态检测
id
=
uuid
.
New
()
.
String
()
id
=
uuid
.
New
()
.
String
()
if
err
!=
nil
{
for
k
,
v
:=
range
hostManageListCaches
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
for
k
,
v
:=
range
HostManageListCaches
{
//调用状态检测函数
//调用状态检测函数
H
ostManageListCaches
[
k
]
.
ConnStatus
=
StatusDetection
(
v
.
Ip
)
h
ostManageListCaches
[
k
]
.
ConnStatus
=
StatusDetection
(
v
.
Ip
)
H
ostManageListCaches
[
k
]
.
Id
=
id
h
ostManageListCaches
[
k
]
.
Id
=
id
}
}
//存入数据库
//存入数据库
_
,
err
=
db
.
Table
(
"host_manage_list_cache"
)
.
Insert
(
&
H
ostManageListCaches
)
_
,
err
=
db
.
Table
(
"host_manage_list_cache"
)
.
Insert
(
&
h
ostManageListCaches
)
if
err
!=
nil
{
if
err
!=
nil
{
err
=
resp
.
DbInsertError
.
WithError
(
err
)
err
=
resp
.
DbInsertError
.
WithError
(
err
)
return
return
...
@@ -509,7 +563,7 @@ func (h *HostManageSvc) SaveIpExceptionList(req request.HostIpExceptionListReq)
...
@@ -509,7 +563,7 @@ func (h *HostManageSvc) SaveIpExceptionList(req request.HostIpExceptionListReq)
// StatusDetection 状态检测
// StatusDetection 状态检测
func
StatusDetection
(
ip
string
)
(
ipConn
int
)
{
func
StatusDetection
(
ip
string
)
(
ipConn
int
)
{
var
cmd
*
exec
.
Cmd
var
cmd
*
exec
.
Cmd
cmd
=
exec
.
Command
(
"ansible"
,
fmt
.
Sprintf
(
"%s"
,
ip
),
"-m"
,
"ping"
)
cmd
=
exec
.
Command
(
"ansible"
,
fmt
.
Sprintf
(
"%s"
,
AnsibleIp
+
ip
),
"-m"
,
"ping"
)
output
,
err
:=
cmd
.
Output
()
output
,
err
:=
cmd
.
Output
()
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
"ping:"
,
string
(
output
))
fmt
.
Println
(
"ping:"
,
string
(
output
))
...
...
src/service/task_manage.go
View file @
f2cdf1ec
package
service
package
service
import
(
import
(
"context"
"errors"
"errors"
"fmt"
"fmt"
"github.com/ghodss/yaml"
"github.com/ghodss/yaml"
json
"github.com/json-iterator/go"
json
"github.com/json-iterator/go"
"github.com/minio/minio-go/v7"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/entity"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/entity"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/request"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/request"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/response"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/response"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/client"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/client"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/conf"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"io"
"os"
"os"
"os/exec"
"os/exec"
"time"
"time"
...
@@ -174,6 +178,21 @@ func (t *TaskManageSvc) ListTaskManage(req request.ListTaskManageReq) (total int
...
@@ -174,6 +178,21 @@ func (t *TaskManageSvc) ListTaskManage(req request.ListTaskManageReq) (total int
}
}
func
(
t
*
TaskManageSvc
)
ExecScript
(
req
request
.
ExecScriptReq
)
(
data
interface
{},
err
error
)
{
func
(
t
*
TaskManageSvc
)
ExecScript
(
req
request
.
ExecScriptReq
)
(
data
interface
{},
err
error
)
{
if
req
.
ScriptUrl
!=
""
{
minioClient
,
err
:=
client
.
GetMinioConnect
()
if
err
!=
nil
{
return
nil
,
resp
.
DbConnectError
.
WithError
(
err
)
}
object
,
err
:=
minioClient
.
GetObject
(
context
.
Background
(),
conf
.
Options
.
MinioBucket
,
req
.
ScriptUrl
,
minio
.
GetObjectOptions
{})
if
err
!=
nil
{
return
nil
,
resp
.
FileExecError
.
WithError
(
err
)
}
obj
,
err
:=
io
.
ReadAll
(
object
)
if
err
!=
nil
{
return
nil
,
resp
.
FileExecError
.
WithError
(
err
)
}
req
.
Script
=
string
(
obj
)
}
var
script
map
[
string
]
interface
{}
var
script
map
[
string
]
interface
{}
j2
,
err
:=
yaml
.
YAMLToJSON
([]
byte
(
req
.
Script
))
j2
,
err
:=
yaml
.
YAMLToJSON
([]
byte
(
req
.
Script
))
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -181,7 +200,7 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq) (data interface{},
...
@@ -181,7 +200,7 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq) (data interface{},
}
}
err
=
json
.
Unmarshal
(
j2
,
&
script
)
err
=
json
.
Unmarshal
(
j2
,
&
script
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
resp
.
MarshalError
.
WithError
(
err
)
return
nil
,
resp
.
MarshalError
.
WithError
(
err
ors
.
New
(
"yaml格式错误"
)
)
}
}
if
script
[
"host"
]
==
"all"
{
if
script
[
"host"
]
==
"all"
{
script
[
"host"
]
=
fmt
.
Sprintf
(
"%s%d"
,
AnsibleGroup
,
req
.
HostGroupId
)
script
[
"host"
]
=
fmt
.
Sprintf
(
"%s%d"
,
AnsibleGroup
,
req
.
HostGroupId
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment