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
8e9a9af5
Commit
8e9a9af5
authored
Jul 03, 2023
by
魏灿
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
脚本执行fix
parent
3a56f2f8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
1 deletion
+21
-1
src/bean/vo/request/task_manage.go
src/bean/vo/request/task_manage.go
+1
-0
src/service/task_manage.go
src/service/task_manage.go
+20
-1
No files found.
src/bean/vo/request/task_manage.go
View file @
8e9a9af5
...
@@ -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/service/task_manage.go
View file @
8e9a9af5
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