Skip to content
Snippets Groups Projects
Commit 794f67a1 authored by I. Nüske's avatar I. Nüske
Browse files

MNT: Added error messages for all user and role updates, unified message layout.

parent dbfc4bf5
Branches
Tags
2 merge requests!159Release 0.16.o,!153Error message for missing users and roles in linkahead_admin.py
Pipeline #56637 passed with warnings
...@@ -33,7 +33,7 @@ from argparse import ArgumentParser, RawDescriptionHelpFormatter ...@@ -33,7 +33,7 @@ from argparse import ArgumentParser, RawDescriptionHelpFormatter
import linkahead as db import linkahead as db
from linkahead import administration as admin from linkahead import administration as admin
from linkahead.exceptions import HTTPClientError, HTTPResourceNotFoundError from linkahead.exceptions import HTTPClientError, HTTPResourceNotFoundError, HTTPForbiddenError
__all__ = [] __all__ = []
__version__ = 0.3 __version__ = 0.3
...@@ -42,22 +42,35 @@ __updated__ = '2018-12-11' ...@@ -42,22 +42,35 @@ __updated__ = '2018-12-11'
def do_update_role(args): def do_update_role(args):
admin._update_role(name=args.role_name, description=args.role_description) try:
admin._update_role(name=args.role_name, description=args.role_description)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot update role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_create_role(args): def do_create_role(args):
admin._insert_role(name=args.role_name, description=args.role_description) try:
admin._insert_role(name=args.role_name, description=args.role_description)
except (HTTPClientError, HTTPForbiddenError) as e:
print(f"Error: Cannot create role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_retrieve_role(args): def do_retrieve_role(args):
try: try:
print(admin._retrieve_role(name=args.role_name)) print(admin._retrieve_role(name=args.role_name))
except HTTPResourceNotFoundError: except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Role '{args.role_name}' does not exist.") print(f"Error: Cannot retrieve role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_delete_role(args): def do_delete_role(args):
admin._delete_role(name=args.role_name) try:
admin._delete_role(name=args.role_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot delete role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_retrieve(args): def do_retrieve(args):
...@@ -129,22 +142,25 @@ def do_create_user(args): ...@@ -129,22 +142,25 @@ def do_create_user(args):
if args.activate_user: if args.activate_user:
do_activate_user(args) do_activate_user(args)
except HTTPClientError as e: except (HTTPForbiddenError, HTTPClientError) as e:
print(e.msg) print(f"Error: Cannot create user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_activate_user(args): def do_activate_user(args):
try: try:
admin._update_user(name=args.user_name, status="ACTIVE") admin._update_user(name=args.user_name, status="ACTIVE")
except HTTPClientError as e: except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(e.msg) print(f"Error: Cannot activate user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_deactivate_user(args): def do_deactivate_user(args):
try: try:
admin._update_user(name=args.user_name, status="INACTIVE") admin._update_user(name=args.user_name, status="INACTIVE")
except HTTPClientError as e: except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(e.msg) print(f"Error: Cannot deactivate user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_set_user_password(args): def do_set_user_password(args):
...@@ -154,66 +170,109 @@ def do_set_user_password(args): ...@@ -154,66 +170,109 @@ def do_set_user_password(args):
password = args.user_password password = args.user_password
try: try:
admin._update_user(name=args.user_name, password=password) admin._update_user(name=args.user_name, password=password)
except HTTPClientError as e: except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(e.msg) print(f"Error: Cannot set password for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_add_user_roles(args): def do_add_user_roles(args):
roles = admin._get_roles(username=args.user_name, realm=None) try:
roles = admin._get_roles(username=args.user_name, realm=None)
except (HTTPForbiddenError, HTTPResourceNotFoundError) as e:
print(f"Error: Cannot access roles for user '{args.user_name}', "
f"reason: '{e.msg}'")
return
for r in args.user_roles: for r in args.user_roles:
roles.add(r) roles.add(r)
admin._set_roles(username=args.user_name, roles=roles) try:
admin._set_roles(username=args.user_name, roles=roles)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot add new roles for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_remove_user_roles(args): def do_remove_user_roles(args):
roles = admin._get_roles(username=args.user_name, realm=None) try:
roles = admin._get_roles(username=args.user_name, realm=None)
except (HTTPForbiddenError, HTTPResourceNotFoundError) as e:
print(f"Error: Cannot access roles for user '{args.user_name}', "
f"reason: '{e.msg}'")
return
for r in args.user_roles: for r in args.user_roles:
if r in roles: if r in roles:
roles.remove(r) roles.remove(r)
admin._set_roles(username=args.user_name, roles=roles) try:
admin._set_roles(username=args.user_name, roles=roles)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot remove roles from user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_set_user_entity(args): def do_set_user_entity(args):
admin._update_user(name=args.user_name, entity=args.user_entity) try:
admin._update_user(name=args.user_name, entity=args.user_entity)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot set entity for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_reset_user_entity(args): def do_reset_user_entity(args):
admin._update_user(name=args.user_name, entity="") try:
admin._update_user(name=args.user_name, entity="")
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot remove entity for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_set_user_email(args): def do_set_user_email(args):
admin._update_user(name=args.user_name, email=args.user_email) try:
admin._update_user(name=args.user_name, email=args.user_email)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot set email for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_retrieve_user(args): def do_retrieve_user(args):
try: try:
print(admin._retrieve_user(name=args.user_name)) print(admin._retrieve_user(name=args.user_name))
except HTTPResourceNotFoundError: except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: User '{args.user_name}' does not exist.") print(f"Error: Cannot retrieve user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_delete_user(args): def do_delete_user(args):
admin._delete_user(name=args.user_name) try:
admin._delete_user(name=args.user_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot delete user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_retrieve_user_roles(args): def do_retrieve_user_roles(args):
try: try:
print(admin._get_roles(username=args.user_name)) print(admin._get_roles(username=args.user_name))
except HTTPResourceNotFoundError: except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: User '{args.user_name}' does not exist.") print(f"Error: Cannot retrieve roles for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_retrieve_role_permissions(args): def do_retrieve_role_permissions(args):
try: try:
print(admin._get_permissions(role=args.role_name)) print(admin._get_permissions(role=args.role_name))
except HTTPResourceNotFoundError: except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Role '{args.role_name}' does not exist.") print(f"Error: Cannot retrieve permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_grant_role_permissions(args): def do_grant_role_permissions(args):
perms = admin._get_permissions(args.role_name) try:
perms = admin._get_permissions(role=args.role_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot access permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
return
for p in args.role_permissions: for p in args.role_permissions:
g = admin.PermissionRule( g = admin.PermissionRule(
...@@ -227,11 +286,20 @@ def do_grant_role_permissions(args): ...@@ -227,11 +286,20 @@ def do_grant_role_permissions(args):
if d in perms: if d in perms:
perms.remove(d) perms.remove(d)
perms.add(g) perms.add(g)
admin._set_permissions(role=args.role_name, permission_rules=perms) try:
admin._set_permissions(role=args.role_name, permission_rules=perms)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot set permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_revoke_role_permissions(args): def do_revoke_role_permissions(args):
perms = admin._get_permissions(args.role_name) try:
perms = admin._get_permissions(role=args.role_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot access permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
return
for p in args.role_permissions: for p in args.role_permissions:
g = admin.PermissionRule( g = admin.PermissionRule(
...@@ -244,11 +312,20 @@ def do_revoke_role_permissions(args): ...@@ -244,11 +312,20 @@ def do_revoke_role_permissions(args):
if d in perms: if d in perms:
perms.remove(d) perms.remove(d)
admin._set_permissions(role=args.role_name, permission_rules=perms) try:
admin._set_permissions(role=args.role_name, permission_rules=perms)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot revoke permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_deny_role_permissions(args): def do_deny_role_permissions(args):
perms = admin._get_permissions(args.role_name) try:
perms = admin._get_permissions(role=args.role_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot access permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
return
for p in args.role_permissions: for p in args.role_permissions:
g = admin.PermissionRule( g = admin.PermissionRule(
...@@ -262,7 +339,11 @@ def do_deny_role_permissions(args): ...@@ -262,7 +339,11 @@ def do_deny_role_permissions(args):
if d in perms: if d in perms:
perms.remove(d) perms.remove(d)
perms.add(d) perms.add(d)
admin._set_permissions(role=args.role_name, permission_rules=perms) try:
admin._set_permissions(role=args.role_name, permission_rules=perms)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot deny permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_retrieve_entity_acl(args): def do_retrieve_entity_acl(args):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment