Openstack Mitaka dashboard 增加自定义IP功能
2018-04-13 18:39
549 查看
M版dashboard前端页面增加网络端口的时候是不能定义IP的,只能通过DHCP地址池分配或者用命令行模式指定IP,如下图:
![](http://i2.51cto.com/images/blog/201804/13/105321b9b90a14a75458690449fccb71.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
修改部分:
使用的horizon版本:openstack-dashboard-9.0.1-1.el7.noarch
只需修改一个文件:
/usr/share/openstack-dashboard/openstack_dashboard/dashboards/admin/networks/ports/forms.py
(1)在CreatePort()类后面增加加IP获取方式和IP地址表单项目,如下图红色框内容:
![](http://i2.51cto.com/images/blog/201804/13/16943847bc09f1b54b86032a3b301839.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
(2)同样在CreatePort()类下面 handle() 函数中,在执行创建端口之前(api.neutron.port_create())修改传递的参数,增加指定IP参数(参数格式为 kwargs['fixed_ips'] = [{'ip_address':'x.x.x.x','subnet_id':'subnet-id'}]),如下图红色框内容:
![](http://i2.51cto.com/images/blog/201804/13/f3d466cf8271ae381ec15c2780dd0659.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
这里添加了判断当前网络下是否只有一个子网,如果一个网络下面有多个子网的话则会执行DHCP方式获取。修改后reload一下Apache:
dashboard效果如下图:
![](http://i2.51cto.com/images/blog/201804/13/b54457f49630eaa3ad9e611fe8a682bb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201804/13/105321b9b90a14a75458690449fccb71.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
修改部分:
使用的horizon版本:openstack-dashboard-9.0.1-1.el7.noarch
只需修改一个文件:
/usr/share/openstack-dashboard/openstack_dashboard/dashboards/admin/networks/ports/forms.py
(1)在CreatePort()类后面增加加IP获取方式和IP地址表单项目,如下图红色框内容:
![](http://i2.51cto.com/images/blog/201804/13/16943847bc09f1b54b86032a3b301839.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#Add start specify_ip = forms.ChoiceField( label=_("Floating IPs"), help_text=_("To specify a fixed IP, select any options."), required=False, choices=[('', "DHCP"), ('fixed_ip', _("Fixed IPs"))], widget=forms.SelectWidget(attrs={ 'class': 'switchable', 'data-slug': 'specify_ip', })) fixed_ip = forms.IPField( label=_("IP Address"), required=False, help_text=_("Specify the IP address for the new port"), version=forms.IPv4 | forms.IPv6, widget=forms.TextInput(attrs={ 'class': 'switched', 'data-switch-on': 'specify_ip', 'data-specify_ip-fixed_ip': _("IP Address"), })) #Add end
(2)同样在CreatePort()类下面 handle() 函数中,在执行创建端口之前(api.neutron.port_create())修改传递的参数,增加指定IP参数(参数格式为 kwargs['fixed_ips'] = [{'ip_address':'x.x.x.x','subnet_id':'subnet-id'}]),如下图红色框内容:
![](http://i2.51cto.com/images/blog/201804/13/f3d466cf8271ae381ec15c2780dd0659.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#Add start if data['specify_ip']: subnet_List = network.to_dict()['subnets'] if len(subnet_List) == 1: subnetId = subnet_List[0]['id'] data['fixed_ips'] = [{'ip_address':data['fixed_ip'],'subnet_id':subnetId}] del data['fixed_ip'] del data['specify_ip'] #Add End
这里添加了判断当前网络下是否只有一个子网,如果一个网络下面有多个子网的话则会执行DHCP方式获取。修改后reload一下Apache:
systemctl reload httpd
dashboard效果如下图:
![](http://i2.51cto.com/images/blog/201804/13/b54457f49630eaa3ad9e611fe8a682bb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201804/13/8620fbb4967d0c69a27244dd0b05de3b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
相关文章推荐
- QT 自定义IP输入框(自己重写一部分,增加一部分功能)
- 回归原始--用批处理命令实现更改IP功能(可选网卡,可自定义多套IP方案)
- CS1.6自定义游戏中的H菜单和设置菜单,增加一键买枪功能
- HydromCMS增加封面、完善自定义目录功能、目录结构的修改功能
- sharepoint 2010 在自定义列表的字段上增加功能菜单
- OpenStack Mitaka Dashboard
- 为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
- 用脚本为本blog增加了几项自定义功能
- 我的应用里自定义增加功能模块
- OpenStack IceHouse版cinder模块新增加功能
- 为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
- ALV在标准按钮上增加自定义按钮,并实现文本及功能互相切换
- 在.NET环境下为网站增加IP过滤功能
- Thrift结构分析及增加取客户端IP功能实现
- HAproxy增加日志记录功能和自定义日志输出内容、格式
- 在.NET环境下为网站增加IP过滤功能
- sharepoint 2010 在自定义列表的字段上增加功能菜单
- discuz 门户功能增加自定义keywords字段
- 用脚本为本blog增加了几项自定义功能