NetworkWork API v2.0

序 :为什么会有这篇文章

1 写这篇翻译的目的是为了记录自己的学习成果。
2 顺手学习一下如何使用Markdown。

  • 本文的API翻译省略部分 不常用API方法 及 不了解的API方法。所以,下面的链接放送给大家: NetworkWork API v2.0 官网原文(English), 猛戳这里!
  • 刚刚学习Markdown,使用不当之处请不吝赐教
  • 受水平所限,如果出现语法或语义翻译错误,请指出
  • [推荐]真是一个好工具啊!!!!Markdown新手指南+Markdown中文手册 有了,才发现文字之美

正文开始啦


OpenStack管理的Computer服务的设备间使用的是虚拟网络服务。Networking (neutron) API v2.0 结合了API v1.1 以及 一些必要的互联网地址管理(IPAM)功能。允许用户绑定IP地址块 和 通过OpenStack社交网络进行其他网络配置设置。你可以从块中选择一个特定的IP地址 或 让OpenStack 网络选择第一个有效的IP地址。

Networks


GET /v2.0/networks List networks:列出特定租户有权访问的网络。
* 虽然API上是这么写的。但是,在安装好的OpenStack管理环境上利用命令(neutron net-list)进行测试时发现,可以看到当前租户自己创建的内网和外网和全部的外部网络。但是路由的list命令(neutron router-list)只能看到当前租户自身的路由。不明白为什么和API描述的不一致。

通过使用查询参数,你可以控制返回哪些属性。更多信息,请查看 Filtering and Column Selection in the OpenStack Networking API v2.0 Reference .

正常返回码 200
异常返回码 非法的(401)
响应参数:

参数 Style 类型 描述
admin_state_up 来自OpenStack中国的解释 plain xsd:bool 网络的管理状态,up (true) or down (false)
id plain csapi:uuid 网络的id(network id)
name plain xsd:string 网络名称(network name)
shared plain xsd:bool 表示这个网络是否被共享给全部租户。默认情况下,只有管理用户可以改变这个值
subnets plain xsd:dict 相关联的子网
tenant_id plain csapi:uuid 租户id(tenant id)

【疑问】

  • 话说xsd、csapi好像是web service里的东东。本人对这个玩意儿已经无力再爱了
  • style:plain 指的是get或post请求的‘contentType’???大神给解答一下

JOSN返回数据:这个操作不接受请求主体。

{
    "networks": [
        {
            "status": "ACTIVE",
            "subnets": [
                "54d6f61d-db07-451c-9ab3-b9609b6b6f0b"
            ],
            "name": "private-network",
            "provider:physical_network": null,
            "admin_state_up": true,
            "tenant_id": "4fd44f30292945e481c7b8a0c8908869",
            "provider:network_type": "local",
            "router:external": true,
            "shared": true,
            "id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
            "provider:segmentation_id": null
        },
        {
            "status": "ACTIVE",
            "subnets": [
                "08eae331-0402-425a-923c-34f7cfe39c1b"
            ],
            "name": "private",
            "provider:physical_network": null,
            "admin_state_up": true,
            "tenant_id": "26a7980765d0414dbc1fc1f88cdb7e6e",
            "provider:network_type": "local",
            "router:external": true,
            "shared": true,
            "id": "db193ab3-96e3-4cb3-8fc5-05f4296d0324",
            "provider:segmentation_id": null
        }
    ]
}

POST /v2.0/networks 创建网络:创建一个网络
这个操作不需要请求主体。你在URI中指定的租户ID(tenant ID)是创建网络的租户的ID。在操作的请求主体中一个管理员用户可以指定另一个租户的ID,这个被指定ID的租户是这个网络的拥有者。

正常返回码 201
错误返回码 错误的请求(badRequest 400),非法的(unauthorized 401)
请求参数

参数 Style 类型 描述
admin_state_up (可选) plain xsd:bool 网络的管理状态,up (true) or down (false)
name (可选) plain xsd:string 网络的名称。一个请求主体是可选的:如果包含这个参数,它可以指定这个操作属性。
shared (可选) plain xsd:bool 表示这个网络是否被共享给全部租户。默认情况下,只有管理用户可以改变这个值。
tenant_id (可选) plain xsd:string 仅管理模式。这个UUID(tenant_id)的租户将是这个网络的持有者。发送这个创建命令的租户和命令中被指定的租户(网络的持有者)可以不是一个租户。然而,只有管理用户可以指定不是他们自己的租户ID。你无法通过授权策略更改这个值。

返回参数

参数 Style 类型 描述
admin_state_up plain xsd:bool 网络的管理状态,up (true) or down (false)
id plain csapi:uuid 网络id(network id)
name plain xsd:string 网络名称
shared plain xsd:bool 表示这个网络是否被共享给全部租户。默认情况下,只有管理用户可以改变这个值
status plain xsd:string 网络的状态
subnets plain xsd:dict 相关联的子网
tenant_id plain csapi:uuid 所属租户id(tenant id)

JSON请求数据:

 {
    "network": {
        "name": "sample_network",
        "admin_state_up": true
    }
} 

JSON返回数据:

{
    "network": {
        "status": "ACTIVE",
        "subnets": [],
        "name": "net1",
        "admin_state_up": true,
        "tenant_id": "9bacb3c5d39d41a79512987f338cf177",
        "segments": [
            {
                "provider:segmentation_id": 2,
                "provider:physical_network": "8bab8453-1bc9-45af-8c70-f83aa9b50453",
                "provider:network_type": "vlan"
            },
            {
                "provider:segmentation_id": null,
                "provider:physical_network": "8bab8453-1bc9-45af-8c70-f83aa9b50453",
                "provider:network_type": "stt"
            }
        ],
        "shared": false,
        "port_security_enabled": true,
        "id": "4e8e5957-649f-477b-9e5b-f1f75b21c03c"
    }
}

POST /v2.0/networks 批量创建网络:在一个请求中创建多个网络
在请求主体中,指定一个网络列表
批量操作总是原子性的。全部或没有网络在请求主体中被创建。

正常返回码 201
错误返回码 错误的请求(badRequest 400),非法的(unauthorized 401)
请求参数

参数 Style 类型 描述
admin_state_up (可选) plain xsd:bool 网络的管理状态,up (true) or down (false)
name plain xsd:string 网络的名称。一个请求主体是可选的:如果包含这个参数,它可以指定这个操作属性。
shared (可选) plain xsd:bool 表示这个网络是否被共享给全部租户。默认情况下,只有管理用户可以改变这个值。
tenant_id (可选) plain xsd:string 仅管理模式。这个UUID(tenant_id)的租户将是这个网络的持有者。发送这个创建命令的租户和命令中被指定的租户(网络的持有者)可以不是一个租户。然而,只有管理用户可以指定不是他们自己租户的租户ID。你无法通过授权策略更改这个值。

返回参数

参数 Style 类型 描述
admin_state_up plain xsd:bool 网络的管理状态,up (true) or down (false)
id plain csapi:uuid 网络id(network id)
name plain xsd:string 网络名称
shared plain xsd:bool 表示这个网络是否被共享给全部租户。默认情况下,只有管理用户可以改变这个值
status plain xsd:string 网络的状态
subnets plain xsd:dict 相关联的子网
tenant_id plain csapi:uuid 所属租户id(tenant id)

JSON请求数据:

{
    "networks": [
        {
            "name": "sample_network3",
            "admin_state_up": true
        },
        {
            "name": "sample_network4",
            "admin_state_up": true
        }
    ]
}

JSON返回数据:

{
    "networks": [
        {
            "status": "ACTIVE",
            "subnets": [],
            "name": "sample_network3",
            "provider:physical_network": null,
            "admin_state_up": true,
            "tenant_id": "4fd44f30292945e481c7b8a0c8908869",
            "provider:network_type": "local",
            "shared": false,
            "id": "bc1a76cb-8767-4c3a-bb95-018b822f2130",
            "provider:segmentation_id": null
        },
        {
            "status": "ACTIVE",
            "subnets": [],
            "name": "sample_network4",
            "provider:physical_network": null,
            "admin_state_up": true,
            "tenant_id": "4fd44f30292945e481c7b8a0c8908869",
            "provider:network_type": "local",
            "shared": false,
            "id": "af374017-c9ae-4a1d-b799-ab73111476e2",
            "provider:segmentation_id": null
        }
    ]
}

GET /v2.0/networks/​{network_id} 展示网络:展现指定的网络的信息
通过使用查询参数,你可以控制返回哪些属性。更多信息,请查看 Filtering and Column Selection in the OpenStack Networking API v2.0 Reference .

正常返回码 200
异常返回码 非法的(unauthorized 401),数据未找到(itemNotFound 404)

请求参数:

参数 Style 类型 描述
network_id URI csapi:UUID 你感兴趣的网络的UUID。

响应参数:

参数 Style 类型 描述
admin_state_up plain xsd:bool 网络的管理状态,up (true) or down (false)
id plain csapi:uuid 网络的id(network id)
name plain xsd:string 网络名称(network name)
shared plain xsd:bool 表示这个网络是否被共享给全部租户。默认情况下,只有管理用户可以改变这个值
status plain xsd:string 网络状态
subnets plain xsd:dict 相关联的子网
tenant_id plain csapi:uuid 租户id(tenant id)

JSON响应数据:

{
    "network": {
        "status": "ACTIVE",
        "subnets": [
            "54d6f61d-db07-451c-9ab3-b9609b6b6f0b"
        ],
        "name": "private-network",
        "provider:physical_network": null,
        "admin_state_up": true,
        "tenant_id": "4fd44f30292945e481c7b8a0c8908869",
        "provider:network_type": "local",
        "router:external": true,
        "shared": true,
        "id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
        "provider:segmentation_id": null
    }
}

PUT /v2.0/networks/​{network_id}​ 更新网络:更新指定的网络

正常响应码 200
错误响应码 失败的请求(badRequest 400), 非法的请求(unauthorized 401), 禁止的操作( forbidden 403), 数据未找到(itemNotFound 404)

请求参数

参数 Style 类型 描述
network_id URI csapi:UUID 你感兴趣的网络的ID
admin_state_up (可选) plain xsd:bool 网络的管理状态,up (true) or down (false)
name plain xsd:string 网络名称
shared (可选) plain xsd:bool 仅管理模式。表示这个网络是否被共享给全部租户。
tenant_id (可选) plain csapi:uuid 网络持有者的租户ID。只有管理用户可以指定不是他们自己租户的租户ID。你无法通过授权策略更改这个值。

响应参数:

参数 Style 类型 描述
admin_state_up plain xsd:bool 网络的管理状态,up (true) or down (false)
id plain csapi:uuid 网络的id(network id)
name plain xsd:string 网络名称(network name)
shared plain xsd:bool 表示这个网络是否被共享给全部租户。默认情况下,只有管理用户可以改变这个值
status plain xsd:string 网络状态
subnets plain xsd:dict 相关联的子网
tenant_id plain csapi:uuid 租户id(tenant id)

JSON请求数据:

{
    "network": {
        "name": "sample_network_5_updated"
    }
}

JSON响应数据:

{
    "network": {
        "status": "ACTIVE",
        "subnets": [],
        "name": "sample_network_5_updated",
        "provider:physical_network": null,
        "admin_state_up": true,
        "tenant_id": "4fd44f30292945e481c7b8a0c8908869",
        "provider:network_type": "local",
        "router:external": false,
        "shared": false,
        "id": "1f370095-98f6-4079-be64-6d3d4a6adcc6",
        "provider:segmentation_id": null
    }
}

DELETE /v2.0/networks/​{network_id}​ 删除网络:删除指定的网络和它所关联的资源
这个操作不接受请求主体并且不返回响应主体
正常响应码 204
错误响应码 非法的操作(unauthorized 401), 数据未发现(itemNotFound 404), 请求冲突(conflict 409)
请求参数

参数 Style 类型 描述
network_id URI csapi:UUID 你感兴趣的网络的ID

Subnets


GET /v2.0/subnets 列出子网:列出指定租户可以访问的子网
这个操作不接受请求主体。
默认策略是返回提交请求的租户的所用有的专有子网,除非这个请求是被一个具有管理权限的用户提交的。你可以通过使用查询参数的字段,控制返回哪些熟悉。你可以通过使用字符串类型的查询参数来过滤返回结果。更多信息,请查看 Filtering and Column Selection in the OpenStack Networking API v2.0 Reference .

正常响应码 200
错误响应码 非法的请求(unauthorized 401)
JSON响应参数:

{
    "subnets": [
        {
            "name": "private-subnet",
            "enable_dhcp": true,
            "network_id": "db193ab3-96e3-4cb3-8fc5-05f4296d0324",
            "tenant_id": "26a7980765d0414dbc1fc1f88cdb7e6e",
            "dns_nameservers": [],
            "allocation_pools": [
                {
                    "start": "10.0.0.2",
                    "end": "10.0.0.254"
                }
            ],
            "host_routes": [],
            "ip_version": 4,
            "gateway_ip": "10.0.0.1",
            "cidr": "10.0.0.0/24",
            "id": "08eae331-0402-425a-923c-34f7cfe39c1b"
        },
        {
            "name": "my_subnet",
            "enable_dhcp": true,
            "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
            "tenant_id": "4fd44f30292945e481c7b8a0c8908869",
            "dns_nameservers": [],
            "allocation_pools": [
                {
                    "start": "192.0.0.2",
                    "end": "192.255.255.254"
                }
            ],
            "host_routes": [],
            "ip_version": 4,
            "gateway_ip": "192.0.0.1",
            "cidr": "192.0.0.0/8",
            "id": "54d6f61d-db07-451c-9ab3-b9609b6b6f0b"
        }
    ]
}

POST /v2.0/subnets 创建子网:在指定的网络上创建子网
默认情况下,OpenStack网络创建 IP v4 子网。为了创建 IP v6子网,你必须指定请求主体中属性ip_version的值为6。OpenStack网络不会尝试从提供的CIDR中获取正确的IP version。如果gateway地址的参数,gateway_ip,没有被指定,OpenStack网络会为子网网关从cidr中分配一个地址。

* Ps: 未完待续...

你可能感兴趣的:(NetworkWork API v2.0)