怎样修改 Openstack Horizon(Dashboard)的显示界面 (一)

Openstack 有很多项目,比如 nova 是虚拟机管理,neutron 是虚拟网络管理, glance 是存储管理,而 horizon 是负责 Openstack 的统一界面。horizon 的源代码和 neutron 的不太一样,分布在两个地方,一个是 /usr/lib/python2.7/dist-packages/horizon 下面,这里放的是一些最基本的、可以共享的类、表格和模板等。另一个是 /usr/share/openstack-dashboard 下面,这里放的是跟界面有直接关系、更加具体的类、表格和模板等,也是我们需要修改的地方。

Horizon 是一个基于 Django 的项目,如果熟悉 Django 的同学会发现其实 Horizon openstack-dashboard 里面的文件命名与摆放位置与 Django 几乎是一样的:

.../openstack-dashboard/

  - bin/

  - openstack_dashboard/

  - static/

  - manage.py

  - settings.py

从这个文件夹的结构就可以看出来,openstack-dashboard 其实就是 Django 的一个 project,而openstack_dashboard 是一个 app。进入 app,我们可以看到,其中一些比较重要的文件和文件夹有:

openstack_dashboard/

  - __init__.py

  - views.py

  - urls.py

  - settings.py

  - dashboards/

  - enabled/

  - static/

  - templates/

  - test/

  ...

是不是很熟悉?一下子就能知道各个文件和文件夹是用来干嘛的。url.py 负责最顶层的 url 跳转, views.py 负责接受和处理请求然后返回结果,static 里面放静态资源, templates 里面放模板, test 里面放 unittest。只有两个文件夹需要探索一下,dashboards 和 enabled。如果进到 enabled 文件夹里去看一下的话会发现,里面有好多添加和删除 panel 还有 group 的例子,其实这里就是一个可以比较简单的在 horizon 里面注册我们自己想要新建的 panel 的地方。例如我们可以把 _50_admin_add_panel.py.example 的后缀去掉,变成  _50_admin_add_panel.py,然后修改其中的内容:

# The name of the panel to be added to HORIZON_CONFIG. Required.
PANEL = ‘plugin_panel‘
# The name of the dashboard the PANEL associated with. Required.
PANEL_DASHBOARD = ‘admin‘
# The name of the panel group the PANEL is associated with.
PANEL_GROUP = ‘admin‘

# Python panel class of the PANEL to be added.
ADD_PANEL =     ‘openstack_dashboard.dashboards.admin.plugin_panel.panel.PluginPanel‘

这样,我们就在一个叫做 admin 的 dashboard 里面添加了一个叫做 plugin_panel 的 panel,并且告诉 horizon 具体的定义将会在 openstack_dashboard.dashboards.admin.plugin_panel.panel.PluginPanel 中出现。

那这个时候我们就要去 dashboards 里面打量打量,然后做些具体的事情啦。首先我们可以看到 dashboards 的结构是这样的:

dashboards/

  - __init__.py

  - admin/

  - project/

  -router/

  - settings/

由此可知,horizon 现在共有三个 dashboards,分别是 admin,project,和 router。admin 代表的是管理员可以看到的界面,project 代表的是用户可以看到的界面,两者在操作权限上会有一定的区别。而 router 的功用我也不是特别清楚。简单保险起见,我们的自定义 panel 就落户在 admin 中。admin 文件夹中包括了很多文件和子文件夹,我就不在这里一一赘述了。我们直接在其中创建一个子文件夹叫做 plugin_panel,然后再这个子文件夹中创建四个文件,使得这个文件夹看起来是这样的:

plugin_panel/

  - __init__.py

  - panel.py

  - url.py

  - views.py

待会儿 PluginPanel 这个类就会定义在 panel.py 中,而 url.py 和 views.py 将会分别承担这一层的路由跳转和收发请求及回复的作用。

今天就写到这里,dashboard 的具体修改计划将会在接下来的几篇文章中揭晓。

时间: 2024-10-12 20:47:27

怎样修改 Openstack Horizon(Dashboard)的显示界面 (一)的相关文章

【云计算】OpenStack Horizon DashBoard定制化,完整实现前后台交互

项目代码见GitHub:https://github.com/junneyang/openstack-customization-example 参考资料: Install and configure Horizon:http://docs.openstack.org/mitaka/install-guide-rdo/horizon-install.html OpenStack 计算服务API文档:http://developer.openstack.org/api-ref-compute-v2

怎样修改 Openstack Horizon(Dashboard)的显示界面 (二)

上一篇文章介绍了 Dashboard 的基本结构框架,那接下来的问题就是如何在这个框架中加入我们自己想要的内容了.在真正动手之前,让我们先来看看官方的页面是怎么做出来的.首先我们进入 /usr/share/openstack-dashboard/openstack_dashboard/dashboards/admin/networks 文件夹下面,可以看到有这几个文件和子文件夹: ../networks: - __init__.py - ports/ - subnets/ - templates

openstack horizon CSS 离线 修改

Openstack horizon 的CSS主要保存在几个目录中,分别是horizon/static/dashboard/scss;horizon/openstack_dashboard/static/dashboard/css;和horizon/openstack_dashboard/static/dashboard/scss. Horzion会对这几个目录中的的css进行压缩存放,然后使用.所以如果直接修改这几个文件夹中的css文件或像官网上写的修改horzion的css方法(如下)修改后的

openstack输入IP直接显示登录界面

openstack输入IP直接显示登录界面 vi /etc/apache2/apache2.conf 把以下内容注释掉,默认没有注释 #<Directory /> #       Options FollowSymLinks #       AllowOverride None #       Require all denied #</Directory> # #<Directory /usr/share> #       AllowOverride None #  

##7.Dashboard web管理界面--openstack

##7.Dashboard web管理界面 ##7.Dashboard web管理界面 #7.1.horizon.sh # 在controller安装 #安装 yum install openstack-dashboard -y #配置 cp /etc/openstack-dashboard/local_settings{,.bak} #egrep -v '#|^$' /etc/openstack-dashboard/local_settings #显示默认配置 Setfiles=/etc/op

自定义OpenStack Horizon(Mitaka)

一.写在前面 这篇文章主要介绍了OpenStack Horizon官方介绍自定义配置,从而进行简单的翻译学习,这里主要基于目前最新的Mitaka来说明,提高自己在horizon组件开发方面的理解.因为时间仓促以及个人理解有限,固有错误的地方请指出,后续将会不定期的完善,近期将专门写一篇博文详细介绍自定义开发主题模版,谢谢! 如果转载,请保留作者信息. 邮箱地址:[email protected] 二.主题(Themes) Openstack Kilo 版本以来,OpenStack Dashboa

OpenStack Horizon 参数设置说明

OpenStack Horizon 参数设置说明 一.写在前面 这篇文章主要介绍了OpenStack(Mitaka) Horizon官方介绍的部署配置.参数设置说明,从而进行简单的翻译学习,这里主要基于目前最新的Mitakaz版本来说明,帮助自己理解Mitaka Horizon中新增的一些参数功能,提高自己在horizon组件开发方面的理解.因为时间仓促以及个人理解有限,固有错误的地方请指出,后续将会不定期更新完善,谢谢! 如果转载,请保留作者信息. 邮箱地址:[email protected]

OpenStack Mitaka Dashboard

OpenStack Mitaka Dashboard 一.写在前面 这篇文章主要介绍了OpenStack Mitaka Horizon组件功能,Mitaka 版本的 Horizon新增加了不少新的功能,这里专门整理一下,写文档的过程,就是我熟悉的过程,整理成笔记以便后续自己查阅. 目前还没有深入进行功能理解,暂时只是简单的通过界面功能与上个版本稍作对比,后续将逐步完善. 如果转载,请保留作者信息. 邮箱地址:[email protected] 二.身份认证 1) .登录 Mitaka版本全部的组

openstack horizon 学习(3) DataTable

上一篇中粗略的讲了下openstack中horizon的dashboard和panel的添加,本打算在这章中对有关于pluggable settings中的配置做详细的总结,然放弃了这念头.原因是搞懂这些配置对horizon的开发并无立竿见影的效果,而且想搞通这个配置所花费的精力是巨大的.这样的方式学习openstack horizon的效率是很低的,所以不要过度沉迷于那些搞不懂或陌生的配置.所以先来先把注意力放在一些horizon里我们所见即所得的东西. openstack horizon主要