最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenStack API的使用套路分享

 更新時(shí)間:2023年02月16日 14:03:25   作者:TtrOps  
近期有openstack和vmware相關(guān)的開(kāi)發(fā)需求,N年前從事虛擬化運(yùn)維的時(shí)候玩過(guò)了,所以對(duì)它倆的API使用套路早忘得一干二凈。這次借這個(gè)機(jī)會(huì)把使用套路做個(gè)文檔并分享出來(lái),希望可以幫到有需要的盆友

寫(xiě)在前面

近期有openstack和vmware相關(guān)的開(kāi)發(fā)需求,N年前從事虛擬化運(yùn)維的時(shí)候玩過(guò)了,所以對(duì)它倆的API使用套路早忘得一干二凈。這次借這個(gè)機(jī)會(huì)把使用套路做個(gè)文檔并分享出來(lái),希望可以幫到有需要的盆友。本篇先分享openstack的API使用套路,后續(xù)再分享vmware api的使用套路。在本篇中,只給出了1個(gè)小例子,更多例子可自行去寫(xiě)代碼,API的使用套路當(dāng)然是萬(wàn)變不離其宗。

OpenStack官方API文檔:https://docs.openstack.org/zed/api/

還有最重要的一點(diǎn),請(qǐng)確保你已經(jīng)搭建好openstack環(huán)境

獲取token

https://docs.openstack.org/api-quick-start/api-quick-start.html

通過(guò)上面的API頁(yè)面可得知,認(rèn)證服務(wù)的API是:http://controller:5000/v3/

使用python代碼請(qǐng)求token

import?requests
import?json

USER?=?"admin"
PASSWORD?=?"xxxxxx"
DOMAIN?=?"Default"
PROJECT?=?"admin"

TOKEN_URL?=?"http://10.0.0.10:5000/v3/auth/tokens?nocatalog"

def?getToken():
????reqJson?=?{
????????"auth":{
????????????"identity":{
????????????????"methods":["password"],
????????????????"password":{
????????????????????"user":{
????????????????????????"domain":{"name":DOMAIN},
????????????????????????"name":USER,
????????????????????????"password":PASSWORD
????????????????????}
????????????????}
????????????},
????????????"scope":{
????????????????"project":{
????????????????????"domain":{
????????????????????????"name":DOMAIN
????????????????????},
????????????????????"name":PROJECT
????????????????}
????????????}
????????}
????}
????payload?=?json.dumps(reqJson)
????headers?=?{
????'Content-Type':?'application/json'
????}

????response?=?requests.request("POST",?TOKEN_URL,?headers=headers,?data=payload)

????return?response.headers.get("X-Subject-Token")


if?__name__?==?"__main__":
????token?=?getToken()
????print(token)

獲取到的token如下:

gAAAAABj2cwy_AOflA6gDQiR8fGK0VzLGawXPScsKB-1hIp46JdKCY68Nuz8ZQ8-USTcyY_3cCoJRpIsq8OrcZl8ztMSkUU26VF_dnkBLm4lXAyM3dZF8lHWoqmEHOevfuC0IwqQdQ66FTUF7Nl9sFElFlB39QEuSR1mZSTBrJy6bwycd8a_C5c

小栗子:獲取所有實(shí)例詳情

假設(shè)有個(gè)需求,獲取所有實(shí)例的詳情信息。提到虛擬機(jī)實(shí)例,那肯定就是nova服務(wù),所以要知道nova服務(wù)的api。在之前訪問(wèn)API的頁(yè)面中,就是Compute服務(wù)。服務(wù)端點(diǎn)是http://controller:8774/v2.1

Compute API 官方文檔:https://docs.openstack.org/api-ref/compute/

openstack的api是完全遵循REST風(fēng)格的api,通過(guò)上面的api文檔可得知,請(qǐng)求方法是GET,點(diǎn)開(kāi)detail,可以看到更詳細(xì)的API說(shuō)明。

下面使用python寫(xiě)代碼

import?requests
import?json

USER?=?"admin"
PASSWORD?=?"xxxxxxxxx"
DOMAIN?=?"Default"
PROJECT?=?"admin"

TOKEN_URL?=?"http://10.0.0.10:5000/v3/auth/tokens?nocatalog"
SERVER_DETAIL_URL?=?"http://10.0.0.10:8774/v2.1/servers/detail"

def?getToken():
????reqJson?=?{
????????"auth":{
????????????"identity":{
????????????????"methods":["password"],
????????????????"password":{
????????????????????"user":{
????????????????????????"domain":{"name":DOMAIN},
????????????????????????"name":USER,
????????????????????????"password":PASSWORD
????????????????????}
????????????????}
????????????},
????????????"scope":{
????????????????"project":{
????????????????????"domain":{
????????????????????????"name":DOMAIN
????????????????????},
????????????????????"name":PROJECT
????????????????}
????????????}
????????}
????}
????payload?=?json.dumps(reqJson)
????headers?=?{
????'Content-Type':?'application/json'
????}

????response?=?requests.request("POST",?TOKEN_URL,?headers=headers,?data=payload)

????return?response.headers.get("X-Subject-Token")

def?serversDetail(token):
????headers?=?{
????'X-Auth-Token':?token
????}
????response?=?requests.request("GET",?SERVER_DETAIL_URL,?headers=headers)
????serversList?=?response.json().get("servers")
????for?s?in?serversList:
????????status?=?s.get("status")
????????name?=?s.get("name")
????????ip?=?s.get("addresses").get("my-net")[0].get("addr")
????????print(status,?name,?ip)

if?__name__?==?"__main__":
????token?=?getToken()
????serversDetail(token)

結(jié)果

(u'SHUTOFF', u'app-2', u'172.18.45.60')
(u'SHUTOFF', u'app-4', u'172.18.45.34')
(u'SHUTOFF', u'app-5', u'172.18.45.71')
(u'SHUTOFF', u'app-3', u'172.18.45.67')
(u'SHUTOFF', u'app-1', u'172.18.45.26')
(u'SHUTOFF', u'web', u'172.18.45.38')

到此這篇關(guān)于OpenStack API的使用套路分享的文章就介紹到這了,更多相關(guān)OpenStack API內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

江陵县| 明星| 淳安县| 汾西县| 南木林县| 江源县| 美姑县| 鄂尔多斯市| 井陉县| 陈巴尔虎旗| 定边县| 扬州市| 江西省| 灵璧县| 宜兴市| 嵊泗县| 辽阳市| 安平县| 临城县| 荣成市| 嘉兴市| 常熟市| 宜宾市| 罗山县| 阜新市| 巫溪县| 普陀区| 梨树县| 怀远县| 历史| 红安县| 来凤县| 浦东新区| 西林县| 鹤庆县| 漳州市| 湖北省| 文水县| 邵东县| 东源县| 博湖县|