端口镜像相关接口
创建端口镜像(CreatePortMirror)
API请求
URLs
POST zstack/v1/port-mirrorsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"mirrorNetworkUuid": "7d4ac8aafcd33306b21a0c40a6dec9cb"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"mirrorNetworkUuid":"7d4ac8aafcd33306b21a0c40a6dec9cb"}}' http://localhost:8080/zstack/v1/port-mirrors参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| mirrorNetworkUuid | String | body(包含在params结构中) | 镜像网络资源的UUID | 3.7.0 | |
| name (可选) | String | body(包含在params结构中) | 资源名称 | 3.7.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 3.7.0 | |
| stateEvent (可选) | String | body(包含在params结构中) | 流量镜像服务的状态 |
|
3.7.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 3.7.0 | ||
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 3.7.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.7.0 | |
| userTags (可选) | List | body | 用户标签 | 3.7.0 |
API返回
返回示例
{
"inventory": {
"uuid": "66818821906036338c8e8f7773b03263",
"name": "port mirror",
"state": "Enabled",
"mirrorNetworkUuid": "c1da6a9a815f3b17be87c19f9a43fe77",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventory | PortMirrorInventory | 详情参考inventory | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#inventory
#state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PortMirrorState | 3.7.0 | |
| Disabled | PortMirrorState | 3.7.0 |
#sessions
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| name | String | 资源名称 | 3.7.0 |
| description | String | 资源的详细描述 | 3.7.0 |
| internalId | Long | 3.7.0 | |
| srcEndPoint | String | 3.7.0 | |
| dstEndPoint | String | 3.7.0 | |
| portMirrorUuid | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
| status | SessionStatus | 详情参考status | 3.7.0 |
| type | SessionType | 详情参考type | 3.7.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | SessionStatus | 3.7.0 | |
| Active | SessionStatus | 3.7.0 | |
| Inactive | SessionStatus | 3.7.0 |
#type
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Ingress | SessionType | 3.7.0 | |
| Egress | SessionType | 3.7.0 | |
| Bidirection | SessionType | 3.7.0 |
SDK示例
Java
SDK
CreatePortMirrorAction action = new CreatePortMirrorAction();
action.mirrorNetworkUuid = "7d4ac8aafcd33306b21a0c40a6dec9cb";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreatePortMirrorAction.Result res = action.call();Python
SDK
CreatePortMirrorAction action = CreatePortMirrorAction()
action.mirrorNetworkUuid = "7d4ac8aafcd33306b21a0c40a6dec9cb"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreatePortMirrorAction.Result res = action.call()查询端口镜像(QueryPortMirror)
API请求
URLs
GET zstack/v1/port-mirrors
GET zstack/v1/portMirrors/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/port-mirrors?q=name=web&q=state=Enabledcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/portMirrors/5aa247a04fbd3b9e9331e78645e81729可查询字段
运行CLI命令行工具,输入QueryPortMirror并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "a1595ae4032236ed8cf8c0d8b4b498e7",
"name": "port mirror",
"state": "Enabled",
"mirrorNetworkUuid": "2616116e22ab3033adc12890947259a6",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventories | List | 详情参考inventories | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#inventories
#state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PortMirrorState | 3.7.0 | |
| Disabled | PortMirrorState | 3.7.0 |
#sessions
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| name | String | 资源名称 | 3.7.0 |
| description | String | 资源的详细描述 | 3.7.0 |
| internalId | Long | 3.7.0 | |
| srcEndPoint | String | 3.7.0 | |
| dstEndPoint | String | 3.7.0 | |
| portMirrorUuid | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
| status | SessionStatus | 详情参考status | 3.7.0 |
| type | SessionType | 详情参考type | 3.7.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | SessionStatus | 3.7.0 | |
| Active | SessionStatus | 3.7.0 | |
| Inactive | SessionStatus | 3.7.0 |
#type
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Ingress | SessionType | 3.7.0 | |
| Egress | SessionType | 3.7.0 | |
| Bidirection | SessionType | 3.7.0 |
SDK示例
Java
SDK
QueryPortMirrorAction action = new QueryPortMirrorAction();
action.conditions = asList("name=web","state=Enabled");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryPortMirrorAction.Result res = action.call();Python
SDK
QueryPortMirrorAction action = QueryPortMirrorAction()
action.conditions = ["name=web","state=Enabled"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryPortMirrorAction.Result res = action.call()更新端口镜像(UpdatePortMirror)
API请求
URLs
PUT zstack/v1/port-mirrors/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updatePortMirror": {
"name": "new pm",
"description": "for test update"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updatePortMirror":{"name":"new pm","description":"for test update"}}' http://localhost:8080/zstack/v1/port-mirrors/8b4a0c82ba273ceda3ef09daf0ecd90d/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.7.0 | |
| name (可选) | String | body(包含在updatePortMirror结构中) | 资源名称 | 3.7.0 | |
| description (可选) | String | body(包含在updatePortMirror结构中) | 资源的详细描述 | 3.7.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.7.0 | |
| userTags (可选) | List | body | 用户标签 | 3.7.0 |
API返回
返回示例
{
"inventory": {
"uuid": "2bafc0057bac3a6294a24a48c079c738",
"name": "port mirror",
"state": "Enabled",
"mirrorNetworkUuid": "aacd59f03a853463846361bb946097c8",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventory | PortMirrorInventory | 详情参考inventory | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#inventory
#state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PortMirrorState | 3.7.0 | |
| Disabled | PortMirrorState | 3.7.0 |
#sessions
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| name | String | 资源名称 | 3.7.0 |
| description | String | 资源的详细描述 | 3.7.0 |
| internalId | Long | 3.7.0 | |
| srcEndPoint | String | 3.7.0 | |
| dstEndPoint | String | 3.7.0 | |
| portMirrorUuid | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
| status | SessionStatus | 详情参考status | 3.7.0 |
| type | SessionType | 详情参考type | 3.7.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | SessionStatus | 3.7.0 | |
| Active | SessionStatus | 3.7.0 | |
| Inactive | SessionStatus | 3.7.0 |
#type
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Ingress | SessionType | 3.7.0 | |
| Egress | SessionType | 3.7.0 | |
| Bidirection | SessionType | 3.7.0 |
SDK示例
Java
SDK
UpdatePortMirrorAction action = new UpdatePortMirrorAction();
action.uuid = "8b4a0c82ba273ceda3ef09daf0ecd90d";
action.name = "new pm";
action.description = "for test update";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdatePortMirrorAction.Result res = action.call();Python
SDK
UpdatePortMirrorAction action = UpdatePortMirrorAction()
action.uuid = "8b4a0c82ba273ceda3ef09daf0ecd90d"
action.name = "new pm"
action.description = "for test update"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdatePortMirrorAction.Result res = action.call()删除端口镜像(DeletePortMirror)
API请求
URLs
DELETE zstack/v1/port-mirrors/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/port-mirrors/b4959c6b70c836508290dce51e9a1394参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.7.0 | |
| deleteMode (可选) | String | body | 3.7.0 | ||
| systemTags (可选) | List | body | 系统标签 | 3.7.0 | |
| userTags (可选) | List | body | 用户标签 | 3.7.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeletePortMirrorAction action = new DeletePortMirrorAction();
action.uuid = "b4959c6b70c836508290dce51e9a1394";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeletePortMirrorAction.Result res = action.call();Python
SDK
DeletePortMirrorAction action = DeletePortMirrorAction()
action.uuid = "b4959c6b70c836508290dce51e9a1394"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeletePortMirrorAction.Result res = action.call()创建端口镜像会话(CreatePortMirrorSession)
API请求
URLs
POST zstack/v1/port-mirrors/sessionsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"portMirrorUuid": "d848a38e94c53c9dafbb422f5e534237",
"name": "session",
"type": "Ingress",
"srcEndPoint": "404d456d595a3fcf8e758dc864a47c2e",
"dstEndPoint": "5ffb697b680d3d76bf3c50f344d5f742"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"portMirrorUuid":"d848a38e94c53c9dafbb422f5e534237","name":"session","type":"Ingress","srcEndPoint":"404d456d595a3fcf8e758dc864a47c2e","dstEndPoint":"5ffb697b680d3d76bf3c50f344d5f742"}}' http://localhost:8080/zstack/v1/port-mirrors/sessions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| portMirrorUuid | String | body(包含在params结构中) | 端口镜像服务的UUID | 3.7.0 | |
| name | String | body(包含在params结构中) | 资源名称 | 3.7.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 3.7.0 | |
| type | String | body(包含在params结构中) | 会话资源的类型 |
|
3.7.0 |
| srcEndPoint | String | body(包含在params结构中) | 镜像会话源端口 | 3.7.0 | |
| dstEndPoint | String | body(包含在params结构中) | 镜像会话目的端口 | 3.7.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 3.7.0 | ||
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 3.7.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.7.0 | |
| userTags (可选) | List | body | 用户标签 | 3.7.0 |
API返回
返回示例
{
"inventory": {
"uuid": "6f8ad47ea3a336aca4d32e53e3b6d731",
"name": "port mirror",
"srcEndPoint": "f9dbfde2c5bd398a8691b9f4be4a6a79",
"type": "Ingress",
"dstEndPoint": "76ea062350ac3a2aacf22545954185ed",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventory | PortMirrorSessionInventory | 详情参考inventory | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| name | String | 资源名称 | 3.7.0 |
| description | String | 资源的详细描述 | 3.7.0 |
| internalId | Long | 3.7.0 | |
| srcEndPoint | String | 3.7.0 | |
| dstEndPoint | String | 3.7.0 | |
| portMirrorUuid | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
| status | SessionStatus | 详情参考status | 3.7.0 |
| type | SessionType | 详情参考type | 3.7.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | SessionStatus | 3.7.0 | |
| Active | SessionStatus | 3.7.0 | |
| Inactive | SessionStatus | 3.7.0 |
#type
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Ingress | SessionType | 3.7.0 | |
| Egress | SessionType | 3.7.0 | |
| Bidirection | SessionType | 3.7.0 |
SDK示例
Java
SDK
CreatePortMirrorSessionAction action = new CreatePortMirrorSessionAction();
action.portMirrorUuid = "d848a38e94c53c9dafbb422f5e534237";
action.name = "session";
action.type = "Ingress";
action.srcEndPoint = "404d456d595a3fcf8e758dc864a47c2e";
action.dstEndPoint = "5ffb697b680d3d76bf3c50f344d5f742";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreatePortMirrorSessionAction.Result res = action.call();Python
SDK
CreatePortMirrorSessionAction action = CreatePortMirrorSessionAction()
action.portMirrorUuid = "d848a38e94c53c9dafbb422f5e534237"
action.name = "session"
action.type = "Ingress"
action.srcEndPoint = "404d456d595a3fcf8e758dc864a47c2e"
action.dstEndPoint = "5ffb697b680d3d76bf3c50f344d5f742"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreatePortMirrorSessionAction.Result res = action.call()查询端口镜像会话(QueryPortMirrorSession)
API请求
URLs
GET zstack/v1/port-mirrors/sessions
GET zstack/v1/port-mirrors/sessions/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/port-mirrors/sessions?q=name=session&q=direction=Egress&q=srcEndPoint=123456xxx可查询字段
运行CLI命令行工具,输入QueryPortMirrorSession并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "aab3ce5ac3de3d2b982bb376fe8909af",
"name": "port mirror session",
"status": "Active",
"srcEndPoint": "c568cf147cff3cac83f855f622986db8",
"type": "Egress",
"dstEndPoint": "f5b953f2b56d316894daf4eb2d5a9627",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventories | List | 详情参考inventories | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| name | String | 资源名称 | 3.7.0 |
| description | String | 资源的详细描述 | 3.7.0 |
| internalId | Long | 3.7.0 | |
| srcEndPoint | String | 3.7.0 | |
| dstEndPoint | String | 3.7.0 | |
| portMirrorUuid | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
| status | SessionStatus | 详情参考status | 3.7.0 |
| type | SessionType | 详情参考type | 3.7.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | SessionStatus | 3.7.0 | |
| Active | SessionStatus | 3.7.0 | |
| Inactive | SessionStatus | 3.7.0 |
#type
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Ingress | SessionType | 3.7.0 | |
| Egress | SessionType | 3.7.0 | |
| Bidirection | SessionType | 3.7.0 |
SDK示例
Java
SDK
QueryPortMirrorSessionAction action = new QueryPortMirrorSessionAction();
action.conditions = asList("name=session","direction=Egress","srcEndPoint=123456xxx");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryPortMirrorSessionAction.Result res = action.call();Python
SDK
QueryPortMirrorSessionAction action = QueryPortMirrorSessionAction()
action.conditions = ["name=session","direction=Egress","srcEndPoint=123456xxx"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryPortMirrorSessionAction.Result res = action.call()更新端口镜像服务状态(ChangePortMirrorState)
API请求
URLs
PUT zstack/v1/port-mirrors/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changePortMirrorState": {
"stateEvent": "enable"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changePortMirrorState":{"stateEvent":"enable"}}' http://localhost:8080/zstack/v1/port-mirrors/3b3454b75a593d718ba24cc7d677cacd/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.7.0 | |
| stateEvent | String | body(包含在changePortMirrorState结构中) | 状态 |
|
3.7.0 |
| systemTags (可选) | List | body | 系统标签 | 3.7.0 | |
| userTags (可选) | List | body | 用户标签 | 3.7.0 |
API返回
返回示例
{
"inventory": {
"uuid": "8752424e2b1e398a9d28fbb076cff81f",
"name": "port mirror",
"state": "Enabled",
"mirrorNetworkUuid": "ad51cb6be5d83cb4bfeb8eb95b2e6437",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventory | PortMirrorInventory | 详情参考inventory | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#inventory
#state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Enabled | PortMirrorState | 3.7.0 | |
| Disabled | PortMirrorState | 3.7.0 |
#sessions
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| name | String | 资源名称 | 3.7.0 |
| description | String | 资源的详细描述 | 3.7.0 |
| internalId | Long | 3.7.0 | |
| srcEndPoint | String | 3.7.0 | |
| dstEndPoint | String | 3.7.0 | |
| portMirrorUuid | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
| status | SessionStatus | 详情参考status | 3.7.0 |
| type | SessionType | 详情参考type | 3.7.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Created | SessionStatus | 3.7.0 | |
| Active | SessionStatus | 3.7.0 | |
| Inactive | SessionStatus | 3.7.0 |
#type
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Ingress | SessionType | 3.7.0 | |
| Egress | SessionType | 3.7.0 | |
| Bidirection | SessionType | 3.7.0 |
SDK示例
Java
SDK
ChangePortMirrorStateAction action = new ChangePortMirrorStateAction();
action.uuid = "3b3454b75a593d718ba24cc7d677cacd";
action.stateEvent = "enable";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangePortMirrorStateAction.Result res = action.call();Python
SDK
ChangePortMirrorStateAction action = ChangePortMirrorStateAction()
action.uuid = "3b3454b75a593d718ba24cc7d677cacd"
action.stateEvent = "enable"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangePortMirrorStateAction.Result res = action.call()删除端口镜像会话(DeletePortMirrorSession)
API请求
URLs
DELETE zstack/v1/port-mirrors/sessons/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/port-mirrors/sessons/3c1f4de89ffd3f83932bbd95321dbf20参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.7.0 | |
| deleteMode (可选) | String | body | 3.7.0 | ||
| systemTags (可选) | List | body | 系统标签 | 3.7.0 | |
| userTags (可选) | List | body | 用户标签 | 3.7.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeletePortMirrorSessionAction action = new DeletePortMirrorSessionAction();
action.uuid = "3c1f4de89ffd3f83932bbd95321dbf20";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeletePortMirrorSessionAction.Result res = action.call();Python
SDK
DeletePortMirrorSessionAction action = DeletePortMirrorSessionAction()
action.uuid = "3c1f4de89ffd3f83932bbd95321dbf20"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeletePortMirrorSessionAction.Result res = action.call()获取系统中可以使用端口镜像服务的网卡(GetCandidateVmNicsForPortMirror)
API请求
URLs
GET zstack/v1/port-mirrors/{portMirrorUuid}/vm-instances/candidate-nics/{type}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/port-mirrors/35f9487b28bf3ef3995bdaa9b0c7e14c/vm-instances/candidate-nics/source?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| portMirrorUuid | String | url | 端口镜像服务的uuid | 3.7.0 | |
| type | String | url | 网卡类型 |
|
3.7.0 |
| systemTags (可选) | List | query | 系统标签 | 3.7.0 | |
| userTags (可选) | List | query | 用户标签 | 3.7.0 |
API返回
返回示例
{
"inventories": [
{
"uuid": "7b606cc2eaf03d59be9ccf7eb8e64146",
"vmInstanceUuid": "3426dad7e3b63a8db7cf0f2679b25c3d",
"usedIpUuid": "6e85b642844e3afe9dfca1a159d982f2",
"l3NetworkUuid": "dc154c4096f73e4f9ebf14bbdd577927",
"ip": "192.168.1.10",
"mac": "00:0c:29:bd:99:fc",
"hypervisorType": "KVM",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"deviceId": 0.0,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventories | List | 详情参考inventories | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| vmInstanceUuid | String | 云主机UUID | 3.7.0 |
| l3NetworkUuid | String | 三层网络UUID | 3.7.0 |
| ip | String | 3.7.0 | |
| mac | String | 3.7.0 | |
| hypervisorType | String | 3.7.0 | |
| netmask | String | 3.7.0 | |
| gateway | String | 3.7.0 | |
| metaData | String | 3.7.0 | |
| ipVersion | Integer | 3.7.0 | |
| deviceId | Integer | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
| usedIps | List | 详情参考usedIps | 3.7.0 |
#usedIps
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| ipRangeUuid | String | IP段UUID | 3.7.0 |
| l3NetworkUuid | String | 三层网络UUID | 3.7.0 |
| ipVersion | Integer | 3.7.0 | |
| ip | String | 3.7.0 | |
| netmask | String | 3.7.0 | |
| gateway | String | 3.7.0 | |
| usedFor | String | 3.7.0 | |
| ipInLong | long | 3.7.0 | |
| vmNicUuid | String | 云主机网卡UUID | 3.7.0 |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
SDK示例
Java
SDK
GetCandidateVmNicsForPortMirrorAction action = new GetCandidateVmNicsForPortMirrorAction();
action.portMirrorUuid = "35f9487b28bf3ef3995bdaa9b0c7e14c";
action.type = "source";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateVmNicsForPortMirrorAction.Result res = action.call();Python
SDK
GetCandidateVmNicsForPortMirrorAction action = GetCandidateVmNicsForPortMirrorAction()
action.portMirrorUuid = "35f9487b28bf3ef3995bdaa9b0c7e14c"
action.type = "source"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetCandidateVmNicsForPortMirrorAction.Result res = action.call()查询端口镜像网络分配的IP(QueryPortMirrorNetworkUsedIp)
API请求
URLs
GET zstack/v1/port-mirrors/networks/usedIps
GET zstack/v1/port-mirrors/networks/usedIps/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/port-mirrors/networks/usedIps?q=curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/port-mirrors/networks/usedIps/bfe3d806d9cc3e649a3d80e548409c89可查询字段
运行CLI命令行工具,输入QueryPortMirrorNetworkUsedIp并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"l3NetworkUuid": "207f29af9d033376ba8f7c2a4ae243c4",
"hostUuid": "c7a6c1c107e2368e8cec88481e29967b",
"description": "for test",
"clusterUuid": "1a4911d67929346b949853fd92d5a0bc",
"uuid": "fe8301ee9bf93c5db2e2240644619c56"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventories | List | 详情参考inventories | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 三层网络UUID | 3.7.0 |
| hostUuid | String | 物理机UUID | 3.7.0 |
| description | String | 资源的详细描述 | 3.7.0 |
| clusterUuid | String | 集群UUID | 3.7.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| usedIpInventory | UsedIpInventory | 详情参考usedIpInventory | 3.7.0 |
#usedIpInventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| ipRangeUuid | String | IP段UUID | 3.7.0 |
| l3NetworkUuid | String | 三层网络UUID | 3.7.0 |
| ipVersion | Integer | 3.7.0 | |
| ip | String | 3.7.0 | |
| netmask | String | 3.7.0 | |
| gateway | String | 3.7.0 | |
| usedFor | String | 3.7.0 | |
| ipInLong | long | 3.7.0 | |
| vmNicUuid | String | 云主机网卡UUID | 3.7.0 |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
SDK示例
Java
SDK
QueryPortMirrorNetworkUsedIpAction action = new QueryPortMirrorNetworkUsedIpAction();
action.conditions = asList("");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryPortMirrorNetworkUsedIpAction.Result res = action.call();Python
SDK
QueryPortMirrorNetworkUsedIpAction action = QueryPortMirrorNetworkUsedIpAction()
action.conditions = [""]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryPortMirrorNetworkUsedIpAction.Result res = action.call()