指定云主机IP(SetVmStaticIp)

给云主机网卡指定IP,用户可以通过该API控制ZStack分配给云主机网卡的IP。

用户要确保指定的IP在指定三层网络,并且IP未被占用。

API请求

URLs
PUT zstack/v1/vm-instances/{vmInstanceUuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "setVmStaticIp": {
    "l3NetworkUuid": "61e66d487dff454f9509a1f19606d274",
    "ip": "192.168.10.10"
  },
  "systemTags": [],
  "userTags": []
}
Note: 上述示例中systemTagsuserTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"setVmStaticIp":{"l3NetworkUuid":"9fcbd78edb58391f8d9b879ea87598fd","ip":"192.168.10.10"}}' \
http://localhost:8080/zstack/v1/vm-instances/e3749802228a36038d0e17041414fd17/actions
参数列表
名字 类型 位置 描述 可选值 起始版本
vmInstanceUuid String url 云主机UUID 0.6
l3NetworkUuid String body(包含在setVmStaticIp结构中) 三层网络UUID 0.6
ip String body(包含在setVmStaticIp结构中) 指定IP地址 0.6
systemTags (可选) List body 系统标签 0.6
userTags (可选) List body 用户标签 0.6

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
SetVmStaticIpAction action = new SetVmStaticIpAction();
action.vmInstanceUuid = "ba40d9c668384207bf297e36a5b687d5";
action.l3NetworkUuid = "016dbda9a11a4f679378845052422164";
action.ip = "192.168.10.10";
action.sessionId = "3c5be55dcf2d4885b32f46e7711603e1";
SetVmStaticIpAction.Result res = action.call();
Python SDK
SetVmStaticIpAction action = SetVmStaticIpAction()
action.vmInstanceUuid = "b8472643ebe34e7dab186b8df4e0f930"
action.l3NetworkUuid = "c5ba309fd4e24be1a406b1c9e203e637"
action.ip = "192.168.10.10"
action.sessionId = "6f1fb28af50a438783d971f195629ed9"
SetVmStaticIpAction.Result res = action.call()