From 7bb53c64da2dcf88894bfd31503accdd81498f3d Mon Sep 17 00:00:00 2001 From: Thomas Duval Date: Wed, 3 Jun 2020 10:06:52 +0200 Subject: Update to new version 5.4 Signed-off-by: Thomas Duval Change-Id: Idcd868133d75928a1ffd74d749ce98503e0555ea --- .../python_moonclient/cli/__init__.py | 0 python_moonclient/python_moonclient/cli/authz.py | 55 ----- python_moonclient/python_moonclient/cli/export.py | 32 --- python_moonclient/python_moonclient/cli/import.py | 28 --- python_moonclient/python_moonclient/cli/models.py | 159 ------------- python_moonclient/python_moonclient/cli/parser.py | 98 -------- python_moonclient/python_moonclient/cli/pdps.py | 190 --------------- .../python_moonclient/cli/policies.py | 264 --------------------- .../python_moonclient/cli/projects.py | 54 ----- python_moonclient/python_moonclient/cli/slaves.py | 120 ---------- 10 files changed, 1000 deletions(-) delete mode 100644 python_moonclient/python_moonclient/cli/__init__.py delete mode 100644 python_moonclient/python_moonclient/cli/authz.py delete mode 100644 python_moonclient/python_moonclient/cli/export.py delete mode 100644 python_moonclient/python_moonclient/cli/import.py delete mode 100644 python_moonclient/python_moonclient/cli/models.py delete mode 100644 python_moonclient/python_moonclient/cli/parser.py delete mode 100644 python_moonclient/python_moonclient/cli/pdps.py delete mode 100644 python_moonclient/python_moonclient/cli/policies.py delete mode 100644 python_moonclient/python_moonclient/cli/projects.py delete mode 100644 python_moonclient/python_moonclient/cli/slaves.py (limited to 'python_moonclient/python_moonclient/cli') diff --git a/python_moonclient/python_moonclient/cli/__init__.py b/python_moonclient/python_moonclient/cli/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/python_moonclient/python_moonclient/cli/authz.py b/python_moonclient/python_moonclient/cli/authz.py deleted file mode 100644 index 4edc307f..00000000 --- a/python_moonclient/python_moonclient/cli/authz.py +++ /dev/null @@ -1,55 +0,0 @@ -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) diff --git a/python_moonclient/python_moonclient/cli/export.py b/python_moonclient/python_moonclient/cli/export.py deleted file mode 100644 index 4ea5cf4f..00000000 --- a/python_moonclient/python_moonclient/cli/export.py +++ /dev/null @@ -1,32 +0,0 @@ -import json - -from python_moonclient.core import models, policies, pdp, json_export -from python_moonclient.cli.parser import Parser - -from cliff.command import Command - - -class Export(Command): - """dump the complete moon database into a json file""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_filename_argument(parser) - Parser.add_common_options(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) - json_export.init(consul_host, consul_port) - res = json_export.export_to_json() - if "content" in res: - json_file = open(parsed_args.filename, "w") - json.dump(res["content"], json_file) - return "Export ok!" - - return "Unexpected results : the returned json does not have the correct syntax" diff --git a/python_moonclient/python_moonclient/cli/import.py b/python_moonclient/python_moonclient/cli/import.py deleted file mode 100644 index efefc304..00000000 --- a/python_moonclient/python_moonclient/cli/import.py +++ /dev/null @@ -1,28 +0,0 @@ -from python_moonclient.core import models, policies, pdp, json_import -from python_moonclient.cli.parser import Parser -from python_moonclient.cli.projects import ProjectsUtils - -from cliff.command import Command - - -class Import(Command): - """import a json file describing pdps """ - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_filename_argument(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) - json_import.init(consul_host, consul_port) - res = json_import.import_json(parsed_args.filename) - if "message" in res: - return res["message"] - return res diff --git a/python_moonclient/python_moonclient/cli/models.py b/python_moonclient/python_moonclient/cli/models.py deleted file mode 100644 index 369d9027..00000000 --- a/python_moonclient/python_moonclient/cli/models.py +++ /dev/null @@ -1,159 +0,0 @@ -import logging -from importlib.machinery import SourceFileLoader -from cliff.lister import Lister -from cliff.command import Command -from python_moonclient.core import models, policies, pdp -from python_moonclient.cli.parser import Parser -from python_moonclient.cli.projects import ProjectsUtils - -LOGGER = logging.getLogger("moonclient.cli.pdps") - - -class ModelUtils: - def __init__(self): - pass - - @staticmethod - def get_model_id(model, parsed_id, parsed_name): - modelz = models.check_model() - for _model_key, _model_value in modelz["models"].items(): - if _model_key == parsed_id or _model_value['name'] == parsed_name: - # LOGGER.info( - # "Found pdp : [key='{}' , name='{}']".format(_pdp_key, _pdp_value['name'])) - return _model_key - return None - - @staticmethod - def get_model_name(pdp, parsed_id, parsed_name): - modelz = models.check_model() - for _model_key, _model_value in modelz["models"].items(): - if _model_key == parsed_id or _model_value['name'] == parsed_name: - # LOGGER.info( - # "Found pdp : [key='{}' , name='{}']".format(_pdp_key, _pdp_value['name'])) - return _model_value['name'] - return None - - -class Models(Lister): - """show the list of existing pdps """ - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(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) - - modelz = models.check_model() - - return (('Key', 'Name'), - ((_model_key, _model_value['name']) for _model_key, _model_value in - modelz["models"].items()) - ) - - -class SubjectCategories(Lister): - """show the list of existing categories """ - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(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) - - subject_categories = models.check_subject_category() - print(subject_categories) - return (('Key', 'Name'), - ((_model_key, _model_value['name']) for _model_key, _model_value in - subject_categories["subject_categories"].items()) - ) - - -class ObjectCategories(Lister): - """show the list of existing categories """ - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(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) - - object_categories = models.check_object_category() - print(object_categories) - return (('Key', 'Name'), - ((_model_key, _model_value['name']) for _model_key, _model_value in - object_categories["object_categories"].items()) - ) - - -class ActionCategories(Lister): - """show the list of existing categories """ - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(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) - - action_categories = models.check_action_category() - print(action_categories) - return (('Key', 'Name'), - ((_model_key, _model_value['name']) for _model_key, _model_value in - action_categories["action_categories"].items()) - ) - - -class SubjectCategoryAdd(Command): - """show the list of existing categories """ - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_name_argument(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) - - subject_category_id = models.add_subject_category(parsed_args.name) - if subject_category_id is not None: - print("Subject category created with id {}".format(subject_category_id)) - else: - print("Error while creating subject category") - # subject_categories = models.check_subject_category(subject_category_id) diff --git a/python_moonclient/python_moonclient/cli/parser.py b/python_moonclient/python_moonclient/cli/parser.py deleted file mode 100644 index e71cd6c9..00000000 --- a/python_moonclient/python_moonclient/cli/parser.py +++ /dev/null @@ -1,98 +0,0 @@ -class Parser: - - @staticmethod - def add_common_options(parser): - parser.add_argument('--consul-host', - help='Set the name of the consul server (default: 127.0.0.1)', - default="127.0.0.1") - parser.add_argument('--consul-port', - help='Set the port of the consult server (default: 30005)', - default="30005") - parser.add_argument("--verbose", "-v", action='store_true', help="verbose mode") - parser.add_argument("--debug", "-d", action='store_true', help="debug mode") - - @staticmethod - def add_filename_argument(parser): - parser.add_argument('filename', help='configuration filename in json format') - - @staticmethod - def add_name_argument(parser): - Parser._add_name_argument(parser) - - @staticmethod - def add_policy_argument(parser): - group = parser.add_mutually_exclusive_group(required=True) - group.add_argument('--policy-name', help='name of the policy') - group.add_argument('--policy-id', help='id of the policy') - - @staticmethod - def add_category_argument(parser): - group = parser.add_mutually_exclusive_group(required=True) - group.add_argument('--category-name', help='name of the category') - group.add_argument('--category-id', help='id of the category') - - @staticmethod - def add_id_or_name_argument(parser): - group = parser.add_mutually_exclusive_group(required=True) - Parser._add_id_argument(group) - Parser._add_name_argument(group) - - @staticmethod - def _add_id_argument(parser): - parser.add_argument('--id', help='id of the element') - - @staticmethod - def _add_name_argument(parser): - parser.add_argument('--name', help='name of the element') - - @staticmethod - def add_id_or_name_pdp_argument(parser): - group = parser.add_mutually_exclusive_group(required=True) - Parser._add_id_pdp_argument(group) - Parser._add_name_pdp_argument(group) - - @staticmethod - def _add_id_pdp_argument(parser): - parser.add_argument('--id-pdp', help='id of the pdp') - - @staticmethod - def _add_name_pdp_argument(parser): - parser.add_argument('--name-pdp', help='name of the pdp') - - @staticmethod - def add_id_or_name_project_argument(parser): - group = parser.add_mutually_exclusive_group(required=True) - Parser._add_id_project_argument(group) - Parser._add_name_project_argument(group) - - @staticmethod - def _add_id_project_argument(parser): - parser.add_argument('--id-project', help='id of the project') - - @staticmethod - def _add_name_project_argument(parser): - parser.add_argument('--name-project', help='name of the project') - - @staticmethod - def add_authz_arguments(parser): - parser.add_argument("--dry-run", "-n", action='store_true', - help="Dry run", dest="dry_run") - parser.add_argument("--destination", - help="Set the type of output needed " - "(default: wrapper, other possible type: " - "interface).", - default="wrapper") - parser.add_argument("--authz-host", - help="Set the name of the authz server to test" - "(default: 127.0.0.1).", - default="127.0.0.1") - parser.add_argument("--authz-port", - help="Set the port of the authz server to test" - "(default: 31002).", - default="31002") - parser.add_argument("--stress-test", "-s", action='store_true', - dest='stress_test', - help="Execute stressing tests (warning delta measures " - "will be false, implies -t)") - parser.add_argument("--write", "-w", help="Write test data to a JSON file", - default="/tmp/data.json") diff --git a/python_moonclient/python_moonclient/cli/pdps.py b/python_moonclient/python_moonclient/cli/pdps.py deleted file mode 100644 index a4f7bba0..00000000 --- a/python_moonclient/python_moonclient/cli/pdps.py +++ /dev/null @@ -1,190 +0,0 @@ -import logging -from importlib.machinery import SourceFileLoader -from cliff.lister import Lister -from cliff.command import Command - -from python_moonclient.core import models, policies, pdp -from python_moonclient.cli.parser import Parser -from python_moonclient.cli.projects import ProjectsUtils - -LOGGER = logging.getLogger("moonclient.cli.pdps") - - -class PdpUtils: - def __init__(self): - pass - - @staticmethod - def get_pdp_id(pdp, parsed_id, parsed_name): - pdps = pdp.check_pdp() - for _pdp_key, _pdp_value in pdps["pdps"].items(): - if _pdp_key == parsed_id or _pdp_value['name'] == parsed_name: - # LOGGER.info( - # "Found pdp : [key='{}' , name='{}']".format(_pdp_key, _pdp_value['name'])) - return _pdp_key - return None - - @staticmethod - def get_pdp_name(pdp, parsed_id, parsed_name): - pdps = pdp.check_pdp() - for _pdp_key, _pdp_value in pdps["pdps"].items(): - if _pdp_key == parsed_id or _pdp_value['name'] == parsed_name: - # LOGGER.info( - # "Found pdp : [key='{}' , name='{}']".format(_pdp_key, _pdp_value['name'])) - return _pdp_value['name'] - return None - - -class Pdps(Lister): - """show the list of existing pdps """ - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(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) - - pdps = pdp.check_pdp() - - return (('Key', 'Name', 'Project id'), - ((_pdp_key, _pdp_value['name'], _pdp_value['keystone_project_id']) for - _pdp_key, _pdp_value in pdps["pdps"].items()) - ) - - -class CreatePdp(Command): - """create a new pdp from a json file and returns the newly created pdp id""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_filename_argument(parser) - return parser - - def take_action(self, parsed_args): - - requests_log = logging.getLogger("requests.packages.urllib3") - requests_log.setLevel(logging.WARNING) - requests_log.propagate = True - - consul_host = parsed_args.consul_host - consul_port = parsed_args.consul_port - # project_id = args.keystone_pid - - 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() - - _models = models.check_model() - for _model_id, _model_value in _models['models'].items(): - if _model_value['name'] == scenario.model_name: - model_id = _model_id - meta_rule_list = _model_value['meta_rules'] - models.create_model(scenario, model_id) - break - else: - model_id, meta_rule_list = models.create_model(scenario) - policy_id = policies.create_policy(scenario, model_id, meta_rule_list) - pdp_id = pdp.create_pdp(scenario, policy_id=policy_id) - pdp_name = PdpUtils.get_pdp_name(pdp, pdp_id, None) - LOGGER.info("Pdp created : [id='{}', name='{}']".format(pdp_id, pdp_name)) - - -class DeletePdp(Command): - """delete an existing pdp""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_id_or_name_argument(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) - - _search = PdpUtils.get_pdp_id(pdp, parsed_args.id, parsed_args.name) - _pdp_key = _search - if _pdp_key is None: - LOGGER.error("Error pdp not found ") - return - - # if parsed_args.id: - # logger.info("Deleting: {}".format(parsed_args.id)) - # _search = parsed_args.id - # if parsed_args.name: - # logger.info("Deleting: {}".format(parsed_args.name)) - # _search = parsed_args.name - - # pdps = pdp.check_pdp() - # for _pdp_key, _pdp_value in pdps["pdps"].items(): - # if _pdp_key == _search or _pdp_value['name'] == _search: - LOGGER.info("Found {}".format(_pdp_key)) - pdp.delete_pdp(_pdp_key) - - pdps = pdp.check_pdp() - LOGGER.info("Listing all PDP:") - for _pdp_key, _pdp_value in pdps["pdps"].items(): - if _pdp_key == _search: # or _pdp_value['name'] == _search: - LOGGER.error("Error in deleting {}".format(_search)) - - return (('Key', 'Name', 'Project id'), - ((_pdp_key, _pdp_value['name'], _pdp_value['keystone_project_id']) for - _pdp_key, _pdp_value in - pdps["pdps"].items()) - ) - - -class MapPdp(Command): - """map an existing pdp to a keystone project""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_id_or_name_pdp_argument(parser) - Parser.add_id_or_name_project_argument(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) - - # _pdp_key = PdpUtils.get_pdp_id(pdp, parsed_args.id_pdp, parsed_args.name_pdp) - _pdp_name = PdpUtils.get_pdp_name(pdp, parsed_args.id_pdp, parsed_args.name_pdp) - if _pdp_name is None: - LOGGER.error("Error pdp not found ") - return - - # _project_key = ProjectsUtils.get_project_id( - # pdp, parsed_args.id_project, parsed_args.name_project) - _project_name = ProjectsUtils.get_project_name(pdp, parsed_args.id_project, - parsed_args.name_project) - if _project_name is None: - LOGGER.error("Error project not found ") - return - - LOGGER.info("Mapping: {}=>{}".format(_pdp_name, _project_name)) - - # pdp.map_to_keystone(pdp_id=parsed_args.id_pdp, keystone_project_id=parsed_args.id_project) - pdp.map_to_keystone(pdp_id=_pdp_name, keystone_project_id=_project_name) diff --git a/python_moonclient/python_moonclient/cli/policies.py b/python_moonclient/python_moonclient/cli/policies.py deleted file mode 100644 index af8e959b..00000000 --- a/python_moonclient/python_moonclient/cli/policies.py +++ /dev/null @@ -1,264 +0,0 @@ -import logging -from cliff.command import Command -from cliff.lister import Lister - -from python_moonclient.cli.parser import Parser - -from python_moonclient.core import models, policies, pdp - -LOGGER = logging.getLogger("moonclient.cli.pdps") - - -class PoliciesUtils: - def __init__(self): - pass - - @staticmethod - def get_policy_id(policies, parsed_id, parsed_name): - _policies = policies.check_policy() - for _policy_key, _policy_value in _policies["policies"].items(): - if _policy_key == parsed_id or _policy_value['name'] == parsed_name: - # logger.info("Found {}".format(_policy_key)) - return _policy_key - return None - - @staticmethod - def get_policy_name(policies, parsed_id, parsed_name): - _policies = policies.check_policy() - for _policy_key, _policy_value in _policies["policies"].items(): - if _policy_key == parsed_id or _policy_value['name'] == parsed_name: - # logger.info("Found {}".format(_policy_key)) - return _policy_value['name'] - return None - - -class Policies(Lister): - """show the list of existing policies""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(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) - _policies = policies.check_policy() - - return (('Key', 'Name'), - ((_policy_key, _policy_value['name']) for _policy_key, _policy_value in - _policies["policies"].items()) - ) - - -class Subjects(Lister): - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_id_or_name_argument(parser) - Parser.add_policy_argument(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) - - _policies = policies.check_subject(parsed_args.id, parsed_args.policy_id) - - return (('Key', 'Name'), - ((_policy_key, _policy_value['name']) for _policy_key, _policy_value in - _policies["policies"].items()) - ) - - -class DeletePolicy(Command): - """delete an existing policy""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_id_or_name_argument(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) - - policy_id = PoliciesUtils.get_policy_id(policies, parsed_args.id, parsed_args.name) - policy_name = PoliciesUtils.get_policy_name(policies, parsed_args.id, parsed_args.name) - - LOGGER.info("Deleting: {}".format(policy_name)) - pdp.delete_pdp(policy_id) - - _policies = policies.check_policy() - # logger.info("Listing all Policies:") - for _policy_key, _policy_value in _policies["policies"].items(): - # print(" {} {}".format(_policy_key, _policy_value['name'])) - if _policy_key == policy_id: - LOGGER.error("Error in deleting {}".format(policy_id)) - - return (('Key', 'Value'), - ((_policy_key, _policy_value) for _policy_key, _policy_value in - _policies["policies"].items()) - ) - - -class SubjectDatas(Lister): - """list the subject data """ - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_policy_argument(parser) - Parser.add_category_argument(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) - - subject_data = policies.check_subject_data(parsed_args.policy_id, None, - parsed_args.category_id) - if len(subject_data["subject_data"]) == 0: - return (('Key', 'Name'), ()) - - return (('Key', 'Name'), - ((_subject_key, subject_data["subject_data"][0]["data"][_subject_key]['name']) for - _subject_key in subject_data["subject_data"][0]["data"].keys()) - ) - - -class ObjectDatas(Lister): - """list the object data""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_policy_argument(parser) - Parser.add_category_argument(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) - - object_datas = policies.check_object_data(parsed_args.policy_id, None, - parsed_args.category_id) - - if len(object_datas["object_data"]) == 0: - return (('Key', 'Name'), ()) - object_data = object_datas["object_data"][0]["data"] - res = (('Key', 'Name'), - ((_object_key, object_data[_object_key]["value"]['name']) for _object_key in - list(object_data)) - ) - return res - - -class ActionDatas(Lister): - """list the action data""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_policy_argument(parser) - Parser.add_category_argument(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) - - action_datas = policies.check_action_data(parsed_args.policy_id, None, - parsed_args.category_id) - - if len(action_datas["action_data"]) == 0: - return (('Key', 'Name'), ()) - action_data = action_datas["action_data"][0]["data"] - res = (('Key', 'Name'), - ((_action_key, action_data[_action_key]["value"]['name']) for _action_key in - list(action_data)) - ) - return res - - -class MetaRules(Lister): - """list the meta rules""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(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) - - metarule_datas = policies.check_meta_rule() - - if len(metarule_datas["meta_rules"]) == 0: - return (('Key', 'Name'), ()) - - metarule_data = metarule_datas["meta_rules"] - res = (('Key', 'Name'), - ((_key, metarule_data[_key]['name']) for _key in list(metarule_data)) - ) - return res - - -class CreateSubjectData(Command): - """create a subject data according to a policy and a category""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_policy_argument(parser) - Parser.add_category_argument(parser) - Parser.add_name_argument(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) - - subject_data_id = policies.add_subject_data(parsed_args.policy_id, parsed_args.category_id, - parsed_args.name) - if subject_data_id is not None: - print("Subject category created with id {}".format(subject_data_id)) - else: - print("Error while creating subject category") - subject_data = policies.check_subject_data(parsed_args.policy_id, None, - parsed_args.category_id) - # subject_categories = models.check_subject_category(subject_category_id) diff --git a/python_moonclient/python_moonclient/cli/projects.py b/python_moonclient/python_moonclient/cli/projects.py deleted file mode 100644 index 1caa0ace..00000000 --- a/python_moonclient/python_moonclient/cli/projects.py +++ /dev/null @@ -1,54 +0,0 @@ -import logging -from python_moonclient.core import models, policies, pdp -from python_moonclient.cli.parser import Parser -from cliff.lister import Lister - -LOGGER = logging.getLogger("moonclient.cli.projects") - - -class ProjectsUtils: - def __init__(self): - pass - - @staticmethod - def get_project_id(pdp, parsed_id, parsed_name): - projects = pdp.get_keystone_projects() - for _project_value in projects['projects']: - if _project_value['id'] == parsed_id or _project_value['name'] == parsed_name: - # LOGGER.info( - # "Found project : [key='{}' , name='{}']".format(_project_value['id'], _project_value['name'])) - return _project_value['id'] - return None - - @staticmethod - def get_project_name(pdp, parsed_id, parsed_name): - projects = pdp.get_keystone_projects() - for _project_value in projects['projects']: - if _project_value['id'] == parsed_id or _project_value['name'] == parsed_name: - # LOGGER.info( - # "Found project : [key='{}' , name='{}']".format(_project_value['id'], _project_value['name'])) - return _project_value['name'] - return None - - -class Projects(Lister): - """show the list of projects""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(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) - - projects = pdp.get_keystone_projects() - - return (('Id', 'Name'), - ((_project['id'], _project['name']) for _project in projects['projects']) - ) diff --git a/python_moonclient/python_moonclient/cli/slaves.py b/python_moonclient/python_moonclient/cli/slaves.py deleted file mode 100644 index 587e9033..00000000 --- a/python_moonclient/python_moonclient/cli/slaves.py +++ /dev/null @@ -1,120 +0,0 @@ -import logging -from cliff.lister import Lister -from cliff.command import Command - -from python_moonclient.core import models, policies, pdp, slaves -from python_moonclient.cli.parser import Parser - -LOGGER = logging.getLogger("moonclient.cli.slaves") - - -class SlavesUtils: - def __init__(self): - pass - - @staticmethod - def get_slave_name(slaves, parsed_name): - _slaves = slaves.get_slaves() - for _slave_value in _slaves['slaves']: - if _slave_value['name'] == parsed_name: - LOGGER.info("Found {}".format(_slave_value['name'])) - return _slave_value['name'] - return None - - -class Slaves(Lister): - """show the list of slaves""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - return parser - - def take_action(self, parsed_args): - requests_log = logging.getLogger("requests.packages.urllib3") - requests_log.setLevel(logging.WARNING) - requests_log.propagate = True - - 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) - slaves.init(consul_host, consul_port) - - return (('Name', 'Configured'), - ((value['name'], value['configured']) for value in - slaves.get_slaves().get('slaves', dict())) - ) - - -class SetSlave(Command): - """update an existing slave to a configured state""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_name_argument(parser) - return parser - - def take_action(self, parsed_args): - requests_log = logging.getLogger("requests.packages.urllib3") - requests_log.setLevel(logging.WARNING) - requests_log.propagate = True - - 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) - slaves.init(consul_host, consul_port) - - slave_input_name = parsed_args.name - if parsed_args.name is None: - slave_input_name = "kubernetes-admin@kubernetes" - slaves.set_slave(slave_input_name) - - # if slave_name is None: - # slave_name = "kubernetes-admin@kubernetes" - - # if parsed_args.name: - # slave_name = parsed_args.name - print(" {} (configured=True)".format(slave_input_name)) - - # for value in slaves.set_slave(slave_name).get('slaves', dict()): - # if value['configured']: - # print(" {} (configured)".format(value['name'])) - # else: - # print(" {} (not configured)".format(value['name']))# - - -class DeleteSlave(Command): - """update an existing slave to a unconfigured state""" - - def get_parser(self, prog_name): - parser = super().get_parser(prog_name) - Parser.add_common_options(parser) - Parser.add_name_argument(parser) - return parser - - def take_action(self, parsed_args): - requests_log = logging.getLogger("requests.packages.urllib3") - requests_log.setLevel(logging.WARNING) - requests_log.propagate = True - - 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) - slaves.init(consul_host, consul_port) - - slave_input_name = parsed_args.name - if parsed_args.name is None: - slave_input_name = "kubernetes-admin@kubernetes" - - slaves.delete_slave(slave_input_name) - print(" {} (configured=False)".format(slave_input_name)) -- cgit 1.2.3-korg