NetworkWork API v2.0

序 :為什么會(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ù)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,298評(píng)論 6 13
  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個(gè)操作系統(tǒng),...
    sgt_tiger閱讀 13,223評(píng)論 4 72
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評(píng)論 19 139
  • API定義規(guī)范 本規(guī)范設(shè)計(jì)基于如下使用場景: 請(qǐng)求頻率不是非常高:如果產(chǎn)品的使用周期內(nèi)請(qǐng)求頻率非常高,建議使用雙通...
    有涯逐無涯閱讀 2,917評(píng)論 0 6
  • 今天沒上班,在家?guī)蓿瑤殞毴炝撕芏嗦淙~,回來用膠水粘上,各種葉子,寶寶隨性粘。膠水搞得到處都是,但是很開心 各...
    micu閱讀 214評(píng)論 1 6

友情鏈接更多精彩內(nèi)容