OpenStack(kilo)界面dashboard的二次開發(二)-增加PanelGroup

上一博文開了一個頭,簡單的總結了下代碼結構及Panel的增加,這一篇對Panelgroup的增加做一個詳細的總結。

增加Panelgroup

Panelgroup字面意思很好理解就是panel組,在openstack的界面中就是多個panel的集合。上一次的代碼分析中其實已經有了對PanelGroup的簡單介紹,這次就看看如何增加panelgroup。

這次直接查看Admin(管理員)Dashboard下的dashboard.py

|-dashboard.py
from django.utils.translation import ugettext_lazy as _

import horizon


class SystemPanels(horizon.PanelGroup):
    slug = "admin"
    name = _("System")
    panels = ('overview', 'metering', 'hypervisors', 'aggregates',
              'instances', 'volumes', 'flavors', 'images',
              'networks', 'routers', 'defaults', 'metadata_defs', 'info', 'mypanel')   #上一篇博文中增加的mypanel


class Admin(horizon.Dashboard):
    name = _("Admin")
    slug = "admin"
    panels = (SystemPanels,)
    default_panel = 'overview'
    permissions = ('openstack.roles.admin',)


horizon.register(Admin)

以上代碼中的class SystemPanels繼承的是horizon的PanelGroup,說明該類就是描述‘系統’這個panelgroup的。現在模仿這個增加一個。

修改後的dashboard.py:

from django.utils.translation import ugettext_lazy as _

import horizon


class SystemPanels(horizon.PanelGroup):
    slug = "systempanel"
    name = _("System")
    panels = ('overview', 'metering', 'hypervisors', 'aggregates',
              'instances', 'volumes', 'flavors', 'images',
              'networks', 'routers', 'defaults', 'metadata_defs', 'info')

class MyPanels(horizon.PanelGroup):
    slug = "mypanelgroup"
    name = "Mypanelgroup"
    panels = ('mypanel',)


class Admin(horizon.Dashboard):
    name = _("Admin")
    slug = "admin"
    panels = (SystemPanels, MyPanels,)
    default_panel = 'overview'
    permissions = ('openstack.roles.admin',)


horizon.register(Admin)

將自己加的mypanel加到了這個Panelgroup中,然後重啓一下httpd服務,查看頁面如下:
這裏寫圖片描述
更多精彩文章,請搜索微信公衆號“扶艾”。我們定期分享OpenStack相關技術文章,在這裏,只有純乾貨
這裏寫圖片描述

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