diff options
Diffstat (limited to 'moonclient/moonclient/rules.py')
-rw-r--r-- | moonclient/moonclient/rules.py | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/moonclient/moonclient/rules.py b/moonclient/moonclient/rules.py deleted file mode 100644 index 207533a8..00000000 --- a/moonclient/moonclient/rules.py +++ /dev/null @@ -1,242 +0,0 @@ -# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors -# This software is distributed under the terms and conditions of the 'Apache-2.0' -# license which can be found in the file 'LICENSE' in this package distribution -# or at 'http://www.apache.org/licenses/LICENSE-2.0'. - -import logging - -from cliff.lister import Lister -from cliff.command import Command -from cliff.show import ShowOne - - -class RulesList(Lister): - """List all rules.""" - - log = logging.getLogger(__name__) - - def get_parser(self, prog_name): - parser = super(RulesList, self).get_parser(prog_name) - parser.add_argument( - 'submetarule_id', - metavar='<submetarule-uuid>', - help='Sub Meta Rule UUID', - ) - parser.add_argument( - '--intraextension', - metavar='<intraextension-uuid>', - help='IntraExtension UUID', - ) - return parser - - def __get_subject_category_name(self, intraextension, category_id): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/subject_categories".format(intraextension), - authtoken=True) - if category_id in data: - return data[category_id]["name"] - - def __get_object_category_name(self, intraextension, category_id): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/object_categories".format(intraextension), - authtoken=True) - if category_id in data: - return data[category_id]["name"] - - def __get_action_category_name(self, intraextension, category_id): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/action_categories".format(intraextension), - authtoken=True) - if category_id in data: - return data[category_id]["name"] - - def __get_subject_scope_name(self, intraextension, category_id, scope_id): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/subject_scopes/{}".format(intraextension, category_id), - authtoken=True) - if scope_id in data: - return data[scope_id]["name"] - return scope_id - - def __get_object_scope_name(self, intraextension, category_id, scope_id): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/object_scopes/{}".format(intraextension, category_id), - authtoken=True) - if scope_id in data: - return data[scope_id]["name"] - return scope_id - - def __get_action_scope_name(self, intraextension, category_id, scope_id): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/action_scopes/{}".format(intraextension, category_id), - authtoken=True) - if scope_id in data: - return data[scope_id]["name"] - return scope_id - - def __get_headers(self, intraextension, submetarule_id): - headers = list() - headers.append("") - headers.append("id") - self.sub_meta_rules = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/sub_meta_rules".format(intraextension), - authtoken=True) - for cat in self.sub_meta_rules[submetarule_id]["subject_categories"]: - headers.append("s:" + self.__get_subject_category_name(intraextension, cat)) - for cat in self.sub_meta_rules[submetarule_id]["action_categories"]: - headers.append("a:" + self.__get_action_category_name(intraextension, cat)) - for cat in self.sub_meta_rules[submetarule_id]["object_categories"]: - headers.append("o:" + self.__get_object_category_name(intraextension, cat)) - headers.append("enabled") - return headers - - def __get_data(self, intraextension, submetarule_id, data_dict): - rules = list() - cpt = 0 - for key in data_dict: - sub_rule = list() - sub_rule.append(cpt) - cpt += 1 - sub_rule.append(key) - rule_item = list(data_dict[key]) - for cat in self.sub_meta_rules[submetarule_id]["subject_categories"]: - sub_rule.append(self.__get_subject_scope_name(intraextension, cat, rule_item.pop(0))) - for cat in self.sub_meta_rules[submetarule_id]["action_categories"]: - sub_rule.append(self.__get_action_scope_name(intraextension, cat, rule_item.pop(0))) - for cat in self.sub_meta_rules[submetarule_id]["object_categories"]: - sub_rule.append(self.__get_object_scope_name(intraextension, cat, rule_item.pop(0))) - sub_rule.append(rule_item.pop(0)) - rules.append(sub_rule) - return rules - - def take_action(self, parsed_args): - if not parsed_args.intraextension: - parsed_args.intraextension = self.app.intraextension - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/rule/{}".format( - parsed_args.intraextension, - parsed_args.submetarule_id, - ), - authtoken=True) - self.log.debug(data) - headers = self.__get_headers(parsed_args.intraextension, parsed_args.submetarule_id) - data_list = self.__get_data(parsed_args.intraextension, parsed_args.submetarule_id, data) - return ( - headers, - data_list - ) - - -class RuleAdd(Command): - """Add a new rule.""" - - log = logging.getLogger(__name__) - - def get_parser(self, prog_name): - parser = super(RuleAdd, self).get_parser(prog_name) - parser.add_argument( - 'submetarule_id', - metavar='<submetarule-uuid>', - help='Sub Meta Rule UUID', - ) - parser.add_argument( - 'rule', - metavar='<argument-list>', - help='Rule list (example: admin,start,servers) with that ordering: subject, action, object', - ) - parser.add_argument( - '--intraextension', - metavar='<intraextension-uuid>', - help='IntraExtension UUID', - ) - return parser - - def __get_subject_scope_id(self, intraextension, category_id, scope_name): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/subject_scopes/{}".format(intraextension, category_id), - authtoken=True) - self.log.debug("__get_subject_scope_id {}".format(data)) - for scope_id in data: - if data[scope_id]["name"] == scope_name: - return scope_id - return scope_name - - def __get_object_scope_id(self, intraextension, category_id, scope_name): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/object_scopes/{}".format(intraextension, category_id), - authtoken=True) - self.log.debug("__get_action_scope_id {}".format(data)) - for scope_id in data: - if data[scope_id]["name"] == scope_name: - return scope_id - return scope_name - - def __get_action_scope_id(self, intraextension, category_id, scope_name): - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/action_scopes/{}".format(intraextension, category_id), - authtoken=True) - self.log.debug("__get_object_scope_id {}".format(data)) - for scope_id in data: - if data[scope_id]["name"] == scope_name: - return scope_id - return scope_name - - def take_action(self, parsed_args): - if not parsed_args.intraextension: - parsed_args.intraextension = self.app.intraextension - self.sub_meta_rules = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/sub_meta_rules".format( - parsed_args.intraextension), - authtoken=True) - new_rule = map(lambda x: x.strip(), parsed_args.rule.split(",")) - post = { - "subject_categories": [], - "object_categories": [], - "action_categories": [], - "enabled": True - } - for cat in self.sub_meta_rules[parsed_args.submetarule_id]["subject_categories"]: - self.log.debug("annalysing s {}".format(cat)) - post["subject_categories"].append(self.__get_subject_scope_id( - parsed_args.intraextension, cat, new_rule.pop(0)) - ) - for cat in self.sub_meta_rules[parsed_args.submetarule_id]["action_categories"]: - self.log.debug("annalysing a {}".format(cat)) - post["action_categories"].append(self.__get_action_scope_id( - parsed_args.intraextension, cat, new_rule.pop(0)) - ) - for cat in self.sub_meta_rules[parsed_args.submetarule_id]["object_categories"]: - self.log.debug("annalysing o {}".format(cat)) - post["object_categories"].append(self.__get_object_scope_id( - parsed_args.intraextension, cat, new_rule.pop(0)) - ) - data = self.app.get_url(self.app.url_prefix+"/intra_extensions/{}/rule/{}".format( - parsed_args.intraextension, parsed_args.submetarule_id), - post_data=post, - authtoken=True) - - -class RuleDelete(Command): - """Delete a new rule.""" - - log = logging.getLogger(__name__) - - def get_parser(self, prog_name): - parser = super(RuleDelete, self).get_parser(prog_name) - parser.add_argument( - 'submetarule_id', - metavar='<submetarule-uuid>', - help='Sub Meta Rule UUID', - ) - parser.add_argument( - 'rule_id', - metavar='<rule-uuid>', - help='Rule UUID', - ) - parser.add_argument( - '--intraextension', - metavar='<intraextension-uuid>', - help='IntraExtension UUID', - ) - return parser - - def take_action(self, parsed_args): - if not parsed_args.intraextension: - parsed_args.intraextension = self.app.intraextension - self.app.get_url( - self.app.url_prefix+"/intra_extensions/{intra_extensions_id}/rule/{submetarule_id}/{rule_id}".format( - intra_extensions_id=parsed_args.intraextension, - submetarule_id=parsed_args.submetarule_id, - rule_id=parsed_args.rule_id - ), - method="DELETE", - authtoken=True - ) |