aboutsummaryrefslogtreecommitdiffstats
path: root/old/python_moonclient/python_moonclient/cli/authz.py
diff options
context:
space:
mode:
Diffstat (limited to 'old/python_moonclient/python_moonclient/cli/authz.py')
-rw-r--r--old/python_moonclient/python_moonclient/cli/authz.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/old/python_moonclient/python_moonclient/cli/authz.py b/old/python_moonclient/python_moonclient/cli/authz.py
new file mode 100644
index 00000000..4edc307f
--- /dev/null
+++ b/old/python_moonclient/python_moonclient/cli/authz.py
@@ -0,0 +1,55 @@
+import logging
+
+from importlib.machinery import SourceFileLoader
+from cliff.command import Command
+
+from python_moonclient.core import models, policies, pdp, authz
+from python_moonclient.cli.parser import Parser
+from python_moonclient.cli.projects import ProjectsUtils
+
+LOGGER = logging.getLogger("moonclient.cli.authz")
+
+
+class SendAuthz(Command):
+ """send authorizations to wrapper"""
+
+ def get_parser(self, prog_name):
+ parser = super().get_parser(prog_name)
+ Parser.add_common_options(parser)
+ Parser.add_filename_argument(parser)
+ Parser.add_id_or_name_project_argument(parser)
+ Parser.add_authz_arguments(parser)
+ return parser
+
+ def take_action(self, parsed_args):
+ consul_host = parsed_args.consul_host
+ consul_port = parsed_args.consul_port
+
+ models.init(consul_host, consul_port)
+ policies.init(consul_host, consul_port)
+ pdp.init(consul_host, consul_port)
+
+ if parsed_args.filename:
+ LOGGER.info("Loading: {}".format(parsed_args.filename))
+ m = SourceFileLoader("scenario", parsed_args.filename)
+ scenario = m.load_module()
+
+ keystone_project_id = ProjectsUtils.get_project_id(pdp, parsed_args.id_project,
+ parsed_args.name_project)
+ if keystone_project_id is None:
+ LOGGER.error("Project not found !")
+
+ keystone_project_id = pdp.get_keystone_id(keystone_project_id)
+ time_data = authz.send_requests(
+ scenario,
+ parsed_args.authz_host,
+ parsed_args.authz_port,
+ keystone_project_id,
+ request_second=parsed_args.request_second,
+ limit=parsed_args.limit,
+ dry_run=parsed_args.dry_run,
+ stress_test=parsed_args.stress_test,
+ destination=parsed_args.destination
+ )
+ if not parsed_args.dry_run:
+ authz.save_data(parsed_args.write, time_data)