文档目录

路由资源相关接口

重连VPC路由器(ReconnectVirtualRouter)

API请求

URLs
PUT zstack/v1/vm-instances/appliances/virtual-routers/{vmInstanceUuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
"reconnectVirtualRouter": {},
"systemTags": [],
"userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth bd24a72b74a148e8b18ee2b2367534d6" \
-X PUT -d '{"reconnectVirtualRouter":{}}' \
http://localhost:8080/zstack/v1/vm-instances/appliances/virtual-routers/74f9bb00796c366a83a6201df9e26f43/actions
参数列表
名字 类型 位置 描述 可选值 起始版本
vmInstanceUuid String url 云主机UUID 0.6
systemTags (可选) List body 系统标签 0.6
userTags (可选) List body 用户标签 0.6

API返回

返回示例
{
"inventory": {
"managementNetworkUuid": "9a154450da784a418db5406a463d2235",
"name": "Test-Router",
"description": "this is a virtual router vm",
"clusterUuid": "9b359b8de95d4d97a19d53bf4193993a",
"imageUuid": "c7bbef849e5d47478ee1db445d55530b",
"instanceOfferingUuid": "5437f63807864c37b4d3042ee28f2680"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory ApplianceVmInventory 详情参考inventory 0.6
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventory
名字 类型 描述 起始版本
applianceVmType String 0.6
managementNetworkUuid String 0.6
defaultRouteL3NetworkUuid String 0.6
status String 0.6
agentPort Integer 0.6
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
zoneUuid String 区域UUID 0.6
clusterUuid String 集群UUID 0.6
imageUuid String 镜像UUID 0.6
hostUuid String 物理机UUID 0.6
lastHostUuid String 0.6
instanceOfferingUuid String 计算规格UUID 0.6
rootVolumeUuid String 根云盘UUID 0.6
platform String 0.6
defaultL3NetworkUuid String 0.6
type String 0.6
hypervisorType String 0.6
memorySize Long 0.6
cpuNum Integer 0.6
cpuSpeed Long 0.6
allocatorStrategy String 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
state String 0.6
vmNics List 详情参考vmNics 0.6
allVolumes List 详情参考allVolumes 0.6
#vmNics
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 0.6
vmInstanceUuid String 云主机UUID 0.6
l3NetworkUuid String 三层网络UUID 0.6
ip String 0.6
mac String 0.6
netmask String 0.6
gateway String 0.6
metaData String 0.6
deviceId Integer 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
#allVolumes
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
primaryStorageUuid String 主存储UUID 0.6
vmInstanceUuid String 云主机UUID 0.6
diskOfferingUuid String 云盘规格UUID 0.6
rootImageUuid String 0.6
installPath String 0.6
type String 0.6
format String 0.6
size Long 0.6
actualSize Long 0.6
deviceId Integer 0.6
state String 0.6
status String 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
isShareable Boolean 0.6

SDK示例

Java SDK
ReconnectVirtualRouterAction action = new ReconnectVirtualRouterAction();
action.vmInstanceUuid = "3b20e87b87b442518efff8744c2cfde8";
action.sessionId = "ce03736cdddf4c49bce35d8e55e189c7";
ReconnectVirtualRouterAction.Result res = action.call();
Python SDK
ReconnectVirtualRouterAction action = ReconnectVirtualRouterAction()
action.vmInstanceUuid = "ae937aa909594b1bb2e36359cd7dbc5b"
action.sessionId = "4434d7282a7d4940bb0695c0d252bfae"
ReconnectVirtualRouterAction.Result res = action.call()

查询VPC路由器 (QueryVirtualRouterVm)

API请求

URLs
GET zstack/v1/vm-instances/appliances/virtual-routers
GET zstack/v1/vm-instances/appliances/virtual-routers/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 823cd67ecc7c4e6fa25efbc7f9b5130b" \
-X GET http://localhost:8080/zstack/v1/vm-instances/appliances/virtual-routers?q=name=Test-Router
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 5b8a868c89ef434086caeb6ade4613bf" \
-X GET http://localhost:8080/zstack/v1/vm-instances/appliances/virtual-routers/a1f8c5edc13743d79ec8c9d912d1c280

可查询字段

运行CLI命令行工具,输入QueryVirtualRouterVm并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
"inventories": [
    {
"uuid": "eb4c132875424e19aa200c5685f7d9ca",
"name": "Test-VM",
"description": "Appliance VM",
"zoneUuid": "453595b58b1f407aa8b551c279738191",
"clusterUuid": "bc24a488a7c740ef828839d6624b15a2",
"imageUuid": "729f3c664fb14ffa8886cbf5d14bec47",
"hostUuid": "bdd8a04c22b6482287a2ac071319f59d",
"lastHostUuid": "bc6337a5a73142c8afbc4108f69595cf",
"instanceOfferingUuid": "5beedb45ba9547a4a154c747c69c38bd",
"rootVolumeUuid": "b07d68c5879b49a680f6fc375d06603f",
"platform": "Linux",
"defaultL3NetworkUuid": "dfd914d7f33a434a880fd0cd29db1ad1",
"type": "UserVm",
"hypervisorType": "KVM",
"memorySize": 8.589934592E9,
"cpuNum": 1.0,
"allocatorStrategy": "LastHostPreferredAllocatorStrategy",
"createDate": "Jun 7, 2017 9:21:17 PM",
"lastOpDate": "Jun 7, 2017 9:21:17 PM",
"state": "Running",
"vmNics": [
        {
"uuid": "ba1a965bee39412c962735987da7722a",
"vmInstanceUuid": "eb4c132875424e19aa200c5685f7d9ca",
"usedIpUuid": "7250d89102a44251aa49a5bcf093d484",
"l3NetworkUuid": "dfd914d7f33a434a880fd0cd29db1ad1",
"ip": "192.168.1.10",
"mac": "00:0c:29:bd:99:fc",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"deviceId": 0.0,
"createDate": "Jun 7, 2017 9:21:17 PM",
"lastOpDate": "Jun 7, 2017 9:21:17 PM"
        }
      ],
"allVolumes": [
        {
"uuid": "b07d68c5879b49a680f6fc375d06603f",
"name": "Root-Volume-For-VM-eb4c132875424e19aa200c5685f7d9ca",
"primaryStorageUuid": "f82bd3273e1a42a7bc53f1d098d07c63",
"vmInstanceUuid": "eb4c132875424e19aa200c5685f7d9ca",
"diskOfferingUuid": "71a6bbc236974c188ad258875a0cc837",
"rootImageUuid": "729f3c664fb14ffa8886cbf5d14bec47",
"installPath": "/Cloud_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-b07d68c5879b49a680f6fc375d06603f/b07d68c5879b49a680f6fc375d06603f.qcow2",
"type": "Root",
"format": "qcow2",
"size": 1.073741824E11,
"actualSize": 2.147483648E10,
"deviceId": 0.0,
"state": "Enabled",
"status": "Ready",
"createDate": "Jun 7, 2017 9:21:17 PM",
"lastOpDate": "Jun 7, 2017 9:21:17 PM"
        }
      ]
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventories List 详情参考inventories 0.6
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventories
名字 类型 描述 起始版本
applianceVmType String 0.6
managementNetworkUuid String 0.6
defaultRouteL3NetworkUuid String 0.6
status String 0.6
agentPort Integer 0.6
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
zoneUuid String 区域UUID 0.6
clusterUuid String 集群UUID 0.6
imageUuid String 镜像UUID 0.6
hostUuid String 物理机UUID 0.6
lastHostUuid String 0.6
instanceOfferingUuid String 计算规格UUID 0.6
rootVolumeUuid String 根云盘UUID 0.6
platform String 0.6
defaultL3NetworkUuid String 0.6
type String 0.6
hypervisorType String 0.6
memorySize Long 0.6
cpuNum Integer 0.6
cpuSpeed Long 0.6
allocatorStrategy String 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
state String 0.6
vmNics List 详情参考vmNics 0.6
allVolumes List 详情参考allVolumes 0.6
#vmNics
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 0.6
vmInstanceUuid String 云主机UUID 0.6
l3NetworkUuid String 三层网络UUID 0.6
ip String 0.6
mac String 0.6
netmask String 0.6
gateway String 0.6
metaData String 0.6
deviceId Integer 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
#allVolumes
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
primaryStorageUuid String 主存储UUID 0.6
vmInstanceUuid String 云主机UUID 0.6
diskOfferingUuid String 云盘规格UUID 0.6
rootImageUuid String 0.6
installPath String 0.6
type String 0.6
format String 0.6
size Long 0.6
actualSize Long 0.6
deviceId Integer 0.6
state String 0.6
status String 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
isShareable Boolean 0.6

SDK示例

Java SDK
QueryVirtualRouterVmAction action = new QueryVirtualRouterVmAction();
action.conditions = asList("name=Test-Router");
action.sessionId = "f25578538ecf4a55b98d51e5b8788adb";
QueryVirtualRouterVmAction.Result res = action.call();
Python SDK
QueryVirtualRouterVmAction action = QueryVirtualRouterVmAction()
action.conditions = ["name=Test-Router"]
action.sessionId = "d1cd40ad61f149689bb358c997377d4a"
QueryVirtualRouterVmAction.Result res = action.call()

查询服务云主机(QueryApplianceVm)

API请求

URLs
GET zstack/v1/vm-instances/appliances
GET zstack/v1/vm-instances/appliances/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth fee14fed21eb4535bcd2fd6a11fa9dcd" \
-X GET http://localhost:8080/zstack/v1/vm-instances/appliances?q=uuid=59b2f0ff7d3e49faab66fdb4bdfee249
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth f11e69b5788b458e8149425132902365" \
-X GET http://localhost:8080/zstack/v1/vm-instances/appliances/5eaf0998a54345e5bb25bfdad34b2b31

可查询字段

运行CLI命令行工具,输入QueryApplianceVm并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
"inventories": [
    {
"uuid": "f71a399a79794ab8a41e26a601ac7387",
"name": "Test-VM",
"description": "Appliance VM",
"zoneUuid": "4cf173a14e67440c9349c1e236a56c37",
"clusterUuid": "07412e72791c474fa240b75da1b210c5",
"imageUuid": "7bc33ed9760f424a9b9ff21fc0bbb48e",
"hostUuid": "0cbed62c52bc407e994c966f246363bd",
"lastHostUuid": "08921382c4f44705bae7cba6414c811d",
"instanceOfferingUuid": "e056c84995cb4d68ac78dbcc30af3f4f",
"rootVolumeUuid": "2557a6f997ee457fad526e179a76e8c0",
"platform": "Linux",
"defaultL3NetworkUuid": "748fc87b7fcb456cbea47432e52b377d",
"type": "UserVm",
"hypervisorType": "KVM",
"memorySize": 8.589934592E9,
"cpuNum": 1.0,
"allocatorStrategy": "LastHostPreferredAllocatorStrategy",
"createDate": "Jun 7, 2017 9:20:39 PM",
"lastOpDate": "Jun 7, 2017 9:20:39 PM",
"state": "Running",
"vmNics": [
        {
"uuid": "d2dfc67ddf28431bb64cc90fe0e113f6",
"vmInstanceUuid": "f71a399a79794ab8a41e26a601ac7387",
"usedIpUuid": "f654374b78534f5fb9b75873084932a3",
"l3NetworkUuid": "748fc87b7fcb456cbea47432e52b377d",
"ip": "192.168.1.10",
"mac": "00:0c:29:bd:99:fc",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"deviceId": 0.0,
"createDate": "Jun 7, 2017 9:20:39 PM",
"lastOpDate": "Jun 7, 2017 9:20:39 PM"
        }
      ],
"allVolumes": [
        {
"uuid": "2557a6f997ee457fad526e179a76e8c0",
"name": "Root-Volume-For-VM-f71a399a79794ab8a41e26a601ac7387",
"primaryStorageUuid": "d00057b39df9494bbaf00d047dd04825",
"vmInstanceUuid": "f71a399a79794ab8a41e26a601ac7387",
"diskOfferingUuid": "20346d1b6643492fbc4da8d6baf4b6d2",
"rootImageUuid": "7bc33ed9760f424a9b9ff21fc0bbb48e",
"installPath": "/Cloud_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-2557a6f997ee457fad526e179a76e8c0/2557a6f997ee457fad526e179a76e8c0.qcow2",
"type": "Root",
"format": "qcow2",
"size": 1.073741824E11,
"actualSize": 2.147483648E10,
"deviceId": 0.0,
"state": "Enabled",
"status": "Ready",
"createDate": "Jun 7, 2017 9:20:39 PM",
"lastOpDate": "Jun 7, 2017 9:20:39 PM"
        }
      ]
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventories List 详情参考inventories 0.6
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventories
名字 类型 描述 起始版本
applianceVmType String 0.6
managementNetworkUuid String 0.6
defaultRouteL3NetworkUuid String 0.6
status String 0.6
agentPort Integer 0.6
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
zoneUuid String 区域UUID 0.6
clusterUuid String 集群UUID 0.6
imageUuid String 镜像UUID 0.6
hostUuid String 物理机UUID 0.6
lastHostUuid String 0.6
instanceOfferingUuid String 计算规格UUID 0.6
rootVolumeUuid String 根云盘UUID 0.6
platform String 0.6
defaultL3NetworkUuid String 0.6
type String 0.6
hypervisorType String 0.6
memorySize Long 0.6
cpuNum Integer 0.6
cpuSpeed Long 0.6
allocatorStrategy String 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
state String 0.6
vmNics List 详情参考vmNics 0.6
allVolumes List 详情参考allVolumes 0.6
#vmNics
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 0.6
vmInstanceUuid String 云主机UUID 0.6
l3NetworkUuid String 三层网络UUID 0.6
ip String 0.6
mac String 0.6
netmask String 0.6
gateway String 0.6
metaData String 0.6
deviceId Integer 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
#allVolumes
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
primaryStorageUuid String 主存储UUID 0.6
vmInstanceUuid String 云主机UUID 0.6
diskOfferingUuid String 云盘规格UUID 0.6
rootImageUuid String 0.6
installPath String 0.6
type String 0.6
format String 0.6
size Long 0.6
actualSize Long 0.6
deviceId Integer 0.6
state String 0.6
status String 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
isShareable Boolean 0.6

SDK示例

Java SDK
QueryApplianceVmAction action = new QueryApplianceVmAction();
action.conditions = asList("uuid=691c9a2eb7964cdd8cfad52a4acece7b");
action.sessionId = "9fec03d462184d6b9a87d314c00597ed";
QueryApplianceVmAction.Result res = action.call();
Python SDK
QueryApplianceVmAction action = QueryApplianceVmAction()
action.conditions = ["uuid=0c17514849ac49809d6e6047fc4b4978"]
action.sessionId = "485840ed54bc40cc9e47feabd0475ae7"
QueryApplianceVmAction.Result res = action.call()

创建路由器规格(CreateVirtualRouterOffering)

API请求

URLs
POST zstack/v1/instance-offerings/virtual-routers
Headers
Authorization: OAuth the-session-uuid
Body
{
"params": {
"zoneUuid": "b2826f6c4a5b433b87916e2240132ffa",
"managementNetworkUuid": "2f8e7e8636db4313b735edddc488a961",
"imageUuid": "bc78c126c6a94ee3aec0c840b50730a7",
"publicNetworkUuid": "95c8cc36b34e4ad89d0eb9b0b6ee02e6",
"isDefault": true,
"name": "VirtualRouter-Offering",
"cpuNum": 2.0,
"memorySize": 1024.0,
"sortKey": 0.0,
"type": "VirtualRouter"
  },
"systemTags": [],
"userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth bca83008f4154b488a8167f021144e4d" \
-X POST -d '{"params":{"zoneUuid":"a0f488a96504388cae48c6c489c5f368","managementNetworkUuid":"3f5412e1ad0b3021bbdb77503fc7de86","imageUuid":"23743ebd52213235a11e21245100bd57","publicNetworkUuid":"1a24d621f66432eb845b3835697538ed","isDefault":true,"name":"VirtualRouter-Offering","cpuNum":2.0,"memorySize":1024.0,"sortKey":0.0,"type":"VirtualRouter"}}' \
http://localhost:8080/zstack/v1/instance-offerings/virtual-routers
参数列表
名字 类型 位置 描述 可选值 起始版本
zoneUuid String body(包含在params结构中) 区域UUID 0.6
managementNetworkUuid String body(包含在params结构中) 管理L3网络UUID 0.6
imageUuid String body(包含在params结构中) 镜像UUID 0.6
publicNetworkUuid (可选) String body(包含在params结构中) 公有L3网络UUID 0.6
isDefault (可选) Boolean body(包含在params结构中) 默认 0.6
name String body(包含在params结构中) 资源名称 0.6
description (可选) String body(包含在params结构中) 资源的详细描述 0.6
cpuNum int body(包含在params结构中) CPU数量 0.6
memorySize long body(包含在params结构中) 内存大小 0.6
allocatorStrategy (可选) String body(包含在params结构中) 分配策略
  • DefaultHostAllocatorStrategy
  • LastHostPreferredAllocatorStrategy
  • LeastVmPreferredHostAllocatorStrategy
  • MinimumCPUUsageHostAllocatorStrategy
  • MinimumMemoryUsageHostAllocatorStrategy
  • MaxInstancePerHostHostAllocatorStrategy
0.6
sortKey (可选) int body(包含在params结构中) 排序主键 0.6
type (可选) String body(包含在params结构中) 类型 0.6
resourceUuid (可选) String body(包含在params结构中) 资源UUID 0.6
systemTags (可选) List body 系统标签 0.6
userTags (可选) List body 用户标签 0.6

API返回

返回示例
{
"inventory": {
"uuid": "db5bb944a9ef48eda9ff68d3eaedefed",
"name": "instanceOffering1",
"cpuNum": 2.0,
"cpuSpeed": 1.0,
"type": "UserVm",
"allocatorStrategy": "Mevoco",
"createDate": "Jun 7, 2017 9:20:13 PM",
"lastOpDate": "Jun 7, 2017 9:20:13 PM",
"state": "Enabled"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory InstanceOfferingInventory 详情参考inventory 0.6
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
cpuNum Integer CPU数量 0.6
cpuSpeed Integer CPU速度 0.6
memorySize Long 内存大小 0.6
type String 类型 0.6
allocatorStrategy String 分配策略 0.6
sortKey Integer 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
state String 状态(启用,禁用) 0.6

SDK示例

Java SDK
CreateVirtualRouterOfferingAction action = new CreateVirtualRouterOfferingAction();
action.zoneUuid = "389c6a48c332450ea280933b34e61ac4";
action.managementNetworkUuid = "381c2166c0454d95aed829715ae294b8";
action.imageUuid = "a4da1399797145bc87e36b424e5336af";
action.publicNetworkUuid = "5bf6caac74304a489eda76ae64624f6b";
action.isDefault = true;
action.name = "VirtualRouter-Offering";
action.cpuNum = 2.0;
action.memorySize = 1024.0;
action.sortKey = 0.0;
action.type = "VirtualRouter";
action.sessionId = "b811bf42d0b541ea993787b1fa80e724";
CreateVirtualRouterOfferingAction.Result res = action.call();
Python SDK
CreateVirtualRouterOfferingAction action = CreateVirtualRouterOfferingAction()
action.zoneUuid = "d115bed650ad45128aff5216c9f72d23"
action.managementNetworkUuid = "1b4f915b327d488db04c517b767e2731"
action.imageUuid = "737992cde79646ce915681b74e4c4de7"
action.publicNetworkUuid = "6af154a9cd274134ac44d2d889474158"
action.isDefault = true
action.name = "VirtualRouter-Offering"
action.cpuNum = 2.0
action.memorySize = 1024.0
action.sortKey = 0.0
action.type = "VirtualRouter"
action.sessionId = "71db629e6f484b3187c48ecb1d65dcea"
CreateVirtualRouterOfferingAction.Result res = action.call()

查询路由器规格(QueryVirtualRouterOffering)

API请求

URLs
GET zstack/v1/instance-offerings/virtual-routers
GET zstack/v1/instance-offerings/virtual-routers/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 94af029a0bed40d68dbabeff17f22add" \
-X GET http://localhost:8080/zstack/v1/instance-offerings/virtual-routers
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth db0361e95b29493db9bc03cd35db6129" \
-X GET http://localhost:8080/zstack/v1/instance-offerings/virtual-routers/e422506307254250b817c4f7aa70f277

可查询字段

运行CLI命令行工具,输入QueryVirtualRouterOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
"inventories": [
    {
"managementNetworkUuid": "6d5e54344898416c9a20a104341c82d5",
"publicNetworkUuid": "c6a23a0ed6ad4337a35d8a946694f8ea",
"zoneUuid": "a12ffae2039847a8b9046478ad03fecd",
"isDefault": true,
"imageUuid": "ca56a16b15bb47c0a26055e28d1e621f",
"name": "VirtualRouter-Offering",
"cpuNum": 2.0,
"cpuSpeed": 1.0,
"memorySize": 1024.0,
"type": "VirtualRouter"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventories List 详情参考inventories 0.6
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventories
名字 类型 描述 起始版本
managementNetworkUuid String 0.6
publicNetworkUuid String 0.6
zoneUuid String 区域UUID 0.6
isDefault Boolean 0.6
imageUuid String 镜像UUID 0.6
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
cpuNum Integer 0.6
cpuSpeed Integer 0.6
memorySize Long 0.6
type String 0.6
allocatorStrategy String 0.6
sortKey Integer 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
state String 0.6

SDK示例

Java SDK
QueryVirtualRouterOfferingAction action = new QueryVirtualRouterOfferingAction();
action.conditions = asList();
action.sessionId = "8779bc03a81d463bbebee36eedcc8197";
QueryVirtualRouterOfferingAction.Result res = action.call();
Python SDK
QueryVirtualRouterOfferingAction action = QueryVirtualRouterOfferingAction()
action.conditions = []
action.sessionId = "ec9a74a6c42241fb95575a9ba79c6fa6"
QueryVirtualRouterOfferingAction.Result res = action.call()

更新路由器规格(UpdateVirtualRouterOffering)

API请求

URLs
PUT zstack/v1/instance-offerings/virtual-routers/{uuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "updateVirtualRouterOffering": {
    "isDefault": false
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateVirtualRouterOffering":{"isDefault":false}}' \
http://localhost:8080/zstack/v1/instance-offerings/virtual-routers/46a68145223e3c4fb25b5de2b12e43c2/actions
参数列表
名字 类型 位置 描述 可选值 起始版本
isDefault (可选) Boolean body(包含在updateVirtualRouterOffering结构中) 默认 0.6
imageUuid (可选) String body(包含在updateVirtualRouterOffering结构中) 镜像UUID 0.6
uuid String url 资源的UUID,唯一标示该资源 0.6
name (可选) String body(包含在updateVirtualRouterOffering结构中) 资源名称 0.6
description (可选) String body(包含在updateVirtualRouterOffering结构中) 资源的详细描述 0.6
systemTags (可选) List body 系统标签 0.6
userTags (可选) List body 用户标签 0.6
allocatorStrategy (可选) String body(包含在updateVirtualRouterOffering结构中)
  • DefaultHostAllocatorStrategy
  • LastHostPreferredAllocatorStrategy
  • LeastVmPreferredHostAllocatorStrategy
  • MinimumCPUUsageHostAllocatorStrategy
  • MinimumMemoryUsageHostAllocatorStrategy
  • MaxInstancePerHostHostAllocatorStrategy
2.3

API返回

返回示例
{
  "inventory": {
    "uuid": "99395ef3a9083f7ba2d64201d6afc6b0",
    "name": "instanceOffering1",
    "cpuNum": 2.0,
    "cpuSpeed": 1.0,
    "type": "UserVm",
    "allocatorStrategy": "Mevoco",
    "createDate": "Nov 14, 2017 10:20:57 PM",
    "lastOpDate": "Nov 14, 2017 10:20:57 PM",
    "state": "Enabled"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory InstanceOfferingInventory 详情参考inventory 0.6
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 0.6
name String 资源名称 0.6
description String 资源的详细描述 0.6
cpuNum Integer CPU数量 0.6
cpuSpeed Integer CPU速度 0.6
memorySize Long 内存大小 0.6
type String 类型 0.6
allocatorStrategy String 分配策略 0.6
sortKey Integer 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6
state String 状态(启用,禁用) 0.6

SDK示例

Java SDK
UpdateVirtualRouterOfferingAction action = new UpdateVirtualRouterOfferingAction();
action.isDefault = false;
action.uuid = "46a68145223e3c4fb25b5de2b12e43c2";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateVirtualRouterOfferingAction.Result res = action.call();
Python SDK
UpdateVirtualRouterOfferingAction action = UpdateVirtualRouterOfferingAction()
action.isDefault = false
action.uuid = "46a68145223e3c4fb25b5de2b12e43c2"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateVirtualRouterOfferingAction.Result res = action.call()

获取路由器可加载外部网络(GetAttachablePublicL3ForVRouter)

获取路由可加载的公有网络和系统网络,将自动排除地址冲突的网络。

API请求

URLs
GET zstack/v1/vm-instances/appliances/virtual-routers/{vmInstanceUuid}/attachable-public-l3s
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 15085fa6b94f46c1bd4bb4f6b69aa092" \
-X GET http://localhost:8080/zstack/v1/vm-instances/appliances/virtual-routers/ac547d8a596c45ca864cd53235499c18/attachable-public-l3s
参数列表
名字 类型 位置 描述 可选值 起始版本
vmInstanceUuid String url 路由器的UUID 2.2
systemTags (可选) List query 2.2
userTags (可选) List query 2.2

API返回

返回示例
{
  "inventories": [
    {
      "uuid": "03108cd5c1c9427ea954fe35e8ae6811",
      "name": "test-pub-l3",
      "description": "test pub l3",
      "zoneUuid": "a18dc0e9dc054349af6adeda2efd17f0",
      "l2NetworkUuid": "e1791fb069554a69b05caf77d6d900a7",
      "system": true,
      "createDate": "Sep 29, 2017 2:41:24 PM",
      "lastOpDate": "Sep 29, 2017 2:41:24 PM",
      "ipRanges": [
        {
          "l3NetworkUuid": "3c26ee27f6e549b9974535ab1e04ad33",
          "name": "test ip range",
          "startIp": "100.64.0.10",
          "endIp": "100.64.0.100",
          "netmask": "255.255.255.0",
          "gateway": "100.64.0.1",
          "networkCidr": "100.64.0.0/24",
          "createDate": "Sep 29, 2017 2:41:24 PM",
          "lastOpDate": "Sep 29, 2017 2:41:24 PM"
        }
      ]
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.2
inventories List 详情参考inventories 2.2
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 2.2
description String 错误的概要描述 2.2
details String 错误的详细信息 2.2
elaboration String 保留字段,默认为null 2.2
opaque LinkedHashMap 保留字段,默认为null 2.2
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 2.2
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.2
name String 资源名称 2.2
description String 资源的详细描述 2.2
type String 2.2
zoneUuid String 区域UUID 2.2
l2NetworkUuid String 二层网络UUID 2.2
state String 2.2
dnsDomain String 2.2
system Boolean 2.2
category String 2.2
createDate Timestamp 创建时间 2.2
lastOpDate Timestamp 最后一次修改时间 2.2
dns List 2.2
ipRanges List 详情参考ipRanges 2.2
networkServices List 详情参考networkServices 2.2
hostRoute List 详情参考hostRoute 2.3
#ipRanges
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.2
l3NetworkUuid String 三层网络UUID 2.2
name String 资源名称 2.2
description String 资源的详细描述 2.2
startIp String 2.2
endIp String 2.2
netmask String 2.2
gateway String 2.2
networkCidr String 2.2
createDate Timestamp 创建时间 2.2
lastOpDate Timestamp 最后一次修改时间 2.2
#networkServices
名字 类型 描述 起始版本
l3NetworkUuid String 三层网络UUID 2.2
networkServiceProviderUuid String 网络服务提供模块UUID 2.2
networkServiceType String 2.2
#hostRoute
名字 类型 描述 起始版本
id Long 2.3
l3NetworkUuid String 三层网络UUID 2.3
prefix String 2.3
nexthop String 2.3
createDate Timestamp 创建时间 2.3
lastOpDate Timestamp 最后一次修改时间 2.3

SDK示例

Java SDK
GetAttachablePublicL3ForVRouterAction action = new GetAttachablePublicL3ForVRouterAction();
action.vmInstanceUuid = "851b21ed7425479daf3783b886f6ab35";
action.sessionId = "8f1a0a142f514a49849df351c40d6116";
GetAttachablePublicL3ForVRouterAction.Result res = action.call();
Python SDK
GetAttachablePublicL3ForVRouterAction action = GetAttachablePublicL3ForVRouterAction()
action.vmInstanceUuid = "f78e670c912447b68dcae9a6af79617c"
action.sessionId = "99e6b06b41ff4d16bb2c2b11e4e3a7bb"
GetAttachablePublicL3ForVRouterAction.Result res = action.call()

路由器路由表相关接口

创建路由表(CreateVRouterRouteTable)

API请求

URLs
POST zstack/v1/vrouter-route-tables
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "name": "Test-VRouterRouteTable",
    "description": "Test-VRouterRouteTable"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-VRouterRouteTable","description":"Test-VRouterRouteTable"}}' \
http://localhost:8080/zstack/v1/vrouter-route-tables
参数列表
名字 类型 位置 描述 可选值 起始版本
name String body(包含在params结构中) 资源名称 2.1
description (可选) String body(包含在params结构中) 资源的详细描述 2.1
resourceUuid (可选) String body(包含在params结构中) 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例
{
  "inventory": {
    "name": "test-route-table",
    "description": "Test route table",
    "attachedRouterRefs": [],
    "routeEntries": []
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventory VRouterRouteTableInventory 详情参考inventory 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 2.1
description String 错误的概要描述 2.1
details String 错误的详细信息 2.1
elaboration String 保留字段,默认为null 2.1
opaque LinkedHashMap 保留字段,默认为null 2.1
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 2.1
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 2.1
description String 资源的详细描述 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
attachedRouterRefs List 详情参考attachedRouterRefs 2.1
routeEntries List 详情参考routeEntries 2.1
#attachedRouterRefs
名字 类型 描述 起始版本
virtualRouterVmUuid String 2.1
routeTableUuid String 2.1
#routeEntries
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
description String 资源的详细描述 2.1
type String 类型
  • 允许用户添加"静态路由"、"黑洞路由"两种类型,系统会根据是否填下一跳自动判断类型
2.1
routeTableUuid String 路由表UUID 2.1
destination String 目标网络地址 2.1
target String 下一跳地址
  • 为一个路由器设备目前可以直接到达的IP地址,如果不可以直接到达,将会进行递归路由
2.1
distance Integer 路由优先级,在最小匹配下如果有多条路由规则匹配,优先级数字小的规则将会被匹配 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1

SDK示例

Java SDK
CreateVRouterRouteTableAction action = new CreateVRouterRouteTableAction();
action.name = "Test-VRouterRouteTable";
action.description = "Test-VRouterRouteTable";
action.sessionId = "36ae8b4476774bbd819b694d466f5351";
CreateVRouterRouteTableAction.Result res = action.call();
Python SDK
CreateVRouterRouteTableAction action = CreateVRouterRouteTableAction()
action.name = "Test-VRouterRouteTable"
action.description = "Test-VRouterRouteTable"
action.sessionId = "c68d30a1ccc9487381ea5ec872cfcced"
CreateVRouterRouteTableAction.Result res = action.call()

删除路由表(DeleteVRouterRouteTable)

API请求

URLs
DELETE zstack/v1/vrouter-route-tables/{uuid}?deleteMode={deleteMode}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth c92c3c7cf7c64dac9e783ab3414e7901" \
-X DELETE http://localhost:8080/zstack/v1/vrouter-route-tables/865cd01ad01f4c46b0a63163eb13e20b?deleteMode=Permissive
参数列表
名字 类型 位置 描述 可选值 起始版本
uuid String url 资源的UUID,唯一标示该资源 2.1
deleteMode (可选) String url 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

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
DeleteVRouterRouteTableAction action = new DeleteVRouterRouteTableAction();
action.uuid = "fb0b9186685544bcb5af032b1426736a";
action.deleteMode = "Permissive";
action.sessionId = "aa1c19e2398949c99132c47e97f11569";
DeleteVRouterRouteTableAction.Result res = action.call();
Python SDK
DeleteVRouterRouteTableAction action = DeleteVRouterRouteTableAction()
action.uuid = "dcf18f99774046de99d5791bfba27b35"
action.deleteMode = "Permissive"
action.sessionId = "c2345a70fb6b4ffabc717ca555e60782"
DeleteVRouterRouteTableAction.Result res = action.call()

查询路由表(QueryVRouterRouteTable)

API请求

URLs
GET zstack/v1/vrouter-route-tables
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 48eaf58e3b6e4c51a56c8d9caa991311" \
-X GET http://localhost:8080/zstack/v1/vrouter-route-tables
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 20f83215e3bf491782fe7646a42b5c8b" \
-X GET http://localhost:8080/zstack/v1/vrouter-route-tables/3b8991d7295a4cccb08d028911a9164b

可查询字段

运行CLI命令行工具,输入QueryVRouterRouteTable并按Tab键查看所有可查询字段以及可跨表查询的资源名。

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
QueryVRouterRouteTableAction action = new QueryVRouterRouteTableAction();
action.conditions = asList();
action.sessionId = "1e7d262944584f57a8908c9acd1ec62f";
QueryVRouterRouteTableAction.Result res = action.call();
Python SDK
QueryVRouterRouteTableAction action = QueryVRouterRouteTableAction()
action.conditions = []
action.sessionId = "6ad6d8b304984d3ba5b64ddd2062efcb"
QueryVRouterRouteTableAction.Result res = action.call()

获取路由器实时路由表(GetVRouterRouteTable)

返回路由设备实际实时路由表,包括非用户添加的全部路由。

API请求

URLs
GET zstack/v1/vrouter-route-tables/vrouter/{virtualRouterVmUuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth ef1c95285ef3435c949854955edc6c66" \
-X GET http://localhost:8080/zstack/v1/vrouter-route-tables/vrouter/27e810f019b74106877814ddb0c6e3bf
参数列表
名字 类型 位置 描述 可选值 起始版本
virtualRouterVmUuid String url 路由器设备UUID 2.1
systemTags (可选) List query 2.1
userTags (可选) List query 2.1

API返回

返回示例
{
  "inventories": [
    {
        "type": "ZStack"
        "destination": "0.0.0.0/0"
        "target": "100.64.201.1"
        "status": "selected"
    },
    {
        "uuid": "7b86eaba601c4ceda5987036c9ea7981"
        "type": "UserStatic"
        "destination": "100.64.0.0/24"
        "target": "100.64.201.10"
        "distance": "128"
        "status": "selected"
    },
    {
        "uuid": "d15ebfe03aec49e6a0453e74eede350d"
        "type": "UserStatic"
        "destination": "100.64.0.0/24"
        "target": "100.64.201.11"
        "distance": "128"
        "status": "active"
    },
    {
        "type": "ZStack"
        "destination": "10.0.57.94/32"
        "target": "eth0"
    },
    {
        "uuid": "50e6070313fa4a05b17907a32be0a63f"
        "type": "UserStatic"
        "destination": "10.0.57.94/32"
        "target": "100.64.201.12"
        "distance": "1"
        "status": "inactive"
    },
    {
        "type": "DirectConnect"
        "destination": "192.168.197.0/24"
        "target": "eth1"
        "status": "selected"
    },
    {
        "uuid": "6b446d5cf776471c913582ab30bd6340"
        "type": "DirectConnect"
        "destination": "192.168.197.0/24"
        "target": "100.64.201.13"
        "distance": "1"
        "status": "inactive"
    },
    {
        "uuid": "0aad7115c1f94aa1bf5db1a4d6d3fd17"
        "type": "UserBlackHole"
        "destination": "192.168.198.0/24"
        "distance": "1"
        "status": "selected"
    },
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventories List 详情参考inventories 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 2.1
description String 错误的概要描述 2.1
details String 错误的详细信息 2.1
elaboration String 保留字段,默认为null 2.1
opaque LinkedHashMap 保留字段,默认为null 2.1
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 2.1
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
description String 资源的详细描述 2.1
type String 除用户添加的静态路由黑洞路由外,ZStack类型表示由系统添加的路由,DirectConnect表示直连路由 2.1
destination String 目标网络地址 2.1
target String 下一跳地址或网卡 2.1
distance Integer 路由优先级,在最小匹配下如果有多条路由规则匹配,优先级数字小的规则将会被匹配 2.1
status String 路由状态
  • active:活跃的路由
  • inactive:表示非活跃路由
  • selected:表示多路径路由中活跃的路由
2.1

SDK示例

Java SDK
GetVRouterRouteTableAction action = new GetVRouterRouteTableAction();
action.virtualRouterVmUuid = "dfa2698bd9f04cd5be56e5b51826359d";
action.sessionId = "8fbf06a3245a42fc99ef63f618364de7";
GetVRouterRouteTableAction.Result res = action.call();
Python SDK
GetVRouterRouteTableAction action = GetVRouterRouteTableAction()
action.virtualRouterVmUuid = "1646d8ca4e144f63896c26488491e016"
action.sessionId = "161364959641477981aa68cd63b19348"
GetVRouterRouteTableAction.Result res = action.call()

添加路由条目(AddVRouterRouteEntry)

API请求

URLs
POST zstack/v1/vrouter-route-tables/{routeTableUuid}/route-entries
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "description": "Test route",
    "type": "UserStatic",
    "destination": "192.168.2.0/24",
    "target": "172.20.1.1"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"description":"Test route","type":"UserStatic","destination":"192.168.2.0/24","target":"172.20.1.1"}}' \
http://localhost:8080/zstack/v1/vrouter-route-tables/011e554588e93a849e890685d6adb6be/route-entries
参数列表
名字 类型 位置 描述 可选值 起始版本
description (可选) String body(包含在params结构中) 资源的详细描述 2.1
type (可选) String body(包含在params结构中) 类型
  • 允许用户添加"静态路由"、"黑洞路由"两种类型,系统会根据是否填下一条自动判断类型
  • UserStatic
  • UserBlackHole
2.1
routeTableUuid String url 路由表UUID 2.1
destination String body(包含在params结构中) 目标网络地址,使用网络地址CIDR格式,如果用户填写的不是标准CIDR格式,系统会自动转换 2.1
target (可选) String body(包含在params结构中) 下一跳地址
  • 为一个路由器设备目前可以直接到达的IP地址,如果不可以直接到达,将会进行递归路由
2.1
distance (可选) Integer body(包含在params结构中) 路由优先级,在最小匹配下如果有多条路由规则匹配,优先级数字小的规则将会被匹配 2.1
resourceUuid (可选) String body(包含在params结构中) 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例
{
  "inventory": {
    "description": "Test route",
    "type": "UserStatic",
    "routeTableUuid": "5dad5ac78c3642088dc3ed6bc4d8c853",
    "destination": "192.168.2.0/24",
    "target": "172.20.1.1",
    "distance": 128.0
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventory VRouterRouteEntryInventory 详情参考inventory 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 2.1
description String 错误的概要描述 2.1
details String 错误的详细信息 2.1
elaboration String 保留字段,默认为null 2.1
opaque LinkedHashMap 保留字段,默认为null 2.1
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 2.1
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
description String 资源的详细描述 2.1
type String 类型,允许用户添加"静态路由"、"黑洞路由"两种类型,系统会根据是否填下一跳自动判断类型,在外在获取实时路由表API还会返回"ZStack"类型表示由系统添加的路由,"DirectConnect"直连路由 2.1
routeTableUuid String 路由表UUID 2.1
destination String 目标网络地址 2.1
target String 下一条地址 2.1
distance Integer 路由优先级,在最小匹配下如果有多条路由规则匹配,优先级数字小的规则将会被匹配 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1

SDK示例

Java SDK
AddVRouterRouteEntryAction action = new AddVRouterRouteEntryAction();
action.description = "Test route";
action.type = "UserStatic";
action.routeTableUuid = "5c33ae47c7c94aaea08ead913ddfe0b4";
action.destination = "192.168.2.0/24";
action.target = "172.20.1.1";
action.sessionId = "f75a12a294fe4128b105e1d8f97257b3";
AddVRouterRouteEntryAction.Result res = action.call();
Python SDK
AddVRouterRouteEntryAction action = AddVRouterRouteEntryAction()
action.description = "Test route"
action.type = "UserStatic"
action.routeTableUuid = "4fab7c04998c44b4b6d2bc4da0b35ddb"
action.destination = "192.168.2.0/24"
action.target = "172.20.1.1"
action.sessionId = "1510b167ddf54461b69e41802ddcf5eb"
AddVRouterRouteEntryAction.Result res = action.call()

删除路由条目(DeleteVRouterRouteEntry)

API请求

URLs
DELETE zstack/v1/vrouter-route-tables/{routeTableUuid}/route-entries/{uuid}?deleteMode={deleteMode}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 07ed3c114a7f4ca0a10861d448a8b973" \
-X DELETE http://localhost:8080/zstack/v1/vrouter-route-tables/a713099cca4c487e8ee46ed2ad798903/route-entries/44f6816c4c7444b9b93b11c385f2bb19?deleteMode=Permissive
参数列表
名字 类型 位置 描述 可选值 起始版本
uuid String url 资源的UUID,唯一标示该资源 2.1
routeTableUuid String url 2.1
deleteMode (可选) String url 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

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
DeleteVRouterRouteEntryAction action = new DeleteVRouterRouteEntryAction();
action.uuid = "6cc2578afb134d03959feb8cd586de06";
action.routeTableUuid = "e9b7f623b59d4cb5832a0eef61fdc273";
action.deleteMode = "Permissive";
action.sessionId = "eeda6890b1a2428087ae1c3d5b8e1311";
DeleteVRouterRouteEntryAction.Result res = action.call();
Python SDK
DeleteVRouterRouteEntryAction action = DeleteVRouterRouteEntryAction()
action.uuid = "eb9a0a4ab242430896d50be1a75c1c0d"
action.routeTableUuid = "295cbd7c2b1746ba9907eabecdb6cdf0"
action.deleteMode = "Permissive"
action.sessionId = "dd36b5ccb2444679820945da4ba4ebf3"
DeleteVRouterRouteEntryAction.Result res = action.call()

查询路由条目(QueryVRouterRouteEntry)

API请求

URLs
GET zstack/v1/vrouter-route-tables/route-entries
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 0a9d413ce14245f89cde947aa57ae4c3" \
-X GET http://localhost:8080/zstack/v1/vrouter-route-tables/route-entries
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth eb2e3203532b405cbe9c2fde23deb53e" \
-X GET http://localhost:8080/zstack/v1/vrouter-route-tables/route-entries/6c19d2d2bad3489f8b095c98fea971a5

可查询字段

运行CLI命令行工具,输入QueryVRouterRouteEntry并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {
      "description": "Test route",
      "type": "UserStatic",
      "routeTableUuid": "4b9b27aa14794f3c98f23818d8a4b281",
      "destination": "192.168.2.0/24",
      "target": "172.20.1.1"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventories List 详情参考inventories 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 2.1
description String 错误的概要描述 2.1
details String 错误的详细信息 2.1
elaboration String 保留字段,默认为null 2.1
opaque LinkedHashMap 保留字段,默认为null 2.1
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 2.1
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
description String 资源的详细描述 2.1
type String 类型
  • 允许用户添加"静态路由"、"黑洞路由"两种类型,系统会根据是否填下一跳自动判断类型
2.1
routeTableUuid String 路由表UUID 2.1
destination String 目标网络地址 2.1
target String 下一跳地址
  • 为一个路由器设备目前可以直接到达的IP地址,如果不可以直接到达,将会进行递归路由
2.1
distance Integer 路由优先级,在最小匹配下如果有多条路由规则匹配,优先级数字小的规则将会被匹配 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1

SDK示例

Java SDK
QueryVRouterRouteEntryAction action = new QueryVRouterRouteEntryAction();
action.conditions = asList();
action.sessionId = "4388bb850faf4cf69e13ecb9bbdcd77e";
QueryVRouterRouteEntryAction.Result res = action.call();
Python SDK
QueryVRouterRouteEntryAction action = QueryVRouterRouteEntryAction()
action.conditions = []
action.sessionId = "116b877273e84748994435d8603423b4"
QueryVRouterRouteEntryAction.Result res = action.call()

绑定路由表到路由器(AttachVRouterRouteTableToVRouter)

API请求

URLs
POST zstack/v1/vrouter-route-tables/{routeTableUuid}/attach
Headers
Authorization: OAuth the-session-uuid
Body
{
  "params": {
    "virtualRouterVmUuid": "49e427183ffe4dd8b7c40a635f11f71b"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"virtualRouterVmUuid":"2b8bbccba54438e994d4d14d570a1807"}}' \
http://localhost:8080/zstack/v1/vrouter-route-tables/ee1fc77524993a60a8c0e4b7245470db/attach
参数列表
名字 类型 位置 描述 可选值 起始版本
routeTableUuid String url 2.1
virtualRouterVmUuid String body(包含在params结构中) 路由设备UUID 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例

{
  "inventory": {
    "name": "test-route-table",
    "description": "Test route table",
    "attachedRouterRefs": [],
    "routeEntries": []
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventory VRouterRouteTableInventory 详情参考inventory 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 2.1
description String 错误的概要描述 2.1
details String 错误的详细信息 2.1
elaboration String 保留字段,默认为null 2.1
opaque LinkedHashMap 保留字段,默认为null 2.1
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 2.1
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 2.1
description String 资源的详细描述 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
attachedRouterRefs List 详情参考attachedRouterRefs 2.1
routeEntries List 详情参考routeEntries 2.1
#attachedRouterRefs
名字 类型 描述 起始版本
virtualRouterVmUuid String 2.1
routeTableUuid String 2.1
#routeEntries
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
description String 资源的详细描述 2.1
type String 类型
  • 允许用户添加"静态路由"、"黑洞路由"两种类型,系统会根据是否填下一跳自动判断类型
2.1
routeTableUuid String 路由表UUID 2.1
destination String 目标网络地址 2.1
target String 下一跳地址
  • 为一个路由器设备目前可以直接到达的IP地址,如果不可以直接到达,将会进行递归路由
2.1
distance Integer 路由优先级,在最小匹配下如果有多条路由规则匹配,优先级数字小的规则将会被匹配 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1

SDK示例

Java SDK

AttachVRouterRouteTableToVRouterAction action = new AttachVRouterRouteTableToVRouterAction();
action.routeTableUuid = "9d77dce987404000a00dd64594863e32";
action.virtualRouterVmUuid = "bfb7963808fa4d64b94cbbc8eb593398";
action.sessionId = "48e036e5881d41fa9070d2b6aa75c7ee";
AttachVRouterRouteTableToVRouterAction.Result res = action.call();
Python SDK
AttachVRouterRouteTableToVRouterAction action = AttachVRouterRouteTableToVRouterAction()
action.routeTableUuid = "0afcb79f56f74b1a96cce814362f861f"
action.virtualRouterVmUuid = "611126cb62094da4b6023824f0f2d0c9"
action.sessionId = "56fd37c6dff343948028d9b826ea4b10"
AttachVRouterRouteTableToVRouterAction.Result res = action.call()

解绑路由表(DetachVRouterRouteTableFromVRouter)

从路由器设备解绑路由表。

API请求

URLs
DELETE zstack/v1/vrouter-route-tables/{routeTableUuid}/detach/{virtualRouterVmUuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/vrouter-route-tables/2ef92879139f36e291314bed861a0cc7/detach/50391e085c803988a3fa27e210834a16
参数列表
名字 类型 位置 描述 可选值 起始版本
routeTableUuid String url 路由表UUID 2.1
virtualRouterVmUuid String url 路由表设备UUID 2.1
systemTags (可选) List body 2.1
userTags (可选) List body 2.1

API返回

返回示例
{
  "inventory": {
    "name": "test-route-table",
    "description": "Test route table",
    "attachedRouterRefs": [],
    "routeEntries": []
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventory VRouterRouteTableInventory 详情参考inventory 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 2.1
description String 错误的概要描述 2.1
details String 错误的详细信息 2.1
elaboration String 保留字段,默认为null 2.1
opaque LinkedHashMap 保留字段,默认为null 2.1
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 2.1
#inventory
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
name String 资源名称 2.1
description String 资源的详细描述 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1
attachedRouterRefs List 详情参考attachedRouterRefs 2.1
routeEntries List 详情参考routeEntries 2.1
#attachedRouterRefs
名字 类型 描述 起始版本
virtualRouterVmUuid String 2.1
routeTableUuid String 2.1
#routeEntries
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 2.1
description String 资源的详细描述 2.1
type String 类型
  • 允许用户添加"静态路由"、"黑洞路由"两种类型,系统会根据是否填下一跳自动判断类型
2.1
routeTableUuid String 路由表UUID 2.1
destination String 目标网络地址 2.1
target String 下一跳地址
  • 为一个路由器设备目前可以直接到达的IP地址,如果不可以直接到达,将会进行递归路由
2.1
distance Integer 路由优先级,在最小匹配下如果有多条路由规则匹配,优先级数字小的规则将会被匹配 2.1
createDate Timestamp 创建时间 2.1
lastOpDate Timestamp 最后一次修改时间 2.1

SDK示例

Java SDK

DetachVRouterRouteTableFromVRouterAction action = new DetachVRouterRouteTableFromVRouterAction();
action.routeTableUuid = "c157be1c2fac4806bd0e1ce04087a9b5";
action.virtualRouterVmUuid = "b844d0085c544aecb9a1c49e6c0fa4e9";
action.sessionId = "7299252a24404d92a5ee621ea5a2e6df";
DetachVRouterRouteTableFromVRouterAction.Result res = action.call();
Python SDK
DetachVRouterRouteTableFromVRouterAction action = DetachVRouterRouteTableFromVRouterAction()
action.routeTableUuid = "a7bece0ef6e04218af583d0d20078ec2"
action.virtualRouterVmUuid = "06a9a546ec6f4395b46fe5704f476ca2"
action.sessionId = "6923e611467343a3ad2f4c47163ad4bd"
DetachVRouterRouteTableFromVRouterAction.Result res = action.call()

查询绑定关系(QueryVirtualRouterVRouterRouteTableRef)

查询路由器设备与路由表绑定关系。

API请求

URLs
GET zstack/v1/vrouter-route-tables/virtual-router-refs
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 735e8b68e40442659dac22fc30d7774b" \
-X GET http://localhost:8080/zstack/v1/vrouter-route-tables/virtual-router-refs

可查询字段

运行CLI命令行工具,输入QueryVirtualRouterVRouterRouteTableRef并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {
      "virtualRouterVmUuid": "ebec6ece12504916a12f13441282bb67",
      "routeTableUuid": "fbf34e1fc6924ff3ba4c338435dd8e61"
    }
  ]
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
inventories List 详情参考inventories 2.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 2.1
description String 错误的概要描述 2.1
details String 错误的详细信息 2.1
elaboration String 保留字段,默认为null 2.1
opaque LinkedHashMap 保留字段,默认为null 2.1
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 2.1
#inventories
名字 类型 描述 起始版本
virtualRouterVmUuid String 2.1
routeTableUuid String 2.1

SDK示例

Java SDK
QueryVirtualRouterVRouterRouteTableRefAction action = new QueryVirtualRouterVRouterRouteTableRefAction();
action.conditions = asList();
action.sessionId = "ec7b3e5724604965a1dcf3c7eb58a7c1";
QueryVirtualRouterVRouterRouteTableRefAction.Result res = action.call();
Python SDK
QueryVirtualRouterVRouterRouteTableRefAction action = QueryVirtualRouterVRouterRouteTableRefAction()
action.conditions = []
action.sessionId = "b2ca8cc84dae431e95cff3e95ace26c1"
QueryVirtualRouterVRouterRouteTableRefAction.Result res = action.call()
开发手册 | 5.4.12 | ZStack Cloud · ZCF | ZStack 资源中心