openstack源碼閱讀技巧(逐步更新中……)

1.日誌路徑 /var/log/模塊名,可以根據日誌佐證代碼追蹤路線是否正確

1.在dashboard上進行創建鏡像上傳鏡像等操作,產生的日誌不一定在那一個節點,是根據調度算法調度的,所以需要具體去看

2.源代碼報紅,ctrl+鼠標直接點函數進不去或者點進去但是能看到的函數不全,需要加載資源


2.glance上傳源碼分析參考文檔
    https://blog.csdn.net/lzw06061139/article/details/51540456


3.openstack官方文檔路徑(從介紹模塊開始)
https://www.openstack.org/software/project-navigator/openstack-components#openstack-services

4.horizon結構圖

5.horizon構建自己的dashboard

  • 官方demo https://docs.openstack.org/horizon/latest/contributor/tutorials/dashboard.html
  • 錯誤日誌:/var/log/httpd/
  • 代碼結構分析:
.
├── horizon # horizon通用組件庫
│   ├── base.py # 定義了horizon模塊中從HorizonSite到Panel的各種組件的類庫,並且用類HorizonSite爲整個項目實例化了一個horizon對象
│   ├── browsers # 瀏覽器基類
│   ├── conf # 配置文件
│   ├── context_processors.py # 自動設置相應上下文變量來解析模板的上下文處理器,他把HORIZON_CONFIG字典自動加到了Context上下文變量中傳給模板
│   ├── contrib # 多語言映射關係
│   ├── decorators.py # 用於方便取得網頁請求的當前組件和權限認證
│   ├── exceptions.py # 異常處理
│   ├── forms # form表單基類包
│   ├── hacking
│   ├── __init__.py
│   ├── karma.conf.js
│   ├── loaders.py # 幫助horizon模塊使用自定義的方式加載模板而非使用Django自帶的模板加載器
│   ├── locale # 國際化語言包
│   ├── management # manage.py命令的startdash/startpanel命令選項
│   ├── messages.py # 消息通信
│   ├── middleware # 中間件,用來處理收到的異常和網頁請求及迴應需要的附加的動作
│   ├── notifications.py
│   ├── __pycache__
│   ├── site_urls.py # URL相關
│   ├── static # 靜態文件包
│   ├── tables # table基類包
│   ├── tabs # tab基類包
│   ├── templates # 模板文件基類
│   ├── templatetags # 模板標籤基類
│   ├── test # 測試包
│   ├── themes.py
│   ├── utils # 實用工具包
│   ├── version.py # 版本信息
│   ├── views.py # 視圖
│   └── workflows # 工作流機制包
├── openstack_dashboard # horizon各個面板的具體實現代碼
│   ├── api # 與外部api交互的方法和接口對象
│   ├── conf # nova、cinder等API訪問權限控制,叫 xxx_policy.json,裏面定義了鑑權用的rules
│   ├── context_processors.py # 上下文處理器
│   ├── contrib
│   ├── dashboards # Horizon界面展示各個模塊實現目錄
│   │   ├── admin # 管理員界面,管理登錄後可見,左側的管理員面板
│   │   │   ├── instances # 雲主機管理界面
│   │   │   │   ├── forms.py # form表單實現
│   │   │   │   ├── __init__.py
│   │   │   │   ├── panel.py # 在應用程序中註冊面板並定義面板屬性
│   │   │   │   ├── __pycache__
│   │   │   │   ├── tables.py # table實現
│   │   │   │   ├── tabs.py # tab實現
│   │   │   │   ├── templates # 雲主機html界面模板
│   │   │   │   ├── tests.py # 測試
│   │   │   │   ├── urls.py # url映射,描述了當瀏覽器網址指向那一級目錄
│   │   │   │   └── views.py # url映射的視圖,包含頁面的業務邏輯,該文件裏的函數通常叫做視圖
│   │   │   ├── dashboard.py # 使用Horizon註冊應用程序並設置dashboard屬性
│   │   ├── identity # 項目、用戶管理界面
│   │   ├── __init__.py
│   │   ├── project # 普通用戶登錄後看到的項目面板
│   │   ├── __pycache__
│   │   ├── settings # 設置界面,右上角的設置面板,裏面可設置語言、時區、更改密碼
│   ├── django_pyscss_fix
│   ├── enabled # 控制導航加載哪些模塊顯示出來
│   ├── exceptions.py # 異常處理
│   ├── hooks.py
│   ├── __init__.py
│   ├── karma.conf.js
│   ├── local # 本地配置文件
│   ├── locale # 本地國家化語言包
│   ├── management # 定義安裝apache、horizon等是配置文件的模板文件
│   ├── policy.py # 策略
│   ├── __pycache__
│   ├── settings.py # 設置
│   ├── static # 靜態包
│   ├── templates # 模板包
│   ├── templatetags # 模板標籤包
│   ├── test # 測試包
│   ├── themes
│   ├── theme_settings.py
│   ├── urls.py # URL模型
│   ├── usage # 概況頁面資源統計實現包
│   ├── utils # 工具包
│   ├── views.py
│   ├── wsgi # wsgi包
│   └── wsgi.py

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章