Openstack學習筆記(十四)-Horizon學習筆記(四)__openstack

來源:互聯網
上載者:User

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

關於dashboard的介面,自己搭起環境後可以有一個直觀的感受。 Horizon源碼目錄結構

以在admin這個Dashboard裡擴充添加一個monitoring的panel為例,介紹擴充OpenStack Dashboard的流程。 1.定義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裡。 2.定義URL

Horizon是基於Django架構,程式是通過url來找到panel的,因此,需要在monitoring目錄下建立urls.py檔案,定義url:
3.定義Table

table用於展示資料,Horizon提供了DataTable基類,我們可以通過繼承DataTable來實現自訂的table:

在MonitoringTable裡定義了兩列resources和percent。 4.定義View

view是用來整合table或者tab的,Horizon提供了多種vie類,下面使用DataTableView來自訂我們自己的IndexView:在IndexView裡定義好table_class和template_name的屬性值,同時需要定義好get_data()方法,此方法用於擷取資料展示在table裡。

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

這篇文章網上很多,將其轉過來方便學習。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.