上一博文開了一個頭,簡單的總結了下代碼結構及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相關技術文章,在這裏,只有純乾貨。