Horizon 二次开发
来源:互联网 发布:淘宝信用最高的店铺 编辑:程序博客网 时间:2024/06/01 08:23
知识储备:
Horizon是基于django webframework开发的标准的Python wsgi程序,django的设计专注于代码的高度可重用,信奉DRY原则,一切面向对象,而Horizon可以说高度match了django的设计风格。网站程序基本有三部分组成,业务逻辑代码(Python),静态文件(js/css),模板(Python中的 jinja,mako,nodejs中有jade), 用户向webserver发起请求之后,server程序找到当前url对应的模板,填充模板变量(输出成字符串形式的html源码),返回给浏览器,浏览器渲染页面。一般模板语言都有继承(extend),插入(include)等特性,来提高页面的复用率。
Horizon做得就更彻底一些,它将页面上所有元素模块化,网页中一些常见元素,表单,表格,标签页,全部封装成Python类,每个组件有自己 对应的一小块html模板.当渲染整个页面的时候,Horizon先找到当前页面有多少组件,将各个组件分别进行渲染变成一段html片段,最后拼装成一 个完整的html页面,返回浏览器。
特点说明:
页面元素模块化
子面板可插
All in One(从部署上来说,Horizon只有它自己这一个组件)
结构分析
- horizon设计分为三层:Dashboard->PanelGroup->Panel
- project普通用户登录后看到的是项目面板
- admin管理登录看到可见左测的管理员面板
- settings右上角的设置面板
- identity不同的角色登录之后,左侧的“身份”面板,可设置项目用户
交换机管理面板
每个dashboard都是django中的一个app,django中的app可以理解成对业务逻辑模块化的一种手段,里面可以包含自己独有的url设定,模板和业务逻辑代码。每个dashboard下定义了一系列的PanelGroup,虚拟机管理对应到界面上就是一个PanelGroup(ManageCompute),里面有一系列的子panel(Overview、Instance、Volumes...). swift, heat, neutron的管理面板自都是一个PanelGroup,底下有各自的子Panel。
- 项目结构
Horizon项目核心的代码包有两个:openstack-dashboard和python-django-horizon。
第一个包是控制台代码的具体实现,是一个基于Django框架的web应用,安装后主要文件在/usr/share/openstack-dashboard/路径下。第二个包是通用的一些Python类库,也包括一些静态文件,安装后在/usr/lib/python2.7/dist-packages/horizon下。定制化开发,主要是修改业务代码,基本不需要修改python-django-horizon,所以我们分析的重点放在openstack-dashboard这个包上。
图中的7个名词在代码中都可以对应上,代码的层级结构还是很清晰的。
from
http://www.cnblogs.com/chris-cp/p/6012590.html文献资料:
https://docs.openstack.org/horizon/latest/
https://docs.openstack.org/horizon/latest/user/index.html
https://docs.openstack.org/kilo/config-reference/content/dashboard-custom-brand.html
- Horizon二次开发
- horizon二次开发
- horizon二次开发
- Horizon 二次开发
- Horizon 二次开发
- Horizon 二次开发
- Horizon 二次开发-部署
- Openstack -- Horizon二次开发(一)
- Openstack -- Horizon二次开发(二)
- openstack学习记录(一) horizon二次开发部署(juno)
- 二次开发
- 二次开发
- 二次开发
- 二次开发
- 二次开发
- 二次开发
- 二次开发
- 二次开发
- JavaScript学习笔记之闭包
- Android之四大组件、五大存储、七大布局
- 用VS2013编译FFMPEG
- C++中set的使用
- 二叉树递归和非递归访问的实现
- Horizon 二次开发
- MFC调用dll文件
- Java习题札记
- Linux shell 脚本
- HDU4686---Arc of Dream(矩阵快速幂,大数据的坑题)
- 学习笔记2017.07.07-day5,am-HTML表单-HTML框架
- 防止Windows自动锁屏的VBA脚本
- 欢迎使用CSDN-markdown编辑器
- mysql 注意事项