中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何擴展OpenStack Dashboard

發布時間:2022-01-14 18:48:39 來源:億速云 閱讀:166 作者:柒染 欄目:云計算

這篇文章將為大家詳細講解有關如何擴展OpenStack Dashboard,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Horizon簡介

Horizon是OpenStack的一個子項目,用于提供一個Web前端控制臺(稱為Dashboard),以此來展示OpenStack的功能。通常情況下,我們都是從Horizon、Dashboard開始來了解OpenStack的。實際上,Horizon并不會為OpenStack添加任何一個新的功能,它只是使用了OpenStack部分API功能,因此,我們可以擴展Horizon的功能,擴展Dashboard。

擴展Dashboard

Dashboard概覽

如何擴展OpenStack Dashboard

圖2-1-1 Dashboard界面

一個Dashboard(在django里稱為app)通常情況下由四個組件組成,分別為panel、tab(可選)、table和view,如圖2-1-1所示。其中,panel、tab和table用于導航的,真正展示數據的在view里面。它們之間的關系是panel包含tab,tab包含table,view包含table或者tab。

通過查看Horizon的源碼,可從其目錄結構看出它們之間的關系,如圖2-1-2所示。

如何擴展OpenStack Dashboard

圖2-1-2 Horizon源碼目錄結構

下面,我會以在admin這個Dashboard里擴展添加一個monitoring的panel為例,介紹擴展OpenStack Dashboard的流程。

定義panel

首先介紹Dashboard.py這個文件,它位于每個Dashboard的根目錄,其作用是注冊Dashboard(django里稱為app)以及設置Dashboard的屬性,比如Dashboard里有哪些panel。

打開admin目錄下的Dashboard.py文件,設置SystemPanels有monitoring的panel:

如何擴展OpenStack Dashboard

我們可以在Dashboard.py文件里隨意的添加、刪除panel屬性,這對于調試程序的時候很方便。

然后在amdin目錄下創建一個monitoring的文件夾,并在monitoring文件夾里創建panel.py文件,定義panel:

如何擴展OpenStack Dashboard

這是最簡單的panel,只定義了其名字。注意:slug屬性的值要與monitoring文件夾名字一樣。當定義完成后,要記得將其注冊到Dashboard里。

定義url

Horizon是基于Django框架,程序是通過url來找到panel的,因此,需要在monitoring目錄下建立urls.py文件,定義url:

如何擴展OpenStack Dashboard

定義table

table用于展示數據,Horizon提供了DataTable基類,我們可以通過繼承DataTable來實現自定義的table:

如何擴展OpenStack Dashboard

在MonitoringTable里定義了兩列resources和percent。

定義view

view是用來集成table或者tab的,Horizon提供了多種vie類,下面使用DataTableView來自定義我們自己的IndexView:

如何擴展OpenStack Dashboard

在IndexView里定義好table_class和template_name的屬性值,同時需要定義好get_data()方法,此方法用于獲取數據展示在table里。

至此,擴展Dashboard已完成,需要重啟apache才能看到效果:sudo service apache2 restart。效果如下:

如何擴展OpenStack Dashboard

關于如何擴展OpenStack Dashboard就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

治县。| 昌都县| 项城市| 颍上县| 阿克苏市| 宜阳县| 红原县| 天等县| 三穗县| 忻城县| 巩义市| 龙井市| 新和县| 阳新县| 二连浩特市| 长兴县| 贵德县| 平舆县| 丽水市| 稻城县| 菏泽市| 平泉县| 米脂县| 广水市| 青神县| 锡林郭勒盟| 色达县| 荣昌县| 定襄县| 铁岭县| 余江县| 南昌市| 信丰县| 凉城县| 青岛市| 淳安县| 平顺县| 礼泉县| 衡山县| 双峰县| 天镇县|