创建端口转发规则(CreatePortForwardingRule)

API请求

URLs
POST zstack/v1/port-forwarding
Headers
Authorization: OAuth the-session-uuid
Body
{
"params": {
"vipUuid": "214cf4f562bf40b98a7c954081f94f03",
"vipPortStart": 22.0,
"protocolType": "TCP",
"vmNicUuid": "84590db8896d4e498bf69d35239a31cc",
"name": "pf1"
  },
"systemTags": [],
"userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。

Curl示例

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vipUuid":"1c4824bb6043388cac7499dd481ecaa4","vipPortStart":22.0,"protocolType":"TCP","vmNicUuid":"0611006103d335dfbfc0f9bb2a46d541","name":"pf1"}}' \
http://localhost:8080/zstack/v1/port-forwarding
参数列表
名字 类型 位置 描述 可选值 起始版本
vipUuid String body(包含在params结构中) VIP UUID 0.6
vipPortStart Integer body(包含在params结构中) VIP的起始端口号 0.6
vipPortEnd (可选) Integer body(包含在params结构中) VIP的结束端口号; 如果忽略不设置, 会默认设置为vipPortStart 0.6
privatePortStart (可选) Integer body(包含在params结构中) 客户IP(虚拟机网卡的IP地址)的起始端口号; 如果忽略不设置, 会默认设置为vipPortStart 0.6
privatePortEnd (可选) Integer body(包含在params结构中) 客户IP(虚拟机网卡的IP地址)的结束端口号; 如果忽略不设置, 会默认设置为vipPortEnd 0.6
protocolType String body(包含在params结构中) 网络流量协议类型
  • TCP
  • UDP
0.6
vmNicUuid (可选) String body(包含在params结构中) 云主机网卡UUID 0.6
allowedCidr (可选) String body(包含在params结构中) 源CIDR; 端口转发规则只作用于源CIDR的流量; 如果忽略不设置, 会默认设置为to 0.0.0.0/0 0.6
name String body(包含在params结构中) 资源名称 0.6
description (可选) String body(包含在params结构中) 资源的详细描述 0.6
resourceUuid (可选) String body(包含在params结构中) 用户指定的资源UUID,若指定,系统不会为该资源随机分配UUID 0.6
systemTags (可选) List body 系统标签 0.6
userTags (可选) List body 用户标签 0.6

API返回

返回示例
{
"inventory": {
"uuid": "895a8ce93d274db78e2ef1462f8b8a29",
"name": "TestAttachRule",
"description": "test atatch rule",
"vipIp": "192.168.0.187",
"guestIp": "10.0.0.244",
"vipUuid": "6151c96fd2ac4d6cbd8f8eedffc06de5",
"vipPortStart": 33.0,
"vipPortEnd": 33.0,
"privatePortStart": 33.0,
"privatePortEnd": 33.0,
"vmNicUuid": "581ea3b08aef4096ac24e160f1ab0f8e",
"protocolType": "TCP",
"state": "Enabled",
"allowedCidr": "0.0.0.0/0",
"createDate": "Jun 7, 2017 9:20:10 PM",
"lastOpDate": "Jun 7, 2017 9:20:10 PM"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory PortForwardingRuleInventory 详情参考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
vipIp String VIP的IP地址 0.6
guestIp String 虚拟机网卡的IP地址 0.6
vipUuid String VIP UUID 0.6
vipPortStart Integer VIP的起始端口号 0.6
vipPortEnd Integer VIP的结束端口号 0.6
privatePortStart Integer 客户IP的起始端口号 0.6
privatePortEnd Integer 客户IP的结束端口号 0.6
vmNicUuid String 云主机网卡UUID 0.6
protocolType String 网络流量的协议类型 0.6
state String 规则可用状态 0.6
allowedCidr String 源CIDR; 端口转发规则只作用于源CIDR的流量 0.6
createDate Timestamp 创建时间 0.6
lastOpDate Timestamp 最后一次修改时间 0.6

SDK示例

Java SDK
CreatePortForwardingRuleAction action = new CreatePortForwardingRuleAction();
action.vipUuid = "966f9f294e094243bcfaf7eeee70aeae";
action.vipPortStart = 22.0;
action.protocolType = "TCP";
action.vmNicUuid = "ace8c962d59248e38fadac5df9a108a7";
action.name = "pf1";
action.sessionId = "5f4df8c7fae44602b5f7e5d376904d6b";
CreatePortForwardingRuleAction.Result res = action.call();
Python SDK
CreatePortForwardingRuleAction action = CreatePortForwardingRuleAction()
action.vipUuid = "1d130b0bb1e44aafa76d6280479f5399"
action.vipPortStart = 22.0
action.protocolType = "TCP"
action.vmNicUuid = "78c6172984874e5e9cdd3bf0248080ca"
action.name = "pf1"
action.sessionId = "4a3371ccd0cc4cdfa75ae46aeec14f41"
CreatePortForwardingRuleAction.Result res = action.call()