进入openstack这个领域大约有一年了,由于某些原因,对openstack各方面都有些了解,不过对openstack也就感觉刚刚入门而已。这期间对openstack的界面进行过一些定制,现在进行个梳理总结。博文中如有说得不对的地方请大家谅解,同时欢迎大家指正,共同提升。
基本认识
openstack的dashboard是允许用户管理openstack资源和服务的一个web接口。
openstack的界面相关的代码有三部分:
- 各类控件的基类,页面的通用模板等
/usr/lib/python2.7/site-packages/horizon
- 界面具体样式,数据获取等
/usr/share/openstack-dashboard
- 还有个容易被忽略的,登录认证界面
/usr/lib/python2.7/site-packages/openstack_auth
openstack的菜单总共分为三级,Dashboard、Panelgroup、Panel,分别如下图标记1/2/3所示
有了以上认识,接下来就看看如何增加Panel
增加Panel
要增加一个panel首先得简单看看代码结构,进入/usr/share/openstack-dashbaord/openstack_dashboard/dashboards目录,会看到如下的结构:
|--__init__.py
|--admin
|--project
|--identity
|--router
|--settings
以上几个文件夹就代表了openstack界面上的几个一级菜单(Dashboard),分别是admin(管理员)、project(项目)、identity(Identity)、settings(设置,这个一级菜单需要点击右上角下拉中的设置才会显示出来)、router(配置文件中将profile_support打开可见,ciso nexus 1000v的管理面板)。现在选择admin进去看看它的目录结构。
admin
admin
|--__init__.py
|--aggregates
|--dashboard.py
|--defaults
|--flavors
|--hypervisors
|--images
|--info
|--instances
|--metadta_defs
|--metering
|--models.py
|--networks
|--overview
|--routers
|--volumes
仔细研究可以发现这些文件夹都一一对应了管理员(admin)下的各个Panel,首先看看Dashboard的类似于配置文件的东西dashboard.py,它就是描述Dashboard的python文件。
|-dashboard.py
from django.utils.translation import ugettext_lazy as _
import horizon
class SystemPanels(horizon.PanelGroup):
slug = "admin"
name = _("System")
panels = ('overview', 'metering', 'hypervisors',

本文介绍了如何进行OpenStack Kilo版本的dashboard界面二次开发,特别是增加新的Panel。首先,作者概述了OpenStack Dashboard的基本结构,包括Dashboard、Panelgroup和Panel的概念。接着,详细解释了增加Panel的步骤,包括理解代码结构、创建相应的Python文件和模板,以及注册新Panel。通过模仿现有Panel的文件结构和内容,可以在admin Dashboard下添加新的Panel,并通过修改dashboard.py完成注册。最后,文章提醒读者完成修改后需要重启服务以查看效果。
最低0.47元/天 解锁文章
4416

被折叠的 条评论
为什么被折叠?



