openstack newton 版本 horizon二次开发

N 版本的dashboard 开发和其他版本有些不同,主要是在dashboard.py中注册panel 的方式变了,下边以一个例子介绍如何在admin下创建一个panel.

切换到 manage.py 所在目录

cd /opt/stack/horizon

创建dashboard:

python manage.py startdash mydashboard --target openstack_dashboard/dashboards/mydashboard/

在刚刚创建的dashboard中创建mypanel 文件夹,创建panel:

python manage.py startpanel mypanel -d openstack_dashboard.dashboards.mydashboard --target openstack_dashboard/dashboards/mydashboard/mypanel/

1.切换到 dashboard 中admin panel所在目录:/opt/stack/horizon/openstack_dashboard/dashboards/admin

2.执行 python /opt/stack/horizon/manage.py startpanel test_panel -d openstack_dashboard.dashboards.admin ,创建一个名字是test_panel 的panel .创建成功后,你所在目录中将会生成一个test_panel的文件夹:

  

3.修改admin目录下dashboard.py文件.在N版本的openstack中,想要添加panel 可以在admin类中添加一段代码:

   panels = ('test_panel', 'system',)

  这段代码的意思就是admin 中所包含的panel,我是参考settings 中password 写的,但是这种方法不是很好,在N 版本中有另一种写法:

在/opt/stack/horizon/openstack_dashboard/ 目录下,有一个enabled 的文件夹,这个文件夹就是注册panel以及 panel group 的显示:

这里边文件名字是以 _数字_panelGroup_panel.py 进行命名的,我们可以复制其中的一个.py 文件,进行修改:

cp _2090_admin_images_panel.py _2091_admin_my_panel_panel.py

vi _2091_admin_my_panel_panel.py

修改成如下所示,之后保存:

4.在horizon 目录下执行 python manage.py runserver 192.168.117.117:8000  (后边的ip 根据自己openstack 的ip修改),会出现如下提示:

5.访问http://192.168.117.117:8000/

  如果出现如下错误,只需要将dashboard/ 去掉,访问 http://192.168.117.117:8000/auth/login/?next=/admin/ ,就可以了:

Page not found (404)

 6.你就能看到你创建的panel了:

horizon 访问端口配置:horizonopenstack_dashboardlocallocal_settings.py

本人qq  212966054

原文地址:https://www.cnblogs.com/gaizhongfeng/p/zhongfeng.html