Skip to content

Commit

Permalink
Fixes deprecated attribute access.
Browse files Browse the repository at this point in the history
Fixes bug 898510

I did a hasattr check whenever the code tries to access
the message attribute of a BaseException.

Since openstackx, glance, and quantum implements their exceptions
with a message attribute, I thought keeping the message attribute access
was logical.

Change-Id: Iabe986359077d11bb4bdae15f9e7d6db2aecdbb0
  • Loading branch information
ZhongYue Luo committed Dec 16, 2011
1 parent 00fcb42 commit 5aed187
Show file tree
Hide file tree
Showing 14 changed files with 54 additions and 0 deletions.
2 changes: 2 additions & 0 deletions horizon/horizon/context_processors.py
Expand Up @@ -63,6 +63,8 @@ def horizon(request):
context['authorized_tenants'] = tenants
except Exception, e:
if hasattr(request.user, 'message_set'):
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _("Unable to retrieve tenant list: %s")
% e.message)
else:
Expand Down
Expand Up @@ -115,6 +115,8 @@ def securitygrouplist():
try:
quotas.ram = int(quotas.ram)
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Error parsing quota for %(image)s: %(msg)s') %
{"image": image_id, "msg": e.message})
Expand Down
Expand Up @@ -54,6 +54,8 @@ def index(request):
instances = api.server_list(request)
except Exception as e:
LOG.exception(_('Exception in instance index'))
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _('Unable to get instance list: %s')
% e.message)

Expand All @@ -69,6 +71,8 @@ def index(request):
messages.error(request, _('Unauthorized.'))
except Exception, e:
LOG.exception('Exception while fetching flavor info')
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _('Unable to get flavor info: %s') % e.message)

# We don't have any way of showing errors for these, so don't bother
Expand All @@ -90,6 +94,8 @@ def refresh(request):
try:
instances = api.server_list(request)
except Exception as e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to get instance list: %s') % e.message)

Expand Down Expand Up @@ -276,6 +282,8 @@ def detail(request, instance_id):
messages.error(request, _('Unauthorized.'))
except Exception, e:
LOG.exception('Exception while fetching flavor info')
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _('Unable to get flavor info: %s') % e.message)

return shortcuts.render(request,
Expand Down
Expand Up @@ -80,6 +80,8 @@ def index(request):
LOG.exception('Unauthorized attempt to access flavor list.')
messages.error(request, _('Unauthorized.'))
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
LOG.exception('Exception while fetching flavor info')
messages.error(request, _('Unable to get flavor info: %s') % e.message)

Expand Down
16 changes: 16 additions & 0 deletions horizon/horizon/dashboards/nova/networks/forms.py
Expand Up @@ -42,6 +42,8 @@ def handle(self, request, data):
send_data = {'network': {'name': '%s' % network_name}}
api.quantum_create_network(request, send_data)
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to create network %(network)s: %(msg)s') %
{"network": network_name, "msg": e.message})
Expand All @@ -61,6 +63,8 @@ def handle(self, request, data):
LOG.info('Deleting network %s ' % data['network'])
api.quantum_delete_network(request, data['network'])
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to delete network %(network)s: %(msg)s') %
{"network": data['network'], "msg": e.message})
Expand All @@ -83,6 +87,8 @@ def handle(self, request, data):
send_data = {'network': {'name': '%s' % data['new_name']}}
api.quantum_update_network(request, data['network'], send_data)
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to rename network %(network)s: %(msg)s') %
{"network": data['network'], "msg": e.message})
Expand All @@ -106,6 +112,8 @@ def handle(self, request, data):
for i in range(0, data['ports_num']):
api.quantum_create_port(request, data['network'])
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to create ports on network %(network)s: %(msg)s') %
{"network": data['network'], "msg": e.message})
Expand All @@ -128,6 +136,8 @@ def handle(self, request, data):
(data['port'], data['network']))
api.quantum_delete_port(request, data['network'], data['port'])
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to delete port %(port)s: %(msg)s') %
{"port": data['port'], "msg": e.message})
Expand Down Expand Up @@ -166,6 +176,8 @@ def handle(self, request, data):
api.quantum_attach_port(request,
data['network'], data['port'], body)
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to attach port %(port)s to VIF %(vif)s: %(msg)s') %
{"port": data['port'],
Expand All @@ -188,6 +200,8 @@ def handle(self, request, data):
LOG.info('Detaching port %s' % data['port'])
api.quantum_detach_port(request, data['network'], data['port'])
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to detach port %(port)s: %(message)s') %
{"port": data['port'], "message": e.message})
Expand All @@ -210,6 +224,8 @@ def handle(self, request, data):
api.quantum_set_port_state(request,
data['network'], data['port'], body)
except Exception, e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to set port state to %(state)s: %(message)s') %
{"state": data['state'], "message": e.message})
Expand Down
4 changes: 4 additions & 0 deletions horizon/horizon/dashboards/nova/networks/views.py
Expand Up @@ -64,6 +64,8 @@ def index(request):

except Exception, e:
LOG.exception("Unable to get network list.")
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to get network list: %s') % e.message)

Expand Down Expand Up @@ -101,6 +103,8 @@ def detail(request, network_id):
network['ports'] = _get_port_states(request, network_id)
except Exception, e:
LOG.exception("Unable to get network details.")
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to get network details: %s') % e.message)
return shortcuts.redirect("horizon:nova:networks:index")
Expand Down
2 changes: 2 additions & 0 deletions horizon/horizon/dashboards/syspanel/flavors/views.py
Expand Up @@ -53,6 +53,8 @@ def index(request):
messages.error(request, _('Unauthorized.'))
except Exception, e:
LOG.exception('Exception while fetching usage info')
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _('Unable to get flavor list: %s') % e.message)

flavors.sort(key=lambda x: x.id, reverse=True)
Expand Down
4 changes: 4 additions & 0 deletions horizon/horizon/dashboards/syspanel/instances/views.py
Expand Up @@ -263,6 +263,8 @@ def index(request):
instances = api.admin_server_list(request)
except Exception as e:
LOG.exception('Unspecified error in instance index')
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to get instance list: %s') % e.message)

Expand All @@ -289,6 +291,8 @@ def refresh(request):
try:
instances = api.admin_server_list(request)
except Exception as e:
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Unable to get instance list: %s') % e.message)

Expand Down
2 changes: 2 additions & 0 deletions horizon/horizon/dashboards/syspanel/quotas/views.py
Expand Up @@ -39,6 +39,8 @@ def index(request):
except Exception, e:
quotas = None
LOG.exception('Exception while getting quota info')
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _('Unable to get quota info: %s') % e.message)

return shortcuts.render(request,
Expand Down
2 changes: 2 additions & 0 deletions horizon/horizon/dashboards/syspanel/tenants/forms.py
Expand Up @@ -180,6 +180,8 @@ def handle(self, request, data):
% {"tenant": tenant_id})
except Exception, e:
LOG.exception("Error deleting tenant")
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_("Error deleting tenant: %s") % e.message)
return shortcuts.redirect(request.build_absolute_uri())
2 changes: 2 additions & 0 deletions horizon/horizon/dashboards/syspanel/tenants/views.py
Expand Up @@ -51,6 +51,8 @@ def index(request):
messages.error(request, _('Unable to get tenant info: %s') % e.message)
except Exception, e:
LOG.exception('Exception while getting tenant list')
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _('Unable to get tenant info: %s') % e.message)

tenants.sort(key=lambda x: x.id, reverse=True)
Expand Down
4 changes: 4 additions & 0 deletions horizon/horizon/dashboards/syspanel/users/forms.py
Expand Up @@ -75,6 +75,8 @@ def handle(self, request, data):
except Exception, e:
LOG.exception('Exception while assigning \
role to new user: %s' % new_user.id)
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Error assigning role to user: %s')
% e.message)
Expand All @@ -85,6 +87,8 @@ def handle(self, request, data):
LOG.exception('Exception while creating user\n'
'name: "%s", email: "%s", tenant_id: "%s"' %
(data['name'], data['email'], data['tenant_id']))
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request,
_('Error creating user: %s')
% e.message)
Expand Down
2 changes: 2 additions & 0 deletions horizon/horizon/dashboards/syspanel/users/views.py
Expand Up @@ -50,6 +50,8 @@ def index(request):
messages.error(request, _('Unable to get user info: %s') % e.message)
except Exception, e:
LOG.exception('Exception while getting user list')
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _('Unable to get user info: %s') % e.message)

user_delete_form = UserDeleteForm()
Expand Down
2 changes: 2 additions & 0 deletions horizon/horizon/forms.py
Expand Up @@ -212,6 +212,8 @@ def maybe_handle(cls, request, *args, **kwargs):
if issubclass(e.__class__, exceptions.NotAuthorized):
# Let the middleware handle it as intended.
raise
if not hasattr(e, 'message'):
e.message = str(e)
messages.error(request, _('%s') % e.message)
return form, None

Expand Down

0 comments on commit 5aed187

Please sign in to comment.