序 :為什么會(huì)有這篇文章
1 寫這篇翻譯的目的是為了記錄自己的學(xué)習(xí)成果。
2 順手學(xué)習(xí)一下如何使用Markdown。
- 本文的API翻譯省略部分 不常用API方法 及 不了解的API方法。所以,下面的鏈接放送給大家: NetworkWork API v2.0 官網(wǎng)原文(English), 猛戳這里!
- 剛剛學(xué)習(xí)Markdown,使用不當(dāng)之處請(qǐng)不吝賜教
- 受水平所限,如果出現(xiàn)語法或語義翻譯錯(cuò)誤,請(qǐng)指出
- [推薦]簡書真是一個(gè)好工具?。。。?!簡書Markdown新手指南+Markdown中文手冊(cè) 有了簡書,才發(fā)現(xiàn)文字之美
正文開始啦
OpenStack管理的Computer服務(wù)的設(shè)備間使用的是虛擬網(wǎng)絡(luò)服務(wù)。Networking (neutron) API v2.0 結(jié)合了API v1.1 以及 一些必要的互聯(lián)網(wǎng)地址管理(IPAM)功能。允許用戶綁定IP地址塊 和 通過OpenStack社交網(wǎng)絡(luò)進(jìn)行其他網(wǎng)絡(luò)配置設(shè)置。你可以從塊中選擇一個(gè)特定的IP地址 或 讓OpenStack 網(wǎng)絡(luò)選擇第一個(gè)有效的IP地址。
Networks
GET /v2.0/networks List networks:列出特定租戶有權(quán)訪問的網(wǎng)絡(luò)。
* 雖然API上是這么寫的。但是,在安裝好的OpenStack管理環(huán)境上利用命令(neutron net-list)進(jìn)行測試時(shí)發(fā)現(xiàn),可以看到當(dāng)前租戶自己創(chuàng)建的內(nèi)網(wǎng)和外網(wǎng)和全部的外部網(wǎng)絡(luò)。但是路由的list命令(neutron router-list)只能看到當(dāng)前租戶自身的路由。不明白為什么和API描述的不一致。
通過使用查詢參數(shù),你可以控制返回哪些屬性。更多信息,請(qǐng)查看 Filtering and Column Selection in the OpenStack Networking API v2.0 Reference .
正常返回碼 200
異常返回碼 非法的(401)
響應(yīng)參數(shù):
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| admin_state_up 來自O(shè)penStack中國的解釋 | plain | xsd:bool | 網(wǎng)絡(luò)的管理狀態(tài),up (true) or down (false) |
| id | plain | csapi:uuid | 網(wǎng)絡(luò)的id(network id) |
| name | plain | xsd:string | 網(wǎng)絡(luò)名稱(network name) |
| shared | plain | xsd:bool | 表示這個(gè)網(wǎng)絡(luò)是否被共享給全部租戶。默認(rèn)情況下,只有管理用戶可以改變這個(gè)值 |
| subnets | plain | xsd:dict | 相關(guān)聯(lián)的子網(wǎng) |
| tenant_id | plain | csapi:uuid | 租戶id(tenant id) |
【疑問】
- 話說xsd、csapi好像是web service里的東東。本人對(duì)這個(gè)玩意兒已經(jīng)無力再愛了
- style:plain 指的是get或post請(qǐng)求的‘contentType’???大神給解答一下
JOSN返回?cái)?shù)據(jù):這個(gè)操作不接受請(qǐng)求主體。
{
"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 創(chuàng)建網(wǎng)絡(luò):創(chuàng)建一個(gè)網(wǎng)絡(luò)
這個(gè)操作不需要請(qǐng)求主體。你在URI中指定的租戶ID(tenant ID)是創(chuàng)建網(wǎng)絡(luò)的租戶的ID。在操作的請(qǐng)求主體中一個(gè)管理員用戶可以指定另一個(gè)租戶的ID,這個(gè)被指定ID的租戶是這個(gè)網(wǎng)絡(luò)的擁有者。
正常返回碼 201
錯(cuò)誤返回碼 錯(cuò)誤的請(qǐng)求(badRequest 400),非法的(unauthorized 401)
請(qǐng)求參數(shù)
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| admin_state_up (可選) | plain | xsd:bool | 網(wǎng)絡(luò)的管理狀態(tài),up (true) or down (false) |
| name (可選) | plain | xsd:string | 網(wǎng)絡(luò)的名稱。一個(gè)請(qǐng)求主體是可選的:如果包含這個(gè)參數(shù),它可以指定這個(gè)操作屬性。 |
| shared (可選) | plain | xsd:bool | 表示這個(gè)網(wǎng)絡(luò)是否被共享給全部租戶。默認(rèn)情況下,只有管理用戶可以改變這個(gè)值。 |
| tenant_id (可選) | plain | xsd:string | 僅管理模式。這個(gè)UUID(tenant_id)的租戶將是這個(gè)網(wǎng)絡(luò)的持有者。發(fā)送這個(gè)創(chuàng)建命令的租戶和命令中被指定的租戶(網(wǎng)絡(luò)的持有者)可以不是一個(gè)租戶。然而,只有管理用戶可以指定不是他們自己的租戶ID。你無法通過授權(quán)策略更改這個(gè)值。 |
返回參數(shù)
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| admin_state_up | plain | xsd:bool | 網(wǎng)絡(luò)的管理狀態(tài),up (true) or down (false) |
| id | plain | csapi:uuid | 網(wǎng)絡(luò)id(network id) |
| name | plain | xsd:string | 網(wǎng)絡(luò)名稱 |
| shared | plain | xsd:bool | 表示這個(gè)網(wǎng)絡(luò)是否被共享給全部租戶。默認(rèn)情況下,只有管理用戶可以改變這個(gè)值 |
| status | plain | xsd:string | 網(wǎng)絡(luò)的狀態(tài) |
| subnets | plain | xsd:dict | 相關(guān)聯(lián)的子網(wǎng) |
| tenant_id | plain | csapi:uuid | 所屬租戶id(tenant id) |
JSON請(qǐng)求數(shù)據(jù):
{
"network": {
"name": "sample_network",
"admin_state_up": true
}
}
JSON返回?cái)?shù)據(jù):
{
"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 批量創(chuàng)建網(wǎng)絡(luò):在一個(gè)請(qǐng)求中創(chuàng)建多個(gè)網(wǎng)絡(luò)
在請(qǐng)求主體中,指定一個(gè)網(wǎng)絡(luò)列表
批量操作總是原子性的。全部或沒有網(wǎng)絡(luò)在請(qǐng)求主體中被創(chuàng)建。
正常返回碼 201
錯(cuò)誤返回碼 錯(cuò)誤的請(qǐng)求(badRequest 400),非法的(unauthorized 401)
請(qǐng)求參數(shù)
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| admin_state_up (可選) | plain | xsd:bool | 網(wǎng)絡(luò)的管理狀態(tài),up (true) or down (false) |
| name | plain | xsd:string | 網(wǎng)絡(luò)的名稱。一個(gè)請(qǐng)求主體是可選的:如果包含這個(gè)參數(shù),它可以指定這個(gè)操作屬性。 |
| shared (可選) | plain | xsd:bool | 表示這個(gè)網(wǎng)絡(luò)是否被共享給全部租戶。默認(rèn)情況下,只有管理用戶可以改變這個(gè)值。 |
| tenant_id (可選) | plain | xsd:string | 僅管理模式。這個(gè)UUID(tenant_id)的租戶將是這個(gè)網(wǎng)絡(luò)的持有者。發(fā)送這個(gè)創(chuàng)建命令的租戶和命令中被指定的租戶(網(wǎng)絡(luò)的持有者)可以不是一個(gè)租戶。然而,只有管理用戶可以指定不是他們自己租戶的租戶ID。你無法通過授權(quán)策略更改這個(gè)值。 |
返回參數(shù)
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| admin_state_up | plain | xsd:bool | 網(wǎng)絡(luò)的管理狀態(tài),up (true) or down (false) |
| id | plain | csapi:uuid | 網(wǎng)絡(luò)id(network id) |
| name | plain | xsd:string | 網(wǎng)絡(luò)名稱 |
| shared | plain | xsd:bool | 表示這個(gè)網(wǎng)絡(luò)是否被共享給全部租戶。默認(rèn)情況下,只有管理用戶可以改變這個(gè)值 |
| status | plain | xsd:string | 網(wǎng)絡(luò)的狀態(tài) |
| subnets | plain | xsd:dict | 相關(guān)聯(lián)的子網(wǎng) |
| tenant_id | plain | csapi:uuid | 所屬租戶id(tenant id) |
JSON請(qǐng)求數(shù)據(jù):
{
"networks": [
{
"name": "sample_network3",
"admin_state_up": true
},
{
"name": "sample_network4",
"admin_state_up": true
}
]
}
JSON返回?cái)?shù)據(jù):
{
"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} 展示網(wǎng)絡(luò):展現(xiàn)指定的網(wǎng)絡(luò)的信息
通過使用查詢參數(shù),你可以控制返回哪些屬性。更多信息,請(qǐng)查看 Filtering and Column Selection in the OpenStack Networking API v2.0 Reference .
正常返回碼 200
異常返回碼 非法的(unauthorized 401),數(shù)據(jù)未找到(itemNotFound 404)
請(qǐng)求參數(shù):
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| network_id | URI | csapi:UUID | 你感興趣的網(wǎng)絡(luò)的UUID。 |
響應(yīng)參數(shù):
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| admin_state_up | plain | xsd:bool | 網(wǎng)絡(luò)的管理狀態(tài),up (true) or down (false) |
| id | plain | csapi:uuid | 網(wǎng)絡(luò)的id(network id) |
| name | plain | xsd:string | 網(wǎng)絡(luò)名稱(network name) |
| shared | plain | xsd:bool | 表示這個(gè)網(wǎng)絡(luò)是否被共享給全部租戶。默認(rèn)情況下,只有管理用戶可以改變這個(gè)值 |
| status | plain | xsd:string | 網(wǎng)絡(luò)狀態(tài) |
| subnets | plain | xsd:dict | 相關(guān)聯(lián)的子網(wǎng) |
| tenant_id | plain | csapi:uuid | 租戶id(tenant id) |
JSON響應(yīng)數(shù)據(jù):
{
"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}? 更新網(wǎng)絡(luò):更新指定的網(wǎng)絡(luò)
正常響應(yīng)碼 200
錯(cuò)誤響應(yīng)碼 失敗的請(qǐng)求(badRequest 400), 非法的請(qǐng)求(unauthorized 401), 禁止的操作( forbidden 403), 數(shù)據(jù)未找到(itemNotFound 404)
請(qǐng)求參數(shù)
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| network_id | URI | csapi:UUID | 你感興趣的網(wǎng)絡(luò)的ID |
| admin_state_up (可選) | plain | xsd:bool | 網(wǎng)絡(luò)的管理狀態(tài),up (true) or down (false) |
| name | plain | xsd:string | 網(wǎng)絡(luò)名稱 |
| shared (可選) | plain | xsd:bool | 僅管理模式。表示這個(gè)網(wǎng)絡(luò)是否被共享給全部租戶。 |
| tenant_id (可選) | plain | csapi:uuid | 網(wǎng)絡(luò)持有者的租戶ID。只有管理用戶可以指定不是他們自己租戶的租戶ID。你無法通過授權(quán)策略更改這個(gè)值。 |
響應(yīng)參數(shù):
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| admin_state_up | plain | xsd:bool | 網(wǎng)絡(luò)的管理狀態(tài),up (true) or down (false) |
| id | plain | csapi:uuid | 網(wǎng)絡(luò)的id(network id) |
| name | plain | xsd:string | 網(wǎng)絡(luò)名稱(network name) |
| shared | plain | xsd:bool | 表示這個(gè)網(wǎng)絡(luò)是否被共享給全部租戶。默認(rèn)情況下,只有管理用戶可以改變這個(gè)值 |
| status | plain | xsd:string | 網(wǎng)絡(luò)狀態(tài) |
| subnets | plain | xsd:dict | 相關(guān)聯(lián)的子網(wǎng) |
| tenant_id | plain | csapi:uuid | 租戶id(tenant id) |
JSON請(qǐng)求數(shù)據(jù):
{
"network": {
"name": "sample_network_5_updated"
}
}
JSON響應(yīng)數(shù)據(jù):
{
"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}? 刪除網(wǎng)絡(luò):刪除指定的網(wǎng)絡(luò)和它所關(guān)聯(lián)的資源
這個(gè)操作不接受請(qǐng)求主體并且不返回響應(yīng)主體
正常響應(yīng)碼 204
錯(cuò)誤響應(yīng)碼 非法的操作(unauthorized 401), 數(shù)據(jù)未發(fā)現(xiàn)(itemNotFound 404), 請(qǐng)求沖突(conflict 409)
請(qǐng)求參數(shù)
| 參數(shù) | Style | 類型 | 描述 |
|---|---|---|---|
| network_id | URI | csapi:UUID | 你感興趣的網(wǎng)絡(luò)的ID |
Subnets
GET /v2.0/subnets 列出子網(wǎng):列出指定租戶可以訪問的子網(wǎng)
這個(gè)操作不接受請(qǐng)求主體。
默認(rèn)策略是返回提交請(qǐng)求的租戶的所用有的專有子網(wǎng),除非這個(gè)請(qǐng)求是被一個(gè)具有管理權(quán)限的用戶提交的。你可以通過使用查詢參數(shù)的字段,控制返回哪些熟悉。你可以通過使用字符串類型的查詢參數(shù)來過濾返回結(jié)果。更多信息,請(qǐng)查看 Filtering and Column Selection in the OpenStack Networking API v2.0 Reference .
正常響應(yīng)碼 200
錯(cuò)誤響應(yīng)碼 非法的請(qǐng)求(unauthorized 401)
JSON響應(yīng)參數(shù):
{
"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 創(chuàng)建子網(wǎng):在指定的網(wǎng)絡(luò)上創(chuàng)建子網(wǎng)
默認(rèn)情況下,OpenStack網(wǎng)絡(luò)創(chuàng)建 IP v4 子網(wǎng)。為了創(chuàng)建 IP v6子網(wǎng),你必須指定請(qǐng)求主體中屬性ip_version的值為6。OpenStack網(wǎng)絡(luò)不會(huì)嘗試從提供的CIDR中獲取正確的IP version。如果gateway地址的參數(shù),gateway_ip,沒有被指定,OpenStack網(wǎng)絡(luò)會(huì)為子網(wǎng)網(wǎng)關(guān)從cidr中分配一個(gè)地址。
* Ps: 未完待續(xù)...