python snap7 簡書 簡書

2021-10-12 11:47:10 字數 1709 閱讀 3396

1.

建立卷可以通過命令傳送請求,例如cinder create 1

2.由cinder-api處理,**在/cinder/cmd/cinder-api,這是標準的openstack web應用,會讀api-paste.ini並且傳osapi_volume引數

3.api-paste在正常請求會走v2api,最終定位到cinder.api.v2.router:apirouter.factory

4.這個router會響應volume的建立行為,使用/cinder/api/v2/volumes.py的volumecontroller的create()

5.首先是檢查一下volume type,獲取metadata、snapshot等引數進行檢查,然後呼叫volume_api

6.volume_api是讀配置項volume_api_class,一般就是cinder.volume.api.api,然後使用flow_engine來建立

7.這會呼叫/cinder/volume/flows/api/create_volume.py,檢查quota之類的,並且建立volumecasttask

8.接著是需要呼叫scheduler_rpcapi交給scheduler處理了,而這個函式是早在/cinder/volume/api.py的時候建立的,**在/cinder/scheduler/rpcapi.py

9.這只是scheduler的客戶端,通過mq非同步呼叫乙個名為create_volume的函式

10.cinder-scheduler是乙個標準的openstack wsgi應用,監聽mq,因此我們只要在/cinder/scheduler/manager.py找到create_volume函式即可

11.scheduler則是使用自己的flow類來建立volume,這是它傳入了driver類,這是同配置項scheduler_driver指定的,一般是cinder.scheduler.******.******scheduler

12.實際上通過/cinder/scheduler/manager.py的**可以看到,使用cinder.scheduler.chance.chancescheduler或cinder.scheduler.******.******scheduler最後都會用cinder.scheduler.filter_scheduler.filterscheduler

13.然後我們在/cinder/scheduler/filter_scheduler.py看到schedule_create_volume(),首先更新下資料庫,然後呼叫/cinder/volume/rpcapi.py的create_volume(),也就是通過mq請求create_volume()

14.這個訊息回由cinder-volume的manager來處理,這個方法也是使用flow(注意與前面api和scheduler用的不是同乙個檔案),其中最重要的是執行createvolumefromspectask這個任務

15.直接看/cinder/volume/flows/manager/create_volume.py的execute(),其中它要調乙個driver,這是同配置項volume_driver指定的,我們是用cinder.volume.drivers.rbd.rbddriver

16.然後根據傳入的型別,例如raw,直接呼叫create_functor(),這會呼叫內部函式_create_raw_volume(),使用driver的create_volume()

17.最後我們也是呼叫rbd的python library來建立卷

python snap7的安裝記錄

網上其他人的資料嘗試上去總感覺不靠譜,很多內容不是一篇網上的文章就能解決 不是這裡不對就是那裡看不懂 做個簡單的記錄把這次實現的過程紀錄下,可能累贅,但至少有點用 本以為能很輕鬆的安裝上,結果測試的時候顯示找不到庫,還是老老實施用windows的安裝方法來,參考鏈結1 感覺是比較專業和靠譜的 解壓的...

Cordova FrameWork7開發簡單教程

1 環境要有 乙個不會搭建環境的程式設計師,要麼學,要麼退出程式設計 環境這裡我只說需要什麼 1 androidstudio 3.0 2.幾的版本總會出問題.我喜歡用新版本 2 cordova8 參考我之前的部落格,如果cordova版本低就用低版本的androidstudio 3 npm,node...

Redhat7安裝Madagascar簡易教程

madagascar 是當前地球物理界比較流行和熱門的一套開源軟體 已經遷移到git上,由於更新速度快 開源的特性,再加上fomel等人的大力推廣,發展勢頭很猛,有超越su的趨勢。1.二 依賴軟體包 的安裝在下面的 根據自己系統版本選擇下軟體依賴包。redhat7已經更新python為2.7,所以這...