openstack之horizon原始碼分析

2021-09-07 07:15:02 字數 1233 閱讀 9972

horizon是基於django webframework開發的標準的python wsgi程式,django的設計專注於**的高度可重用,信奉dry原則,一切物件導向,而horizon可以說高度match了django的設計風格。**程式基本有三部分組成,業務邏輯**(python),靜態檔案(js/css),模板(python中的 jinja,mako,nodejs中有jade), 使用者向webserver發起請求之後,server程式找到當前url對應的模板,填充模板變數(輸出成字串形式的html原始碼),返回給瀏覽器,瀏覽器渲染頁面。一般模板語言都有繼承(extend),插入(include)等特性,來提高頁面的復用率。

horizon做得就更徹底一些,它將頁面上所有元素模組化,網頁中一些常見元素,表單,**,標籤頁,全部封裝成python類,每個元件有自己 對應的一小塊html模板.當渲染整個頁面的時候,horizon先找到當前頁面有多少元件,將各個元件分別進行渲染變成一段html片段,最後拼裝成一 個完整的html頁面,返回瀏覽器。

總結horizon的特點:

1、horizon設計分為三層:dashboard->panelgroup->panel 

a、project普通使用者登入後看到的是專案面板

b、admin管理登入看到可見左測的管理員面板

c、settings右上角的設定面板

d、identity不同的角色登入之後,左側的「身份」面板,可設定專案使用者

e、交換機管理面板

2、專案結構

horizon專案核心的**包有兩個:openstack-dashboardpython-django-horizon

第乙個包是控制台**的具體實現,是乙個基於django框架的web應用,安裝後主要檔案在/usr/share/openstack-dashboard/路徑下。第二個包是通用的一些python類庫,也包括一些靜態檔案,安裝後在/usr/lib/python2.7/dist-packages/horizon下。定製化開發,主要是修改業務**,基本不需要修改python-django-horizon,所以我們分析的重點放在openstack-dashboard這個包上。

圖中的7個名詞在**中都可以對應上,**的層級結構還是很清晰的。

OpenStack 部署管理服務horizon

1 控制端安裝 horizon root linux host1 yum install openstack dashboard root linux host1 vim etc openstack dashboard local settings 159 openstack host 192.16...

OpenStack之Swift swift表結構

表account stat id名稱 型別 長度 預設值備註 account text created at text put timestamp text 0delete timestamp text 0container count integer object count integer 0b...

Openstack之KeyStone學習(一)

openstack 是乙個美國國家航空航天局和 rackspace 合作研發的雲計算軟體,以 apache 許可證授權,並且是乙個 自由軟體和開放源 專案。openstack 是iaas 基礎設施即服務 平台,讓任何人都可以自行建立和提供雲端 運算服務。以下是5個 openstack 的重要構成部分...