创建命令
接口描述
创建命令,支持保存、仅执行、执行并保存
请求结构
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称
类型
是否必须
参数位置
描述
execution
String
是
RequestBody参数
执行动作。枚举值:SAVE(仅保存),RUN(仅执行),SAVE_AND_RUN(保存并执行)
action
Action
是
RequestBody参数
执行动作详情
parameters
Map
否
RequestBody参数
执行命令时的参数值,仅在命令有参数且需要执行时需要
targetSelectorType
String
否
RequestBody参数
实例选择器类型,仅在执行动作为执行或保存并执行时需要。默认值为INSTANCES_LIST。可选值:INSTANCES_LIST(实例列表),ALL_INSTANCES(全部实例),TAG_INSTANCES(实例标签选择),INSTANCES_IMPORT(实例列表导入)
targets
List<Target >
否
Query参数
实例ID列表,仅在targetSelectorType为INSTANCES_LIST时需要
targetSelector
TargetSelector
否
Query参数
实例选择器
响应头域
除公共头域外,无其它特殊头域
响应参数
参数名称
类型
描述
actionId
String
命令id
actionType
String
动作类型。枚举值:COMMAND(脚本命令),FILE_UPLOAD(文件上传)
actionName
String
命令名称
commandType
String
脚本类型。枚举值: SHELL、POWERSHELL
version
int
命令版本号。从0开始,每次修改+1
runId
String
执行id,仅在命令执行时返回
请求示例
POST /v1 /ca/action
{
"execution" : "RUN" ,
"action" : {
"type" : "COMMAND" ,
"description" : "this is a test" ,
"timeoutSecond" : 300 ,
"command" : {
"type" : "SHELL" ,
"content" : "ls" ,
"scope" : "INDIVIDUAL" ,
"enableParameter" : false ,
"user" : "root" ,
"workDir" : "/home"
}
} ,
"targets" : [
{
"instanceType" : "BCC" ,
"instanceId" : "i-p9L8X***"
}
]
}
响应示例
{
"requestId" : "83e831f9-8f27-4c1c-bde4-fdfb********" ,
"code" : "success" ,
"result" : {
"actionId" : "c-cVtZHfVRD8******" ,
"actionType" : "COMMAND" ,
"commandType" : "SHELL" ,
"version" : 0 ,
"runId" : "r-h5fTUn2sab******"
}
}
删除命令
接口描述
删除已保存的命令
请求结构
DELETE /v1/ca/action/{id}
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称
类型
是否必须
参数位置
描述
id
String
是
Path参数
命令id
响应头域
除公共头域外,无其它特殊头域
响应参数
参数名称
类型
描述
requestId
String
请求id
code
String
响应状态,成功为success
请求示例
DELETE /v1 /ca/action/c-cVtZHfVRD8 ******
响应示例
{
"requestId" : "b7d01b02-40ea-4ed2-9969-925790******" ,
"code" : "success" ,
}
查询命令详情
接口描述
查询已保存的命令或公共命令
请求结构
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称
类型
是否必须
参数位置
描述
id
String
是
Query参数
命令ID
响应头域
除公共头域外,无其它特殊头域
响应参数
参数名称
类型
描述
requestId
String
请求ID
code
String
响应状态,成功为success
result
Action
命令详情
请求示例
GET /v1 /ca/action?id=c-cVtZHfVRD8 ******
响应示例
{
"requestId" : "8f713916-d41b-472a-a06b-8a80cb******" ,
"code" : "success" ,
"result" : {
"id" : "a-CwkIRFAaoUCx" ,
"name" : "test_command" ,
"description" : "安装和升级HAS-Agent到最新版本" ,
"timeoutSecond" : 300 ,
"type" : "COMMAND" ,
"command" : {
"type" : "SHELL" ,
"content" : "" ,
"enableParameter" : false ,
"parameters" : [
{
"name" : "参数名" ,
"desc" : "desc"
}
] ,
"user" : "work" ,
"workDir" : "/home/work/"
} ,
"createdTimestamp" : 1659534994121 ,
"updatedTimestamp" : 1659534994121
}
}
修改我的命令
接口描述
修改我的命令
请求结构
请求头域
除公共头域外,无其它特殊头域。
请求参数
UpdateActionRequest
参数名称
类型
是否必须
参数位置
描述
ref
String
是
RequestBody参数
需要修改的命令ID
name
String
是
RequestBody参数
修改后的命令名称
description
String
是
RequestBody参数
修改后的命令描述
timeoutSecond
int
是
RequestBody参数
修改后命令的超时时间(秒)
command
Command
是
RequestBody参数
修改后的命令
响应头域
除公共头域外,无其它特殊头域
响应参数
参数名称
类型
描述
requestId
String
请求id
code
String
响应状态,成功为success
请求示例
PUT /v1 /ca/action
{
"action" : {
"ref" : "c-WgEtWtD3sV******" ,
"name" : "cmd_2024_03_21_16_41_32" ,
"description" : "this is a test" ,
"timeoutSecond" : 60 ,
"command" : {
"type" : "SHELL" ,
"scope" : "INDIVIDUAL" ,
"enableParameter" : true ,
"parameters" : [
{
"name" : "param1" ,
"desc" : "this is a text"
}
] ,
"user" : "root" ,
"workDir" : "/home" ,
"content" : "{{param1}}"
}
}
}
响应示例
{
"requestId" : "be82abc6-eb4c-4a51-9f52-f59b97******" ,
"code" : "success"
}
命令列表查询
接口描述
查询我的命令列表或公共命令列表
请求结构
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称
类型
是否必须
参数位置
描述
action
ActionFilter
是
RequestBody参数
命令过滤器
pageNo
int
是
RequestBody参数
页码
pageSize
int
是
RequestBody参数
页大小
sort
String
否
RequestBody参数
排序字段,可选值createTime(命令创建时间)
ascending
bool
否
RequestBody参数
是否升序,默认false
ActionFilter
参数名称
类型
是否必须
参数位置
描述
command
CommandFilter
是
RequestBody参数
执行动作详情
CommandFilter
参数名称
类型
是否必须
参数位置
描述
scope
String
是
RequestBody参数
按命令可见范围筛选。枚举值:INDIVIDUAL(个人命令),GLOBAL(公共命令)
type
String
否
RequestBody参数
按命令类型筛选。枚举值:SHELL,POWERSHELL
name
String
否
RequestBody参数
按命令名称筛选
响应头域
除公共头域外,无其它特殊头域
响应参数
公共响应体中的result如下:
参数名称
类型
描述
pageNo
int
页码
pageSize
int
页大小
totalCount
int
总数
data
List<Action >
命令列表
请求示例
POST /v1 /ca/action/list
{
"action" : {
"type" : "COMMAND" ,
"command" : {
"scope" : "INDIVIDUAL" ,
"name" : "test"
}
} ,
"sort" : "createTime" ,
"ascending" : false ,
"pageNo" : 1 ,
"pageSize" : 10
}
响应示例
{
"requestId" : "ca1316b5-3fab-4c91-aeac-ad51fd******" ,
"code" : "success" ,
"result" : {
"pageNo" : 1 ,
"pageSize" : 10 ,
"totalCount" : 1 ,
"data" : [
{
"id" : "c-4CtIumYWlo******" ,
"type" : "COMMAND" ,
"name" : "cmd_test_test" ,
"timeoutSecond" : 30 ,
"command" : {
"type" : "SHELL" ,
"content" : "ls" ,
"scope" : "INDIVIDUAL" ,
"enableParameter" : false ,
"workDir" : "/home" ,
"user" : "root"
} ,
"createdTimestamp" : 1694672762000 ,
"updatedTimestamp" : 1694672762000
}
]
}
}
执行命令
接口描述
执行已创建的我的命令或公共命令
请求结构
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称
类型
是否必须
参数位置
描述
action
Action
是
RequestBody参数
所要执行的命令,仅需填写id
parameters
Map
否
RequestBody参数
执行命令时的参数值,仅在命令有参数时需要
targetSelectorType
String
否
RequestBody参数
实例选择器类型。默认值为INSTANCES_LIST。INSTANCES_LIST(实例列表),ALL_INSTANCES(全部实例),TAG_INSTANCES(实例标签选择),INSTANCES_IMPORT(实例列表导入)
targets
List<Target >
否
Query参数
实例ID列表,仅在targetSelectorType为INSTANCES_LIST时需要
targetSelector
TargetSelector
否
Query参数
实例选择器
响应头域
除公共头域外,无其它特殊头域
响应参数
公共响应体中的result如下:
参数名称
类型
描述
actionId
String
命令ID
runId
String
执行ID
请求示例
POST /v1 /ca/actionRun
{
"action" : {
"ref" : "c-WgEtWtD3sV******"
} ,
"parameters" : {
"param1" : "pwd"
} ,
"targetSelectorType" : "INSTANCES_LIST" ,
"targets" : [
{
"instanceType" : "BCC" ,
"instanceId" : "i-EVLpS***"
}
]
}
响应示例
{
"requestId" : "87c25fbd-21c9-4082-904a-0d8c85******" ,
"code" : "success" ,
"result" : {
"runId" : "r-2InH1HsWXU******" ,
"actionId" : "c-WgEtWtD3sV******"
}
}
附录
Action
参数名称
类型
描述
id
String
命令ID,仅被保存的命令拥有
type
String
Action类型。枚举值:COMMAND(命令),FILE_UPLOAD(上传文件)
name
String
命令名称,仅被保存的命令拥有
description
String
动作描述
timeoutSecond
int
动作的超时时间(秒)
command
Command
命令详情
fileUpload
FileUpload
文件上传详情
createdTimestamp
long
命令创建时间。unix时间戳(毫秒)
updateTimestamp
long
命令最后一次被修改时间。unix时间戳(毫秒)
Command
参数名称
类型
描述
type
String
脚本类型。枚举值:SHELL,POWERSHELL
scope
String
命令可见范围。GLOBAL表示公共命令,INDIVIDUAL表示个人命令
content
long
命令脚本内容
enableParameter
bool
命令是否包含参数
parameters
List<Parameter >
命令参数列表
user
String
命令在虚机的执行用户
workDir
int
命令在虚机的执行路径
execParams
Map<String, String>
命令执行时的实际参数值
FileUpload
参数名称
类型
描述
os
String
操作系统。枚举值:LINUX,WINDOWS
filename
String
文件名称
filepath
String
目标路径
bosBucketName
String
bos桶名称
bosFilePath
String
bos文件路径
bosEtag
String
文件唯一标识符
overwrite
bool
是否覆盖目标路径下的同名文件
user
String
用户,仅Linux文件上传需要
group
String
用户组,仅Linux文件上传需要
mode
String
文件权限, 仅Linux文件上传需要
Parameter
参数名称
类型
描述
name
String
参数名称
desc
String
参数描述
TargetSelector
参数名称
类型
描述
instanceType
String
实例类型。枚举值:BCC,BBC
tags
List<Tag >
实例标签列表
importInstances
TargetImport
实例标签列表
Tag
参数名称
类型
描述
tagKey
String
标签Key
tagValue
String
标签Value
TargetImport
参数名称
类型
描述
keywordType
String
实例列表导入类型。枚举值:instanceId(通过实例ID导入),internalIp表示(通过实例内网导入)
instances
List<String>
实例清单列表
Target
参数名称
类型
描述
instanceType
String
实例类型。枚举值:BCC,BBC
instanceId
List<String>
实例ID列表