[BUG] Dashboard报错:if usages['subnets']['available'] <= 0: KeyError: 'available'
2024-10-16 20:35:14
Openstack版本号:Liberty
系统平台:CentOS 7.2 64bit
###############################################################
1.现象:
管理员登陆Dasgboard,查看项目》网络》网络》选择一个网络》选择一个子网》查看网络ID,例如以下:
查看httpd日志报错例如以下:
tail -f /etc/httpd/logs/error_log
[Tue Apr 12 10:24:08.830778 2016] [:error] [pid 94866] Error while checking action permissions.
[Tue Apr 12 10:24:08.830848 2016] [:error] [pid 94866] Traceback (most recent call last):
[Tue Apr 12 10:24:08.830854 2016] [:error] [pid 94866] File "/usr/lib/python2.7/site-packages/horizon/tables/base.py", line 1270, in _filter_action
[Tue Apr 12 10:24:08.830859 2016] [:error] [pid 94866] return action._allowed(request, datum) and row_matched
[Tue Apr 12 10:24:08.830862 2016] [:error] [pid 94866] File "/usr/lib/python2.7/site-packages/horizon/tables/actions.py", line 135, in _allowed
[Tue Apr 12 10:24:08.830866 2016] [:error] [pid 94866] self.allowed(request, datum))
[Tue Apr 12 10:24:08.830873 2016] [:error] [pid 94866] File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/project/networks/subnets/tables.py", line 103, in allowed
[Tue Apr 12 10:24:08.830883 2016] [:error] [pid 94866] if usages['subnets']['available'] <= 0:
[Tue Apr 12 10:24:08.830899 2016] [:error] [pid 94866] KeyError: 'available'
################################################################
2.问题解决:
改动/usr/share/openstack-dashboard/openstack_dashboard/dashboards/project/networks/subnets/tables.py源码例如以下:
class CreateSubnet(SubnetPolicyTargetMixin, CheckNetworkEditable,
tables.LinkAction):
name = "create"
verbose_name = _("Create Subnet")
url = "horizon:project:networks:addsubnet"
classes = ("ajax-modal",)
icon = "plus"
policy_rules = (("network", "create_subnet"),) def get_link_url(self, datum=None):
network_id = self.table.kwargs['network_id']
return reverse(self.url, args=(network_id,)) def allowed(self, request, datum=None):
usages = quotas.tenant_quota_usages(request)
if usages['subnets'].get('available', 1) <= 0:
if 'disabled' not in self.classes:
self.classes = [c for c in self.classes] + ['disabled']
self.verbose_name = _('Create Subnet (Quota exceeded)')
else:
self.verbose_name = _('Create Subnet')
self.classes = [c for c in self.classes if c != 'disabled'] return True
最新文章
- SCNU ACM 2016新生赛决赛 解题报告
- Java网络编程——TCP实例
- 三分 --- CSU 1548: Design road
- iOS 开发 证书总结 开发证书和生产证书的区别
- 一个不错的JavaScript解析浏览器路径方法(转)
- Android给ListView设置分割线Divider样式
- 针对淡入淡出的定时轮播效果js
- m文件转换为C/C++文件的编译、绘图、参数、打包问题总结
- anroid平台指纹方案
- 项目管理-SVN服务器的搭建
- Qt实现软件自动更新的一种简单方法
- MySQL自动设置create_time和update_time
- Docker 容器生命周期管理命令
- SP3946 MKTHNUM - K-th Number(整体二分)
- EF DataFirst修改数据类型
- Linux使用一个定时器实现设置任意数量定时器功能【转】
- RAII(Resource Acquisition Is Initialization)简介
- Sql自定义表类型批量导入数据
- XCode 添加自定义framework运行时出现dyld: Library not loaded的解决方法
- Idea_03_常用快捷键
热门文章
- 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem B. Travelling Camera Problem set贪心
- Mac下配置Apache服务器
- Docker系列之(一):10分钟玩转Docker
- 通过WinAPI播放PCM声音
- [Winform]默认以管理员身份运行程序
- 使用IProgress实现异步编程的进程通知
- ios nil、NULL和NSNull 的使用
- socket tcp缓冲区大小的默认值、最大值
- java List转换为字符串并加入分隔符的一些方法总结
- dwz 分页 bug (选回 combox 第一个值时不执行 onchange)