分布式交换机相关接口
新建分布式交换机
Headers
Authorization: OAuth the-session-uuidBody
{
"params": {
"isDistributed": true,
"name": "dvs-1",
"description": "Test",
"zoneUuid": "27f8f98f166a3206b020e83996faabc3",
"physicalInterface": "bond1",
"vSwitchType": "LinuxBridge"
},
"systemTags": [],
"userTags": []
}上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"isDistributed":true,"name":"dvs-1","description":"Test","zoneUuid":"27f8f98f166a3206b020e83996faabc3","physicalInterface":"bond1","vSwitchType":"LinuxBridge"}}' \
http://localhost:8080/zstack/v1/l2-networks/virtual-switch参数列表
名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
isDistributed (可选) | Boolean | body(包含在params结构中) | 是否为分布式 |
| 4.1.0 |
name | String | body(包含在params结构中) | 资源名称 |
| 4.1.0 |
description (可选) | String | body(包含在params结构中) | 资源的详细描述 |
| 4.1.0 |
zoneUuid | String | body(包含在params结构中) | 数据中心UUID |
| 4.1.0 |
physicalInterface | String | body(包含在params结构中) | 物理网卡 |
| 4.1.0 |
type (可选) | String | body(包含在params结构中) |
|
| 4.1.0 |
vSwitchType (可选) | String | body(包含在params结构中) | 虚拟交换机类型 |
| 4.1.0 |
resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID |
| 4.1.0 |
tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 |
| 4.1.0 |
systemTags (可选) | List | body | 系统标签 |
| 4.1.0 |
userTags (可选) | List | body | 用户标签 |
| 4.1.0 |
API返回
返回示例
{
"inventory": {
"isDistributed": true,
"vSwitchIndex": 1,
"name": "dvs-1",
"description": "Test dvs",
"zoneUuid": "4bc93f4e3a1c35b8948583951e56b5eb",
"physicalInterface": "bond1",
"type": "virtualSwitch"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.1.0 | |
| inventory | L2VirtualSwitchNetworkInventory | 详情参考inventory | 4.1.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.1.0 |
inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| isDistributed | Boolean | 是否为分布式 | 4.1.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| zoneUuid | String | 数据中心UUID | 4.1.0 |
| physicalInterface | String | 物理网卡 | 4.1.0 |
| type | String | 4.1.0 | |
| vSwitchType | String | 虚拟交换机类型 | 4.1.0 |
| virtualNetworkId | Integer | 虚拟网络ID | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 4.1.0 |
| portGroups | List | 详情参考portGroups | 4.1.0 |
portGroups
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vSwitchUuid | String | 虚拟交换机UUID | 4.1.0 |
| vlanId | Integer | VLAN ID | 4.1.0 |
| vlanRanges | String | VLAN范围 | 4.1.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| zoneUuid | String | 数据中心UUID | 4.1.0 |
| physicalInterface | String | 物理网卡 | 4.1.0 |
| type | String | 4.1.0 | |
| vSwitchType | String | 虚拟交换机类型 | 4.1.0 |
| virtualNetworkId | Integer | 虚拟网络ID | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 4.1.0 |
| vlanMode | PortGroupVlanMode | 详情参考vlanMode | 4.1.0 |
vlanMode
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ACCESS | PortGroupVlanMode | 4.2.0 | |
| TRUNK | PortGroupVlanMode | 4.2.0 | |
| PVLAN | PortGroupVlanMode | 4.2.0 |
error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.1.0 |
| description | String | 错误的概要描述 | 4.1.0 |
| details | String | 错误的详细信息 | 4.1.0 |
| elaboration | String | 保留字段,默认为null | 4.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.1.0 |
SDK示例
Java SDK
CreateL2VirtualSwitchAction action = new CreateL2VirtualSwitchAction();
action.isDistributed = true;
action.name = "dvs-1";
action.description = "Test";
action.zoneUuid = "27f8f98f166a3206b020e83996faabc3";
action.physicalInterface = "bond1";
action.vSwitchType = "LinuxBridge";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateL2VirtualSwitchAction.Result res = action.call();Python SDK
CreateL2VirtualSwitchAction action = CreateL2VirtualSwitchAction()
action.isDistributed = true
action.name = "dvs-1"
action.description = "Test"
action.zoneUuid = "27f8f98f166a3206b020e83996faabc3"
action.physicalInterface = "bond1"
action.vSwitchType = "LinuxBridge"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateL2VirtualSwitchAction.Result res = action.call()