组播路由相关接口
创建组播路由器(CreateMulticastRouter)
API请求
URLs
POST zstack/v1/multicast/virtual-routersHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"vpcRouterVmUuid": "6fe7772600d039bf80d8e2359fcef61a",
"description": "this is a header router for test"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vpcRouterVmUuid":"6fe7772600d039bf80d8e2359fcef61a","description":"this is a header router for test"}}' http://localhost:8080/zstack/v1/multicast/virtual-routers参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vpcRouterVmUuid | String | body(包含在params结构中) | 3.7.0 | ||
| description (可选) | 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": "974c38ae483737c3b4ded18de56773b6",
"description": "test for header",
"rpGroups": [
{
"uuid": "0bda384377d53656b89270948f795ab8",
"multicastRouterUuid": "974c38ae483737c3b4ded18de56773b6",
"rpAddress": "1.2.3.4",
"groupAddress": "239.1.1.1/32"
}
],
"vpcVrs": []
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventory | MulticastRouterInventory | 详情参考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
#rpGroups
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| multicastRouterUuid | String | 3.7.0 | |
| rpAddress | String | 3.7.0 | |
| groupAddress | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
#vpcVrs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| vpcRouterUuid | String | 3.7.0 |
SDK示例
Java
SDK
CreateMulticastRouterAction action = new CreateMulticastRouterAction();
action.vpcRouterVmUuid = "6fe7772600d039bf80d8e2359fcef61a";
action.description = "this is a header router for test";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateMulticastRouterAction.Result res = action.call();Python
SDK
CreateMulticastRouterAction action = CreateMulticastRouterAction()
action.vpcRouterVmUuid = "6fe7772600d039bf80d8e2359fcef61a"
action.description = "this is a header router for test"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateMulticastRouterAction.Result res = action.call()删除组播路由器(DeleteMulticastRouter)
API请求
URLs
DELETE zstack/v1/multicast/virtual-routers/{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/multicast/virtual-routers/cce17d3b823933a8b0694af5159fed4d?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| 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
DeleteMulticastRouterAction action = new DeleteMulticastRouterAction();
action.uuid = "cce17d3b823933a8b0694af5159fed4d";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteMulticastRouterAction.Result res = action.call();Python
SDK
DeleteMulticastRouterAction action = DeleteMulticastRouterAction()
action.uuid = "cce17d3b823933a8b0694af5159fed4d"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteMulticastRouterAction.Result res = action.call()查询组播路由器(QueryMulticastRouter)
API请求
URLs
GET zstack/v1/multicast/virtual-routers
GET zstack/v1/multicast/virtual-routers/{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/multicast/virtual-routers?q=name=multicastRoutercurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/multicast/virtual-routers/83791299370039dba6b9318e46dfcf69可查询字段
运行CLI命令行工具,输入QueryMulticastRouter并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "df41b45fd5213ceab084e5b733886ac0",
"description": "test for header",
"rpGroups": [
{
"uuid": "08f7436a526b3cbab51ca95d9e578d27",
"multicastRouterUuid": "df41b45fd5213ceab084e5b733886ac0",
"rpAddress": "1.2.3.4",
"groupAddress": "239.1.1.1/32"
}
],
"vpcVrs": []
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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
#rpGroups
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| multicastRouterUuid | String | 3.7.0 | |
| rpAddress | String | 3.7.0 | |
| groupAddress | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
#vpcVrs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| vpcRouterUuid | String | 3.7.0 |
SDK示例
Java
SDK
QueryMulticastRouterAction action = new QueryMulticastRouterAction();
action.conditions = asList("name=multicastRouter");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryMulticastRouterAction.Result res = action.call();Python
SDK
QueryMulticastRouterAction action = QueryMulticastRouterAction()
action.conditions = ["name=multicastRouter"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryMulticastRouterAction.Result res = action.call()改变组播路由器状态(ChangeMulticastRouterState)
API请求
URLs
PUT zstack/v1/multicast/virtual-routers/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeMulticastRouterState": {
"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 '{"changeMulticastRouterState":{"stateEvent":"enable"}}' http://localhost:8080/zstack/v1/multicast/virtual-routers/0cbf995f538b3aed855e3e50ea38eb0c/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.7.0 | |
| stateEvent | String | body(包含在changeMulticastRouterState结构中) |
|
3.7.0 | |
| systemTags (可选) | List | body | 3.7.0 | ||
| userTags (可选) | List | body | 3.7.0 |
API返回
返回示例
{
"inventory": {
"uuid": "93ce20a6a51932ce8f544033d5cdca3c",
"description": "test for header",
"rpGroups": [
{
"uuid": "3ef422d857ff3a09a6c000900ac37f78",
"multicastRouterUuid": "93ce20a6a51932ce8f544033d5cdca3c",
"rpAddress": "1.2.3.4",
"groupAddress": "239.1.1.1/32"
}
],
"vpcVrs": []
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventory | MulticastRouterInventory | 详情参考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
#rpGroups
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| multicastRouterUuid | String | 3.7.0 | |
| rpAddress | String | 3.7.0 | |
| groupAddress | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
#vpcVrs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| vpcRouterUuid | String | 3.7.0 |
SDK示例
Java
SDK
ChangeMulticastRouterStateAction action = new ChangeMulticastRouterStateAction();
action.uuid = "0cbf995f538b3aed855e3e50ea38eb0c";
action.stateEvent = "enable";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeMulticastRouterStateAction.Result res = action.call();Python
SDK
ChangeMulticastRouterStateAction action = ChangeMulticastRouterStateAction()
action.uuid = "0cbf995f538b3aed855e3e50ea38eb0c"
action.stateEvent = "enable"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeMulticastRouterStateAction.Result res = action.call()获取组播路由表(GetVpcMulticastRoute)
API请求
URLs
GET zstack/v1/multicast/virtual-routers/{uuid}/routesHeaders
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/multicast/virtual-routers/a880287e652d3137a9f7349dc7f65a49/routes参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.7.0 | |
| systemTags (可选) | List | query | 3.7.0 | ||
| userTags (可选) | List | query | 3.7.0 |
API返回
返回示例
{
"inventories": [
{
"sourceAddress": "1.2.3.4",
"groupAddress": "239.1.1.1",
"ingressInterfaces": "eth0",
"egressInterfaces": "eth1"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| sourceAddress | String | 3.7.0 | |
| groupAddress | String | 3.7.0 | |
| ingressInterfaces | String | 3.7.0 | |
| egressInterfaces | String | 3.7.0 |
SDK示例
Java
SDK
GetVpcMulticastRouteAction action = new GetVpcMulticastRouteAction();
action.uuid = "a880287e652d3137a9f7349dc7f65a49";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetVpcMulticastRouteAction.Result res = action.call();Python
SDK
GetVpcMulticastRouteAction action = GetVpcMulticastRouteAction()
action.uuid = "a880287e652d3137a9f7349dc7f65a49"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetVpcMulticastRouteAction.Result res = action.call()添加组播路由静态RP地址(AddRendezvousPointToMulticastRouter)
API请求
URLs
POST zstack/v1/multicast/virtual-routers/{uuid}/RendezvousPointHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"rpAddress": "1.2.3.4",
"groupAddress": "239.0.0.1/32"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"rpAddress":"1.2.3.4","groupAddress":"239.0.0.1/32"}}' http://localhost:8080/zstack/v1/multicast/virtual-routers/fae38e0915973679ac76cc40da3e2f51/RendezvousPoint参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.7.0 | |
| rpAddress | String | body(包含在params结构中) | 3.7.0 | ||
| groupAddress | 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": "9127988e024a3a87865efcd1381d8fd4",
"description": "test for header",
"rpGroups": [
{
"uuid": "68953d6bf3913f0188ddf66656daedaa",
"multicastRouterUuid": "9127988e024a3a87865efcd1381d8fd4",
"rpAddress": "1.2.3.4",
"groupAddress": "239.1.1.1/32"
}
],
"vpcVrs": []
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| inventory | MulticastRouterInventory | 详情参考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
#rpGroups
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| multicastRouterUuid | String | 3.7.0 | |
| rpAddress | String | 3.7.0 | |
| groupAddress | String | 3.7.0 | |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.7.0 |
#vpcVrs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.7.0 |
| vpcRouterUuid | String | 3.7.0 |
SDK示例
Java
SDK
AddRendezvousPointToMulticastRouterAction action = new AddRendezvousPointToMulticastRouterAction();
action.uuid = "fae38e0915973679ac76cc40da3e2f51";
action.rpAddress = "1.2.3.4";
action.groupAddress = "239.0.0.1/32";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddRendezvousPointToMulticastRouterAction.Result res = action.call();Python
SDK
AddRendezvousPointToMulticastRouterAction action = AddRendezvousPointToMulticastRouterAction()
action.uuid = "fae38e0915973679ac76cc40da3e2f51"
action.rpAddress = "1.2.3.4"
action.groupAddress = "239.0.0.1/32"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddRendezvousPointToMulticastRouterAction.Result res = action.call()删除组播路由器静态RP地址(RemoveRendezvousPointFromMulticastRouter)
API请求
URLs
DELETE zstack/v1/multicast/virtual-routers/{uuid}/RendezvousPointHeaders
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/multicast/virtual-routers/b0efeaec578931d49c6c8b457287e1db/RendezvousPoint?deleteMode=Permissive
参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.7.0 | |
| rpAddress | String | body | 3.7.0 | ||
| groupAddress | String | body | 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
RemoveRendezvousPointFromMulticastRouterAction action = new RemoveRendezvousPointFromMulticastRouterAction();
action.uuid = "b0efeaec578931d49c6c8b457287e1db";
action.rpAddress = "1.2.3.4";
action.groupAddress = "239.1.1.1/32";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveRendezvousPointFromMulticastRouterAction.Result res = action.call();Python
SDK
RemoveRendezvousPointFromMulticastRouterAction action = RemoveRendezvousPointFromMulticastRouterAction()
action.uuid = "b0efeaec578931d49c6c8b457287e1db"
action.rpAddress = "1.2.3.4"
action.groupAddress = "239.1.1.1/32"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveRendezvousPointFromMulticastRouterAction.Result res = action.call()