Openstack学习笔记(十四)-Horizon学习笔记(四)
来源:互联网 发布:博泰与创业软件 编辑:程序博客网 时间:2024/06/05 03:40
Horizon是OpenStack的一个子项目,用于提供一个Web前端控制台(称为Dashboard),以此来展示OpenStack的功能。通常情况下,我们都是从Horizon、Dashboard开始来了解OpenStack的。实际上,Horizon并不会为OpenStack添加任何一个新的功能,它只是使用了OpenStack部分API功能,因此,我们可以扩展Horizon的功能,扩展Dashboard。
关于dashboard的界面,自己搭起环境后可以有一个直观的感受。
Horizon源码目录结构
以在admin这个Dashboard里扩展添加一个monitoring的panel为例,介绍扩展OpenStack Dashboard的流程。
1.定义panel
首先介绍Dashboard.py这个文件,它位于每个Dashboard的根目录,其作用是注册Dashboard(django里称为app)以及设置Dashboard的属性,比如Dashboard里有哪些panel。
打开admin目录下的Dashboard.py文件,设置SystemPanels有monitoring的panel:
我们可以在Dashboard.py文件里随意的添加、删除panel属性,这对于调试程序的时候很方便。然后在amdin目录下创建一个monitoring的文件夹,并在monitoring文件夹里创建panel.py文件,定义panel:
这是最简单的panel,只定义了其名字。注意:slug属性的值要与monitoring文件夹名字一样。当定义完成后,要记得将其注册到Dashboard里。
2.定义URL
Horizon是基于Django框架,程序是通过url来找到panel的,因此,需要在monitoring目录下建立urls.py文件,定义url:
3.定义Table
table用于展示数据,Horizon提供了DataTable基类,我们可以通过继承DataTable来实现自定义的table:
在MonitoringTable里定义了两列resources和percent。
4.定义View
view是用来集成table或者tab的,Horizon提供了多种vie类,下面使用DataTableView来自定义我们自己的IndexView:在IndexView里定义好table_class和template_name的属性值,同时需要定义好get_data()方法,此方法用于获取数据展示在table里。
至此,扩展Dashboard已完成,需要重启apache才能看到效果:sudo service apache2 restart。效果如下:
这篇文章网上很多,将其转过来方便学习。
- Openstack学习笔记(十四)-Horizon学习笔记(四)
- Openstack学习笔记(十一)-Horizon学习笔记(一)
- Openstack学习笔记(十三)-Horizon学习笔记(三)
- Openstack学习笔记(十二)-Horizon学习笔记(二)
- Openstack学习笔记(十五)-Horizon源代码学习笔记(五)
- 学习笔记(十四)
- Horizon学习笔记
- Openstack Horizon修改笔记
- java学习笔记(十四)
- Linux学习笔记(十四)
- 学习笔记(二十四)
- Java学习笔记(十四)
- Java学习笔记(十四)
- ArcGIS学习笔记(十四)
- Java学习笔记(十四)
- python 学习笔记(十四)
- 数据库学习笔记(十四)
- Android学习笔记(十四)
- CSS笔记(语法)
- [BZOJ2588]Count on a tree(可持久化权值线段树|主席树)
- 转载/Struts2拦截器实现异常处理机制
- [bzoj1799]同类分布 [bzoj4521]手机号码
- HARK学习(八)--LoadSourceLocation
- Openstack学习笔记(十四)-Horizon学习笔记(四)
- 我是一个线程(修订版)
- 【CodeChef-LYRC】Music & Lyrics【AC自动机】
- 微信飞机大战--基于cocos2d-x3.2
- -Os遇到的一个问题
- 56. Merge Intervals
- [HDU 5521] 2015ACM/ICPC亚洲区沈阳站 Meeting 最短路
- 数位dp基础(类似模板) HDU 2089+3555
- hdu 5492(矩阵模型的变形)