【OpenStack】OpenStack系列14之Dashboard定制开发

时间:2024-04-27 19:37:17
  1. django概述
    1. http://djangobook.py3k.cn/2.0/chapter05/

    2. Django设计MVC理念

      【OpenStack】OpenStack系列14之Dashboard定制开发

    3. Web工作流程

      【OpenStack】OpenStack系列14之Dashboard定制开发

    4. 选择Django原因:MVC、admin管理、自动化ORM、everything is python。
    5. Django项目开发大概步骤

      【OpenStack】OpenStack系列14之Dashboard定制开发

    6. 使用概述
      1. 项目与app,使用model特性必须创建app

        【OpenStack】OpenStack系列14之Dashboard定制开发

    7. 可以使用pydev自带的django支持进行快速开发。新建project、新建app,配置urls,实现views。url高级用法,一般不这么使用。

      【OpenStack】OpenStack系列14之Dashboard定制开发

    8. 模板、static、model逐步添加。Restful风格web开发。Settings.py需要正确设置:

      【OpenStack】OpenStack系列14之Dashboard定制开发

      Views中可以直接渲染返回:

      【OpenStack】OpenStack系列14之Dashboard定制开发

    9. 渲染可以带参数

      【OpenStack】OpenStack系列14之Dashboard定制开发

      【OpenStack】OpenStack系列14之Dashboard定制开发

    10. POST请求

      【OpenStack】OpenStack系列14之Dashboard定制开发

      【OpenStack】OpenStack系列14之Dashboard定制开发

    11. Django日志处理:配置log

      参考:http://davidbj.blog.51cto.com/4159484/1433741

  2. Horizon定制开发
    1. http://www.chenshake.com/secondary-development-of-openstack-dashboard/

      http://www.open-open.com/lib/view/open1389792987430.html

    2. 简介

      http://www.metacloud.com/openstack-horizon-controlling-cloud-using-django/

      【OpenStack】OpenStack系列14之Dashboard定制开发

      【OpenStack】OpenStack系列14之Dashboard定制开发【OpenStack】OpenStack系列14之Dashboard定制开发

    3. Horizon定义公共的可以重用的组件,openstack_dashboard针对openstack的具体的组件,dashboards中为前端页面最主要的几个部分,包含每个pannel的前后端代码。如下图:

      【OpenStack】OpenStack系列14之Dashboard定制开发

    4. Admin里面,两个pannelgroup

      【OpenStack】OpenStack系列14之Dashboard定制开发

      并且只有admin可见:

      【OpenStack】OpenStack系列14之Dashboard定制开发

    5. Dashboard扩展pannel

      参考:http://docs.openstack.org/developer/horizon/topics/tutorial.html

    6. 创建pannel

      cd /var/www/horizon目录下:

      mkdir openstack_dashboard/dashboards/admin/mypanel

      注册、自动生成相关代码结构:

      ./run_tests.sh -N -m startpanel mypanel --dashboard=openstack_dashboard.dashboards.admin --target=openstack_dashboard/dashboards/admin/mypanel

      【OpenStack】OpenStack系列14之Dashboard定制开发

    7. 注册:修改admin下面的openstack_dashboard/dashboards/admin/dashboard.py,添加mypannel:

      【OpenStack】OpenStack系列14之Dashboard定制开发

    8. 重启httpd,刷新页面,mypannel显示在页面中:

      【OpenStack】OpenStack系列14之Dashboard定制开发

    9. Horizon定制开发可以参考:

      http://docs.openstack.org/developer/horizon/py-modindex.html

      http://my.oschina.net/zhouxingxing/blog/90283

      http://www.cloudcraft.cn/add-your-panel-ui-to-horizon/

      或者直接参考admin目录下面其他的代码即可。

      修改index.html文件:

      【OpenStack】OpenStack系列14之Dashboard定制开发

      【OpenStack】OpenStack系列14之Dashboard定制开发

      修改之后html会更新为修改内容。

    10. View可以通过context传递参数到前端。

      【OpenStack】OpenStack系列14之Dashboard定制开发

      【OpenStack】OpenStack系列14之Dashboard定制开发

      按照其他的模块,依葫芦画瓢,七改八改就搞定了。

    11. Pannel中dataview实现

      添加tables——修改views,引用tables——返回tables数据——前段渲染

      具体代码可以参考:

      https://github.com/yongluo2013/osf-openstack-training/blob/master/code/horizon/openstack_dashboard/dashboards/admin/documents/templates/documents/index.html

附录:

013.Dashboard前端页面结构:

【OpenStack】OpenStack系列14之Dashboard定制开发

013.标准Django Application Stack:

【OpenStack】OpenStack系列14之Dashboard定制开发

013.增强Horizon application stack:

【OpenStack】OpenStack系列14之Dashboard定制开发