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: 未完待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,865评论 6 13
  • 第一章 OpenStack基础 OpenStack管理的资源及提供的服务OpenStack做为一个操作系统,...
    sgt_tiger阅读 12,863评论 4 72
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 2,519评论 0 6
  • 今天没上班,在家带娃,带宝宝去捡了很多落叶,回来用胶水粘上,各种叶子,宝宝随性粘。胶水搞得到处都是,但是很开心 各...
    micu阅读 177评论 1 6