如何拓展OpenStack nova

2021-07-06 01:08:51 字數 2488 閱讀 5633

openstack nova api有核心資源與擴充套件資源,這裡記錄的是如何拓展openstack nova api的拓展資源

1./nova/api/openstack/compute/contrib目錄下是nova的擴充套件資源,在此目錄下建立我們的**,檔名為my_extension.py,應為類名的小寫,內容如下例

from nova.api.openstack import extensions

from nova.api.openstack import wsgi

import webob

from webob import exc

from nova import db

from nova import exception

from nova.api.openstack import extensions

authorize = extensions.extension_authorizer('compute', 'my_extension')

class myextensioncontroller(wsgi.controller):

def index(self, req):

result = {}

context = req.environ['nova.context']

authorize(context)

result["key"] = "index"

return result

def create(self, req):

result = {}

context = req.environ['nova.context']

authorize(context)

result["key"] = "create"

return result

def show(self, req, id):

result = {}

context = req.environ['nova.context']

authorize(context)

result["key"] = "show"

return result

def update(self, req):

result = {}

context = req.environ['nova.context']

authorize(context)

result["key"] = "update"

return result

def delete(self, req, id):

return webob.response(status_int=202)

class my_extension(extensions.extensiondescriptor):

"""my first extension."""

name = "myextension"

alias = "os-my-extension"

namespace = "........"

updated = "....."

def get_resources(self):

resources =

res = extensions.resourceextension('os-my-extension',

myextensioncontroller(),

member_actions={})

return resources

def get_controller_extensions(self):

controller = myextensioncontroller()

extension = extensions.controllerextension(self, 'servers', controller)

return [extension]

重啟nova服務,用如下**測試

呼叫的將是show函式,content內容為{"key":"show"}

或者使用curl

如何拓展設計思維

近期參加小組週會,其中乙個環節是營銷設計組的作品點評,雖然自己有很長一段時間沒有設計這類需求,但一直在關注,平時不定期的收藏了一些和網頁,拿出來與大家分享,並且從幾個方面來談談怎樣的設計能給人留下深刻印象。什麼是設計?時勢結合 緊隨潮流,激發思想和感情上的共鳴 結合當前社會事件如釣魚島 奧運會 中秋...

如何拓展你的職場人脈

在職場工作中,人脈的積累很重要,可能別人對你的乙個正面評價就助你扶搖直上,也有可能是因為一句負面評價就斷送了你公升職的機會,所以我們在工作中要經常注意與自己身邊的同事相處,好的人脈關係對自己的職業生涯大有益處!下面讓我們看看什麼方法能夠拓展自己的人脈!1 工作中你要做的很優秀,優秀的人總能聚攬有效而...

如何拓展jwt返回的資料

預設的返回值僅有token,我們還需在返回值中增加username和id,方便在客戶端頁面中顯示當前登陸使用者 通過修改該檢視的返回值可以完成我們的需求。在user utils.py中,建立 def jwt response payload handler token,user none,reque...