summaryrefslogtreecommitdiff
path: root/openstackclient/identity/v3
diff options
context:
space:
mode:
authorHuanxuan Ao <huanxuan.ao@easystack.cn>2017-02-09 18:05:32 +0800
committerHuanxuan Ao <huanxuan.ao@easystack.cn>2017-02-09 19:49:55 +0800
commitcfd4e2a7228c1e7f6ad677f2dd6dbd09e638dfb7 (patch)
treef25b74a7c67369012d2564456237055d45192152 /openstackclient/identity/v3
parent46d1df0adf00862a4b9ff21925836539a0e2f98f (diff)
downloadpython-openstackclient-cfd4e2a7228c1e7f6ad677f2dd6dbd09e638dfb7.tar.gz
Modify error handling for role and group commands
if command failed, we usually raise exception, if command success, sometimes there is not any output (such as set, add commands) So modify the error handling for role and group commands. Change-Id: I1c0f86c04dcedd9c0d725fd73f3436be9da75ee0
Diffstat (limited to 'openstackclient/identity/v3')
-rw-r--r--openstackclient/identity/v3/group.py26
-rw-r--r--openstackclient/identity/v3/role.py29
2 files changed, 18 insertions, 37 deletions
diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py
index a03a86eb..2afdabc1 100644
--- a/openstackclient/identity/v3/group.py
+++ b/openstackclient/identity/v3/group.py
@@ -62,18 +62,13 @@ class AddUserToGroup(command.Command):
try:
identity_client.users.add_to_group(user_id, group_id)
- except Exception:
- msg = _("%(user)s not added to group %(group)s\n") % {
- 'user': parsed_args.user,
- 'group': parsed_args.group,
- }
- sys.stderr.write(msg)
- else:
- msg = _("%(user)s added to group %(group)s\n") % {
+ except Exception as e:
+ msg = _("%(user)s not added to group %(group)s: %(e)s") % {
'user': parsed_args.user,
'group': parsed_args.group,
+ 'e': e,
}
- sys.stdout.write(msg)
+ raise exceptions.CommandError(msg)
class CheckUserInGroup(command.Command):
@@ -306,18 +301,13 @@ class RemoveUserFromGroup(command.Command):
try:
identity_client.users.remove_from_group(user_id, group_id)
- except Exception:
- msg = _("%(user)s not removed from group %(group)s\n") % {
- 'user': parsed_args.user,
- 'group': parsed_args.group,
- }
- sys.stderr.write(msg)
- else:
- msg = _("%(user)s removed from group %(group)s\n") % {
+ except Exception as e:
+ msg = _("%(user)s not removed from group %(group)s: %(e)s") % {
'user': parsed_args.user,
'group': parsed_args.group,
+ 'e': e,
}
- sys.stdout.write(msg)
+ raise exceptions.CommandError(msg)
class SetGroup(command.Command):
diff --git a/openstackclient/identity/v3/role.py b/openstackclient/identity/v3/role.py
index 994ecc9c..1bbf5f07 100644
--- a/openstackclient/identity/v3/role.py
+++ b/openstackclient/identity/v3/role.py
@@ -16,7 +16,6 @@
"""Identity v3 Role action implementations"""
import logging
-import sys
from keystoneauth1 import exceptions as ks_exc
from osc_lib.command import command
@@ -129,7 +128,9 @@ class AddRole(command.Command):
if (not parsed_args.user and not parsed_args.domain
and not parsed_args.group and not parsed_args.project):
- return
+ msg = _("Role not added, incorrect set of arguments "
+ "provided. See openstack --help for more details")
+ raise exceptions.CommandError(msg)
domain_id = None
if parsed_args.role_domain:
@@ -143,11 +144,6 @@ class AddRole(command.Command):
kwargs = _process_identity_and_resource_options(
parsed_args, self.app.client_manager.identity)
- if not kwargs:
- sys.stderr.write(_("Role not added, incorrect set of arguments "
- "provided. See openstack --help for more "
- "details\n"))
- return
identity_client.roles.grant(role.id, **kwargs)
@@ -372,10 +368,10 @@ class ListRole(command.Lister):
'<group-name> --project <project-name> --names '
'instead.'))
else:
- sys.stderr.write(_("Error: If a user or group is specified, "
- "either --domain or --project must also be "
- "specified to list role grants.\n"))
- return ([], [])
+ msg = _("Error: If a user or group is specified, "
+ "either --domain or --project must also be "
+ "specified to list role grants.")
+ raise exceptions.CommandError(msg)
return (columns,
(utils.get_item_properties(
@@ -405,9 +401,9 @@ class RemoveRole(command.Command):
if (not parsed_args.user and not parsed_args.domain
and not parsed_args.group and not parsed_args.project):
- sys.stderr.write(_("Incorrect set of arguments provided. "
- "See openstack --help for more details\n"))
- return
+ msg = _("Incorrect set of arguments provided. "
+ "See openstack --help for more details")
+ raise exceptions.CommandError(msg)
domain_id = None
if parsed_args.role_domain:
@@ -421,11 +417,6 @@ class RemoveRole(command.Command):
kwargs = _process_identity_and_resource_options(
parsed_args, self.app.client_manager.identity)
- if not kwargs:
- sys.stderr.write(_("Role not removed, incorrect set of arguments "
- "provided. See openstack --help for more "
- "details\n"))
- return
identity_client.roles.revoke(role.id, **kwargs)