horizon dashboard页面添加新模块.docx
《horizon dashboard页面添加新模块.docx》由会员分享,可在线阅读,更多相关《horizon dashboard页面添加新模块.docx(21页珍藏版)》请在冰点文库上搜索。
horizondashboard页面添加新模块
OpenstackHorizon_Dashborad模块新增
1.功能界面详解
功能界面详解
一.以Dilatation举例
1.
图1
红色箭头1:
Dilatation为Admin模块下新增内容。
点击Dilatation出现如图所示内容。
红色箭头2:
Dilatation为表内容。
红色箭头3:
创建Dilatation数据按钮。
界面效果实现步骤如下:
图2
openstack-dashborad工程下admin目录下添加dilatation新增内容。
1.dashboard.py文件修改内容,添加dilatation,注意逗号。
图3
2.添加panel.py,加入新panel。
图4
3.添加table,dilatation页面显示内容。
CreateDilatation为页面添加按钮,DilatationTable为页面table,Meta为其他属性值。
图5
4.添加urls.py,其中一个create页面,一个index页面。
这里跳转到views.py。
图6
5.添加views.py,IndexView和CreateView为具体的业务逻辑。
6.constants.py是跳转的页面。
图7
7.index.html添加。
标题添加。
图8
8.create.html添加。
图9
9._create.html添加。
图10
说明:
到这一步,图1的页面展示出现。
二.Form表单页面。
点击主页面创建按钮,出现图11。
此页面需要添加forms.py和_create.html。
_create.html图10已说明。
form表单内容为加入的新数据。
图11
UserName:
用户名。
ControllerManagerIP:
控制节点IP。
ComputeManagerIP:
计算节点IP。
Hostname:
主机名。
Password:
密码。
在form表单中添加内容,按save按钮,展示数据到主页面。
图12
图13,为新加的数据。
图13
说明:
数据展示功能代码详解如下:
1.创建数据模型。
在models.py中添加需要的数据库表。
图14
Models.py在nova/db/sqlalchemy/models.py目录下。
__tablename__为表名。
__table_agrs__为依赖的属性
其他的为表字段。
2.新增版本号。
版本号目录:
/nova/db/sqlalchemy/migrate_repo/versions/255_add_dilatation.py
3.写入升级版本命令后,创建表完成。
升级版本命令,如:
nova-managedbsync--version255
图15
4.发布新模块,加入数据。
/nova/api/openstack/compute/contrib/dilatations.py为发布文件。
图16
/nova/api/openstack/compute/contrib/dilatations.py代码内容:
页面展示需要的增删改查方法,里面只写了创建和展示方法,create和show,初始化时调用新增对象和具体方法。
self.api=compute_api.DilatationAPI()
图17
5.调用对象到/nova/compute/api.py文件,写入新增对象。
DilatationAPI为新增API对象。
图18
6.在/nova/objects/dilatation.py目录下加入新对象内容。
注意:
需要初始化对象。
在/nova/objects/__init__.py中import新增对象。
如图19
图19
7.增加新对象处理具体业务。
/nova/objects/dilatation.py
图20
8.发布时V3调用V1_1的接口。
新增/novaclient/v3/dilatations.py
图21
9.数据库创建方法内容。
/nova/db/api.py
图22
10.数据库具体业务内容,创建,展示等方法。
/nova/db/sqlalchemy/api.py
图23
创建调用总过程:
/openstack-dashboard/openstack_dashboard/dashboards/admin/dilatation/views.py------->>>/openstack-dashboard/openstack_dashboard/api/nova.py------->>>
/novaclient/v1_1/dilatations.py-------->>>/nova/compute/api.py------------------->>>/nova/objects/dilatation.py------------------->>>/nova/db/api.py------------------>>>/nova/db/sqlalchemy/api.py