Dashboard:对应到界面上的project、admin和indetity,这三个中的每一个都是一个Dashboard。
PanelGroup:例如project下面的compute、网络、路由等等。
panel: compute下面的overview、instances和volumes等等。
Dashboard-》PanelGroup-》Panel架构。
两个重要文件夹:horizon和opensrack_dashboaed
Horizon这个包是一些在django基础上写的通用组件,表格(table),标签页(tab),表单(form),面包屑导航 (browser),工作流(workflow),这些代码和openstack的具体业务逻辑没有什么关系,如果做一个新的django项目,理论上可以复用Horizon这个包中的代码。horizon/base.py中还实现了一套dashboard/panel机制,使得Horizon面板上所有的dashboard都是”可插拔”的,所有的panel都是”动态加载”的。
openstack_dashboard/dashboards/中是各个面板的具体实现代码,其中包括各个面板的模板文件, 和后端service交互的业务逻辑代码等。
horizon
./doc: horizon相关帮助性文档
./horizon:horizon通用组件库
./browsers:
./conf:Horizon配置文件
./contrib:
./forms:form表单基类包
./locale:国际化语言包
./management:manage.py startdash/startpanel命令
./static:horizon静态文件包
./tables:table基类包
./tabs:tab基类包
./templates:模板文件基类
./templatetags:模板标签基类
./test:测试包
./utils:工具包
./workflows:工作流机制包
./openstack_dashboard:horizon各个面板的具体实现代码
./api:调用nova、swift、glance等接口封装
./conf:nova、cinder等API访问权限控制,叫 xxx_policy.json,里 面定义了鉴权用的rules。
./dashboards:Horizon界面展示各个模块实现目录。
./admin:管理员界面
./instances:云主机管理界面
./templates:云主机html界面模板
./forms.py:form表单实现
./panel.py:实现panel注册到dashbord
./tables.py:table实现
./tests.py:测试
./urls.py:url映射
./views.py:url映射的视图
……
./identity:项目、用户管理界面
./project:普通用户项目界面
./router:
./settings:设置界面
./django_pyscss_fix:
./enabled:控制导航加载哪些模块显示出来。
./local:本地配置文件
./locale:本地国家化语言包
./management:定义安装apache、horizon等是配置文件的模板文件。
./openstack:log、_i18n等包
./static:horizon静态包
./templates:horizon模板包
./templatetags:horizon模板标签包
./test:测试包
./usage:Horizon概况页面资源统计实现包
./utils:工具包
./wsgi:wsgi包
./tool: horizon工具包
./manage.py :