Skip to content

Instantly share code, notes, and snippets.

@gabrielhurley
Created January 10, 2012 02:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gabrielhurley/1586486 to your computer and use it in GitHub Desktop.
Save gabrielhurley/1586486 to your computer and use it in GitHub Desktop.
Example for cleaner multi-object response messages.
class DeleteGroup(tables.Action):
name = "delete"
verbose_name = _("Delete")
verbose_name_plural = _("Delete Security Groups")
classes = ('danger',)
def allowed(self, request, security_group=None):
if not security_group:
return True
return security_group.name != 'default'
def handle(self, table, request, object_ids):
tenant_id = request.user.tenant_id
deleted = []
for obj_id in object_ids:
obj = table.get_object_by_id(int(obj_id))
if obj.name == "default":
messages.info(request, _("The default group can't be deleted"))
continue
try:
security_group = api.security_group_delete(request, obj_id)
deleted.append(obj)
LOG.info('Deleted security_group: "%s"' % obj.name)
except novaclient_exceptions.ClientException, e:
LOG.exception("Error deleting security group")
messages.error(request, _('Unable to delete group: %s')
% obj.name)
if deleted:
messages.success(request,
_('Successfully deleted security groups: %s')
% ", ".join([group.name for group in deleted]))
return shortcuts.redirect('horizon:nova:access_and_security:index')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment