作者:吕嘉伟
团队:大云虚机网络
Horizon可分为3层,由上到下分别为Dashboard →PanelGroup → Panel。从代码结构上看可以发现最上层是dashboards,它包含了4个主要的dashboard:project 普通用户登陆后看到的项目面板;admin 管理登陆后可见,左侧的管理员面板;settings 右上角的设置面板,里面可设置语言,时区,更改密码;router(配置文件中将profile_support打开可见,在应用中我未曾使用过)。Dashboards的页面展示如图1。
图1dashboards
每一个dashboard都是django中的一个app,里面又包含了许多独立的Panel,这些panel组成了panelgroup,以网络功能panelgroup为例,它包含了6个panel,分别是’network_topology','networks','routers','loadbalancers','firewalls','vpn。这些panelgroup及group中包含的panel,都定义在dashboard.py文件中。
<span style="font-family:Times New Roman;font-size:14px;">project/dashboard.py
class Project(horizon.Dashboard):
name =_("Project")
slug ="project"
panels = (
BasePanels,
NetworkPanels,
ObjectStorePanels,
OrchestrationPanels,
DatabasePanels,
DataProcessingPanels,)
default_panel =&