diff --git a/openstack_dashboard/api/keystone.py b/openstack_dashboard/api/keystone.py index 8f20857719..a1ff2eef87 100644 --- a/openstack_dashboard/api/keystone.py +++ b/openstack_dashboard/api/keystone.py @@ -596,9 +596,12 @@ def user_update_tenant(request, user, project, admin=True): @profiler.trace def group_create(request, domain_id, name, description=None): manager = keystoneclient(request, admin=True).groups - return manager.create(domain=domain_id, - name=name, - description=description) + try: + return manager.create(domain=domain_id, + name=name, + description=description) + except keystone_exceptions.Conflict: + raise exceptions.Conflict() @profiler.trace @@ -645,9 +648,12 @@ def group_list(request, domain=None, project=None, user=None, filters=None): @profiler.trace def group_update(request, group_id, name=None, description=None): manager = keystoneclient(request, admin=True).groups - return manager.update(group=group_id, - name=name, - description=description) + try: + return manager.update(group=group_id, + name=name, + description=description) + except keystone_exceptions.Conflict: + raise exceptions.Conflict() @profiler.trace diff --git a/openstack_dashboard/dashboards/identity/groups/forms.py b/openstack_dashboard/dashboards/identity/groups/forms.py index 3529147854..f019b1fbad 100644 --- a/openstack_dashboard/dashboards/identity/groups/forms.py +++ b/openstack_dashboard/dashboards/identity/groups/forms.py @@ -47,6 +47,9 @@ class CreateGroupForm(forms.SelfHandlingForm): messages.success(request, _('Group "%s" was successfully created.') % data['name']) + except exceptions.Conflict: + msg = _('Group "%s" already exists.') % data['name'] + messages.error(request, msg) except Exception: exceptions.handle(request, _('Unable to create group.')) return False @@ -72,6 +75,9 @@ class UpdateGroupForm(forms.SelfHandlingForm): description=data['description']) messages.success(request, _('Group has been updated successfully.')) + except exceptions.Conflict: + msg = _('Group "%s" already exists.') % data['name'] + messages.error(request, msg) except Exception: exceptions.handle(request, _('Unable to update the group.')) return False