久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何擴展OpenStack Dashboard

163次閱讀
沒有評論

共計 1508 個字符,預計需要花費 4 分鐘才能閱讀完成。

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

Horizon 簡介

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

擴展 Dashboard
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 所示。

圖 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:

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

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

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

定義 url

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

定義 table

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

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

定義 view

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

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

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

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

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計1508字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 房产| 和平县| 武清区| 黎川县| 石景山区| 湘潭市| 南郑县| 信宜市| 珠海市| 金坛市| 固阳县| 大方县| 吉安市| 托克逊县| 镇雄县| 本溪市| 连平县| 谢通门县| 马鞍山市| 兴安县| 葫芦岛市| 孟州市| 海淀区| 安乡县| 保山市| 合作市| 胶南市| 沂南县| 乐陵市| 温州市| 乌兰浩特市| 蓬安县| 大英县| 长葛市| 杭锦旗| 贵港市| 伊金霍洛旗| 安达市| 拉孜县| 齐河县| 合阳县|