Openstack Horizon 开发 (一)

一、Horizon 基本框架

二、侧边控制面板

三、Panel 文件


使用 RDO 进行Openstack 的部署后, Horizon的 Dashboard 源代码位置位于:/usr/share/openstack-dashboard/openstack_dashboard/dashboards

我们可以通过修改这个目录下的源代码来直接修改页面。


一、Horizon 基本框架

以__init__ 开头的文件是Django 框架用来标示源代码所在的文件,在此目录下每创建一个文件夹,都在在其中创建一个 __init__.py 文件,用来使此文件夹能够被找到。每一个下一级的文件夹都会包含 __init__.py文件

其中Dashboard 包含四个文件夹:

admin  #管理员页面

project   #面向用户页面

router   #路由器

settings   #设置页面


 二、侧边控制面板

在上面四个文件夹中,每个文件夹都会包含一个 dashboard.py文件。

引的包为:
from django.utils.translation import ugettext_lazy as _
import horizon
文件中都会定义一个继承自 horizon.Dashboard 与 文件夹同名的类:

class Admin(horizon.Dashboard):
    name = _("Admin")
    slug = "admin"
    panels = (SystemPanels, IdentityPanels)
    default_panel = ‘overvoew'
    permissions = ('openstack.roles.admin',)
这一段代码 定义了侧边面板的一级菜单,下面包含了两个二级菜单,分别为:<pre name="code" class="html">SystemPanels, IdentityPanels
接下来还要在代码中定义每个二级菜单:(继承自PanelGroup)
class IdentityPanels(horizon.PanelGroup):
    slug = "identity"
    name = _("Identity Panel")
    panels = ('domains', 'projects', 'users', 'groups', 'roles')
其中的panels 为侧边面板的三级菜单。每个panel 都 对应Admin下的一个文件夹

在文件的最后还要有一行代码:
horizon.register(Admin)

表示在horizon 中注册了Admin 面板

 根据以上的分析,可以得出horizon的架构图: 

 dashboard -> PanelGroup -> Panel

而继承的类以及为:

 horizon.Dashboard -> horizon,PanelGroup -> horizon .Panel

三、Panel 文件

panel文件代码:

from django.utils.translation import ugettext_lazy as _
import horizon
from openstack_dashboard.dashboards.admin import dashboard
class Info(horizon.Panel):
    name = _("System Info")
    slug = 'info'
dashboard.Admin.register(Info)

从中可以看出Panel 继承的是 horizon.Panel类
在文件的最后依然要进行注册 







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值