乙個python函式示例:
乙個python類的示例:
所有的web請求引數都被封裝在environ這個dictionary中,start-response函式讓人難以理解,其主要作用是設定reponse的http返回碼和http header.返回的list的乙個item對應於http response中的乙個chunk。
2、webob --
webob.dec.wsgify示例:
利用.ini檔案將python物件載入到執行環境中
為被載入的物件進行進行初始化設定。
.ini示例:
python code 示例:
#filter
class logfilter():
…@classmethod
def factory(cls, global_conf, **kwargs):
return logfilter
class showversion():
def __init__(self):
pass
@classmethod
def factory(cls, global_conf, **kwargs):
return showversion()
class calculator():
def __init__(self):
pass
def __call__(self, environ, start_response):
… …@classmethod
def factory(cls, global_conf, **kwargs):
return calculator()
4、routes --
routes :
將url 對映到controller或action上。
靈活的url 對映機制
針對restful的resource定義
python code示例:
>>> class hello(object):
... def __init__(self, req):
... self.request = req
... def get(self):
... return ''''''
... def post(self):
... return 'hello %s!' % self.request.params['name']
>>> hello = rest_controller(hello)
we'll run the same test as before:
.. code-block:: python
>>> hello_world = router()
>>> hello_world.add_route('/', controller=hello)
>>> req = request.blank('/')
>>> resp = req.get_response(hello_world)
>>> print resp
1、openstack架構簡單介紹
nova-api模組對外提供基於nova-api的restful的web api介面。
nova-api模組對各個功能模組的呼叫是通過queue topic的方式非同步地進行,資料傳遞使用database進行。
nova-api模組和各個功能模組在作業系統中都是作為service存在。
2、nova-api初始化過程
1. openstack/bin/nova-api-compute.py
if __name__ == '__main__':
utils.default_flagfile()
flags.flags(sys.argv)
logging.setup()
utils.monkey_patch()
server = service.wsgiservice('osapi_compute')
service.serve(server)
service.wait()
2. nova.service.wsgiservice
class wsgiservice(object):
"""provides ability to launch api from a 'paste' configuration."""
3. nova.wsgi.server
4. openstack/etc/api-paste.ini
[composite:osapi_compute]
use = call:nova.api.openstack.urlmap:urlmap_factory
/: oscomputeversions
/v1.1: openstack_compute_api_v2
/v2: openstack_compute_api_v2
5. nova.api.openstack.compute.apirouter
class apirouter(nova.api.openstack.apirouter):
extensionmanager = extensions.extensionmanager
def create_resource():
return wsgi.resource(controller())
6. nova.api.openstack.wsgi.resource
7. nova.api.openstack.compute.servers.controller
3、nova-api 的類結構模型
4、nova api request 的處理過程
USB host處理過程
在usbh core.c中有乙個函式usbh process 這個函式很重要,main 函式每迴圈一次,它就執行一次,它處理所有usb核心狀態的變化,typedef enum host state 根據這個當前狀態 phost gstate 處於以上哪個狀態的不同,做出不同的處理過程。其中最重要的要...
Hadoop map reduce處理過程
1 在hadoop中,每個mapreduce任務都被初始化為乙個job。每個job又可以分成兩個階段 map階段和reduce階段 map函式接受乙個形式的輸入,然後同樣產生乙個形式的中間輸出,hadoop會負責將所有具有相同結果中間key值的value集合到一起傳給reduce函式,reduce函...
編譯處理過程
編譯,編譯程式讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並且按照作業系統對可執行檔案格式的要求鏈結生成可執行程式。c源程式標頭檔案 預編譯處理 cpp 編譯程式本身 優化程式 匯程式設計序 鏈結程式 可執行檔案 1.編譯預處理 ...