summaryrefslogtreecommitdiffstats
path: root/moonclient
diff options
context:
space:
mode:
Diffstat (limited to 'moonclient')
-rw-r--r--moonclient/moonclient/action_assignments.py51
-rw-r--r--moonclient/moonclient/tests/tests_action_assignments.json366
2 files changed, 402 insertions, 15 deletions
diff --git a/moonclient/moonclient/action_assignments.py b/moonclient/moonclient/action_assignments.py
index 141bfa7c..2301abc1 100644
--- a/moonclient/moonclient/action_assignments.py
+++ b/moonclient/moonclient/action_assignments.py
@@ -17,22 +17,38 @@ class ActionAssignmentsList(Lister):
def get_parser(self, prog_name):
parser = super(ActionAssignmentsList, self).get_parser(prog_name)
parser.add_argument(
+ 'action_id',
+ metavar='<action-uuid>',
+ help='Action UUID',
+ )
+ parser.add_argument(
+ 'category_id',
+ metavar='<category-uuid>',
+ help='Category UUID',
+ )
+ parser.add_argument(
'--intraextension',
metavar='<intraextension-uuid>',
help='IntraExtension UUID',
)
return parser
+ def __get_scope_from_id(self, intraextension_id, category_id, scope_id):
+ data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/action_scopes/{}".format(
+ intraextension_id, category_id),
+ authtoken=True)
+ if scope_id in data:
+ return data[scope_id]
+
def take_action(self, parsed_args):
if not parsed_args.intraextension:
parsed_args.intraextension = self.app.intraextension
- data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/action_assignments".format(parsed_args.intraextension),
- authtoken=True)
- if "action_assignments" not in data:
- raise Exception("Error in command {}: {}".format("ActionAssignmentsList", data))
+ data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/action_assignments/{}/{}".format(
+ parsed_args.intraextension, parsed_args.action_id, parsed_args.category_id),
+ authtoken=True)
return (
- ("category", "value"),
- ((_cat, str(_val)) for _cat, _val in data["action_assignments"].items())
+ ("id", "name"),
+ ((_id, self.__get_scope_from_id(parsed_args.intraextension, parsed_args.category_id, _id)['name']) for _id in data)
)
@@ -50,12 +66,12 @@ class ActionAssignmentsAdd(Command):
)
parser.add_argument(
'action_category',
- metavar='<action_category>',
+ metavar='<action_category-uuid>',
help='Action Category',
)
parser.add_argument(
'action_category_scope',
- metavar='<action_category_scope>',
+ metavar='<action_category_scope-uuid>',
help='Action Category Scope',
)
parser.add_argument(
@@ -65,21 +81,26 @@ class ActionAssignmentsAdd(Command):
)
return parser
+ def __get_scope_from_id(self, intraextension_id, category_id, scope_id):
+ data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/action_scopes/{}".format(
+ intraextension_id, category_id),
+ authtoken=True)
+ if scope_id in data:
+ return data[scope_id]
+
def take_action(self, parsed_args):
if not parsed_args.intraextension:
parsed_args.intraextension = self.app.intraextension
data = self.app.get_url("/v3/OS-MOON/intra_extensions/{}/action_assignments".format(parsed_args.intraextension),
post_data={
"action_id": parsed_args.action_id,
- "action_category": parsed_args.action_category,
- "action_category_scope": parsed_args.action_category_scope
+ "action_category_id": parsed_args.action_category,
+ "action_scope_id": parsed_args.action_category_scope
},
authtoken=True)
- if "action_assignments" not in data:
- raise Exception("Error in command {}".format(data))
return (
- ("category", "value"),
- ((_cat, str(_val)) for _cat, _val in data["action_assignments"].items())
+ ("id", "name"),
+ ((_id, self.__get_scope_from_id(parsed_args.intraextension, parsed_args.category_id, _id)['name']) for _id in data)
)
@@ -117,8 +138,8 @@ class ActionAssignmentsDelete(Command):
parsed_args.intraextension = self.app.intraextension
self.app.get_url("/v3/OS-MOON/intra_extensions/{}/action_assignments/{}/{}/{}".format(
parsed_args.intraextension,
- parsed_args.action_category,
parsed_args.action_id,
+ parsed_args.action_category,
parsed_args.action_category_scope
),
method="DELETE",
diff --git a/moonclient/moonclient/tests/tests_action_assignments.json b/moonclient/moonclient/tests/tests_action_assignments.json
new file mode 100644
index 00000000..27027fae
--- /dev/null
+++ b/moonclient/moonclient/tests/tests_action_assignments.json
@@ -0,0 +1,366 @@
+{
+ "command_options": "-f value",
+ "tests_group": {
+ "authz": [
+ {
+ "name": "list tenant",
+ "command": "tenant list",
+ "result": "(?!alt_demo)",
+ "description": "Check if tenant alt_demo is used."
+ },
+ {
+ "name": "add tenant alt_demo",
+ "command": "tenant add alt_demo",
+ "result": "^$",
+ "description": "Add a new tenant",
+ "command_options": ""
+ },
+ {
+ "name": "check tenant alt_demo",
+ "command": "tenant list",
+ "result": "(?P<uuid>\\w+)\\s+alt_demo",
+ "description": "Check that tenant alt_demo has been correctly added"
+ },
+ {
+ "name": "create_intraextension_authz",
+ "command": "intraextension create --policy_model policy_authz authz_test",
+ "result": "IntraExtension created: (?P<uuid_authz>\\w+)",
+ "description": "Create an authz intra extension",
+ "command_options": ""
+ },
+ {
+ "name": "list_intraextension_authz",
+ "command": "intraextension list",
+ "result": "$uuid_authz",
+ "description": "Check the existence of that authz intra extension"
+ },
+ {
+ "name": "set_tenant_authz",
+ "command": "tenant set --authz $uuid_authz $uuid",
+ "result": "",
+ "description": "Connect the authz intra extension to the tenant alt_demo",
+ "command_options": ""
+ },
+ {
+ "name": "select_authz_ie",
+ "command": "intraextension select $uuid_authz",
+ "result": "Select $uuid_authz IntraExtension.",
+ "description": "Select the authz IntraExtension",
+ "command_options": ""
+ },
+ {
+ "name": "check_select_authz_ie",
+ "command": "intraextension show selected",
+ "result": "$uuid_authz",
+ "description": "Check the selected authz IntraExtension",
+ "command_options": "-c id -f value"
+ },
+ {
+ "name": "add_action",
+ "command": "action add boot",
+ "result": "",
+ "description": "Add the new action category boot",
+ "command_options": ""
+ },
+ {
+ "name": "list_action",
+ "command": "action list",
+ "result": "(?P<uuid_action>\\w+)\\s+boot",
+ "description": "Check that boot action was added."
+ },
+ {
+ "name": "add_action_category",
+ "command": "action category add my_new_action_category",
+ "result": "",
+ "description": "Add the new action category my_new_action_category",
+ "command_options": ""
+ },
+ {
+ "name": "list_action_category",
+ "command": "action category list",
+ "result": "(?P<uuid_action_category>\\w+)\\s+my_new_action_category",
+ "description": "Check that my_new_action_category action_category was added."
+ },
+ {
+ "name": "add_scope",
+ "command": "action scope add $uuid_action_category testers --description \"test engineers\"",
+ "result": "^$",
+ "description": "Add one scope to action category role",
+ "command_options": ""
+ },
+ {
+ "name": "check_added_scope",
+ "command": "action scope list $uuid_action_category",
+ "result": "(?P<uuid_action_scope>\\w+)\\s+testers\\s+test engineers",
+ "description": "Check added scope.",
+ "command_options": "-c id -c name -c description -f value"
+ },
+
+ {
+ "name": "add_assignment",
+ "command": "action assignment add $uuid_action $uuid_action_category $uuid_action_scope",
+ "result": "^$",
+ "description": "Add a new assignment",
+ "command_options": ""
+ },
+ {
+ "name": "check_added_assignment",
+ "command": "action assignment list $uuid_action $uuid_action_category",
+ "result": "$uuid_action_scope testers",
+ "description": "Check added assignment.",
+ "command_options": "-c id -c name -f value"
+ },
+
+ {
+ "name": "delete_assignment",
+ "command": "action assignment delete $uuid_action $uuid_action_category $uuid_action_scope",
+ "result": "^$",
+ "description": "Delete the added assignment",
+ "command_options": ""
+ },
+ {
+ "name": "check_deleted_assignment",
+ "command": "action assignment list $uuid_action $uuid_action_category",
+ "result": "(?!$uuid_action_scope)",
+ "description": "Check deleted assignment.",
+ "command_options": "-c id -f value"
+ },
+
+ {
+ "name": "delete_scope",
+ "command": "action scope delete $uuid_action_category $uuid_action_scope",
+ "result": "^$",
+ "description": "Delete one scope from action category role",
+ "command_options": ""
+ },
+ {
+ "name": "delete_action_category",
+ "command": "action category delete $uuid_action_category",
+ "result": "^$",
+ "description": "Delete my_new_action_category action_category.",
+ "command_options": ""
+ },
+ {
+ "name": "list_action_category",
+ "command": "action category list",
+ "result": "(?!$uuid_action_category)",
+ "description": "Check that my_new_action_category action_category was deleted."
+ },
+ {
+ "name": "delete_authz_intra_extension",
+ "command": "intraextension delete $uuid_authz",
+ "result": "",
+ "description": "Delete the authz intra extension",
+ "command_options": ""
+ },
+ {
+ "name": "delete_tenant",
+ "command": "tenant delete $uuid",
+ "result": "",
+ "description": "Delete the tenant alt_demo",
+ "command_options": ""
+ }
+ ],
+ "authz_and_admin": [
+ {
+ "name": "list tenant",
+ "command": "tenant list",
+ "result": "(?!alt_demo)",
+ "description": "Check if tenant alt_demo is used."
+ },
+ {
+ "name": "add tenant alt_demo",
+ "command": "tenant add alt_demo",
+ "result": "^$",
+ "description": "Add a new tenant",
+ "command_options": ""
+ },
+ {
+ "name": "check tenant alt_demo",
+ "command": "tenant list",
+ "result": "(?P<uuid>\\w+)\\s+alt_demo",
+ "description": "Check that tenant alt_demo has been correctly added"
+ },
+ {
+ "name": "create_intraextension_authz",
+ "command": "intraextension create --policy_model policy_authz authz_test",
+ "result": "IntraExtension created: (?P<uuid_authz>\\w+)",
+ "description": "Create an authz intra extension",
+ "command_options": ""
+ },
+ {
+ "name": "list_intraextension_authz",
+ "command": "intraextension list",
+ "result": "$uuid_authz",
+ "description": "Check the existence of that authz intra extension"
+ },
+ {
+ "name": "create_intraextension_admin",
+ "command": "intraextension create --policy_model policy_admin admin_test",
+ "result": "IntraExtension created: (?P<uuid_admin>\\w+)",
+ "description": "Create an admin intra extension",
+ "command_options": ""
+ },
+ {
+ "name": "list_intraextension_admin",
+ "command": "intraextension list",
+ "result": "$uuid_admin",
+ "description": "Check the existence of that admin intra extension"
+ },
+ {
+ "name": "set_tenant_authz",
+ "command": "tenant set --authz $uuid_authz $uuid",
+ "result": "",
+ "description": "Connect the authz intra extension to the tenant demo",
+ "command_options": ""
+ },
+ {
+ "name": "set_tenant_admin",
+ "command": "tenant set --admin $uuid_admin $uuid",
+ "result": "",
+ "description": "Connect the authz intra extension to the tenant alt_demo",
+ "command_options": ""
+ },
+ {
+ "name": "check tenant alt_demo and authz ie",
+ "command": "tenant list",
+ "result": "alt_demo $uuid_authz",
+ "description": "Check that authz intra extension has been correctly added to the tenant.",
+ "command_options": "-c name -c intra_authz_extension_id -f value"
+ },
+ {
+ "name": "check tenant alt_demo and admin ie",
+ "command": "tenant list",
+ "result": "$uuid_admin",
+ "description": "Check that admin intra extension has been correctly added to the tenant.",
+ "command_options": "-c intra_admin_extension_id -f value"
+ },
+ {
+ "name": "select_authz_ie",
+ "command": "intraextension select $uuid_authz",
+ "result": "Select $uuid_authz IntraExtension.",
+ "description": "Select the authz IntraExtension",
+ "command_options": ""
+ },
+ {
+ "name": "check_select_authz_ie",
+ "command": "intraextension show selected",
+ "result": "$uuid_authz",
+ "description": "Check the selected authz IntraExtension",
+ "command_options": "-c id -f value"
+ },
+ {
+ "name": "add_action",
+ "command": "action add boot",
+ "result": "",
+ "description": "Add the new action category boot",
+ "command_options": ""
+ },
+ {
+ "name": "list_action",
+ "command": "action list",
+ "result": "(?P<uuid_action>\\w+)\\s+boot",
+ "description": "Check that boot action was added."
+ },
+ {
+ "name": "add_action_category",
+ "command": "action category add my_new_action_category",
+ "result": "",
+ "description": "Add the new action category my_new_action_category",
+ "command_options": ""
+ },
+ {
+ "name": "list_action_category",
+ "command": "action category list",
+ "result": "(?P<uuid_action_category>\\w+)\\s+my_new_action_category",
+ "description": "Check that my_new_action_category action_category was added."
+ },
+ {
+ "name": "add_scope",
+ "command": "action scope add $uuid_action_category testers --description \"test engineers\"",
+ "result": "^$",
+ "description": "Add one scope to action category role",
+ "command_options": ""
+ },
+ {
+ "name": "check_added_scope",
+ "command": "action scope list $uuid_action_category",
+ "result": "(?P<uuid_action_scope>\\w+)\\s+testers\\s+test engineers",
+ "description": "Check added scope.",
+ "command_options": "-c id -c name -c description -f value"
+ },
+
+ {
+ "name": "add_assignment",
+ "command": "action assignment add $uuid_action $uuid_action_category $uuid_action_scope",
+ "result": "^$",
+ "description": "Add a new assignment",
+ "command_options": ""
+ },
+ {
+ "name": "check_added_assignment",
+ "command": "action assignment list $uuid_action $uuid_action_category",
+ "result": "$uuid_action_scope testers",
+ "description": "Check added assignment.",
+ "command_options": "-c id -c name -f value"
+ },
+
+ {
+ "name": "delete_assignment",
+ "command": "action assignment delete $uuid_action $uuid_action_category $uuid_action_scope",
+ "result": "^$",
+ "description": "Delete the added assignment",
+ "command_options": ""
+ },
+ {
+ "name": "check_deleted_assignment",
+ "command": "action assignment list $uuid_action $uuid_action_category",
+ "result": "(?!$uuid_action_scope)",
+ "description": "Check deleted assignment.",
+ "command_options": "-c id -f value"
+ },
+
+ {
+ "name": "delete_scope",
+ "command": "action scope delete $uuid_action_category $uuid_action_scope",
+ "result": "^$",
+ "description": "Delete one scope from action category role",
+ "command_options": ""
+ },
+ {
+ "name": "delete_action_category",
+ "command": "action category delete $uuid_action_category",
+ "result": "^$",
+ "description": "Delete my_new_action_category action_category.",
+ "command_options": ""
+ },
+ {
+ "name": "list_action_category",
+ "command": "action category list",
+ "result": "(?!$uuid_action_category)",
+ "description": "Check that my_new_action_category action_category was deleted."
+ },
+ {
+ "name": "delete_admin_intra_extension",
+ "command": "intraextension delete $uuid_admin",
+ "result": "",
+ "description": "Delete the admin intra extension",
+ "command_options": ""
+ },
+ {
+ "name": "delete_authz_intra_extension",
+ "command": "intraextension delete $uuid_authz",
+ "result": "",
+ "description": "Delete the authz intra extension",
+ "command_options": ""
+ },
+ {
+ "name": "delete_tenant",
+ "command": "tenant delete $uuid",
+ "result": "",
+ "description": "Delete the tenant alt_demo",
+ "command_options": ""
+ }
+ ]
+ }
+} \ No newline at end of file