分布式交换机相关接口

新建分布式交换机

POST/zstack/v1/l2-networks/virtual-switch

Headers

Authorization: OAuth the-session-uuid

Body

{
  "params": {
    "isDistributed": true,
    "name": "dvs-1",
    "description": "Test",
    "zoneUuid": "27f8f98f166a3206b020e83996faabc3",
    "physicalInterface": "bond1",
    "vSwitchType": "LinuxBridge"
  },
  "systemTags": [],
  "userTags": []
}

上述示例中systemTagsuserTags字段可以省略。列出是为了表示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结构中)

虚拟交换机类型

  • LinuxBridge
  • OvsDpdk
  • MacVlan

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"
  }
}
名字类型描述起始版本
successboolean 4.1.0
inventoryL2VirtualSwitchNetworkInventory详情参考inventory4.1.0
errorErrorCode错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error4.1.0

inventory

名字类型描述起始版本
isDistributedBoolean是否为分布式4.1.0
uuidString资源的UUID,唯一标示该资源4.1.0
nameString资源名称4.1.0
descriptionString资源的详细描述4.1.0
zoneUuidString数据中心UUID4.1.0
physicalInterfaceString物理网卡4.1.0
typeString 4.1.0
vSwitchTypeString虚拟交换机类型4.1.0
virtualNetworkIdInteger虚拟网络ID4.1.0
createDateTimestamp创建时间4.1.0
lastOpDateTimestamp最后一次修改时间4.1.0
attachedClusterUuidsList挂载集群的UUID列表4.1.0
portGroupsList详情参考portGroups4.1.0

portGroups

名字类型描述起始版本
vSwitchUuidString虚拟交换机UUID4.1.0
vlanIdIntegerVLAN ID4.1.0
vlanRangesStringVLAN范围4.1.0
uuidString资源的UUID,唯一标示该资源4.1.0
nameString资源名称4.1.0
descriptionString资源的详细描述4.1.0
zoneUuidString数据中心UUID4.1.0
physicalInterfaceString物理网卡4.1.0
typeString 4.1.0
vSwitchTypeString虚拟交换机类型4.1.0
virtualNetworkIdInteger虚拟网络ID4.1.0
createDateTimestamp创建时间4.1.0
lastOpDateTimestamp最后一次修改时间4.1.0
attachedClusterUuidsList挂载集群的UUID列表4.1.0
vlanModePortGroupVlanMode详情参考vlanMode4.1.0

vlanMode

名字类型描述起始版本
ACCESSPortGroupVlanMode 4.2.0
TRUNKPortGroupVlanMode 4.2.0
PVLANPortGroupVlanMode 4.2.0

error

名字类型描述起始版本
codeString错误码号,错误的全局唯一标识,例如SYS.1000, HOST.10014.1.0
descriptionString错误的概要描述4.1.0
detailsString错误的详细信息4.1.0
elaborationString保留字段,默认为null4.1.0
opaqueLinkedHashMap保留字段,默认为null4.1.0
causeErrorCode根错误,引发当前错误的源错误,若无原错误,该字段为null4.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()