aboutsummaryrefslogtreecommitdiffstats
path: root/moonv4/tests/populate_default_values.py
diff options
context:
space:
mode:
Diffstat (limited to 'moonv4/tests/populate_default_values.py')
-rw-r--r--moonv4/tests/populate_default_values.py131
1 files changed, 58 insertions, 73 deletions
diff --git a/moonv4/tests/populate_default_values.py b/moonv4/tests/populate_default_values.py
index fa099458..28795526 100644
--- a/moonv4/tests/populate_default_values.py
+++ b/moonv4/tests/populate_default_values.py
@@ -1,45 +1,11 @@
-import argparse
import logging
from importlib.machinery import SourceFileLoader
-from utils.pdp import *
-from utils.models import *
-from utils.policies import *
-
-parser = argparse.ArgumentParser()
-parser.add_argument('filename', help='scenario filename', nargs=1)
-parser.add_argument("--verbose", "-v", action='store_true',
- help="verbose mode")
-parser.add_argument("--debug", "-d", action='store_true', help="debug mode")
-parser.add_argument("--keystone-pid", "-k", dest="keystone_pid", default="",
- help="Force a particular Keystone Project ID")
-args = parser.parse_args()
-
-FORMAT = '%(asctime)-15s %(levelname)s %(message)s'
-if args.debug:
- logging.basicConfig(
- format=FORMAT,
- level=logging.DEBUG)
-elif args.verbose:
- logging.basicConfig(
- format=FORMAT,
- level=logging.INFO)
-else:
- logging.basicConfig(
- format=FORMAT,
- level=logging.WARNING)
-
-requests_log = logging.getLogger("requests.packages.urllib3")
-requests_log.setLevel(logging.WARNING)
-requests_log.propagate = True
-
-logger = logging.getLogger("moonforming")
-
-if args.filename:
- print("Loading: {}".format(args.filename[0]))
-
-m = SourceFileLoader("scenario", args.filename[0])
-
-scenario = m.load_module()
+from utils import parse
+from utils import models
+from utils import policies
+from utils import pdp
+
+logger = None
def create_model(model_id=None):
@@ -47,16 +13,16 @@ def create_model(model_id=None):
logger.info("Creating model {}".format(scenario.model_name))
if not model_id:
logger.info("Add model")
- model_id = add_model(name=scenario.model_name)
+ model_id = models.add_model(name=scenario.model_name)
logger.info("Add subject categories")
for cat in scenario.subject_categories:
- scenario.subject_categories[cat] = add_subject_category(name=cat)
+ scenario.subject_categories[cat] = models.add_subject_category(name=cat)
logger.info("Add object categories")
for cat in scenario.object_categories:
- scenario.object_categories[cat] = add_object_category(name=cat)
+ scenario.object_categories[cat] = models.add_object_category(name=cat)
logger.info("Add action categories")
for cat in scenario.action_categories:
- scenario.action_categories[cat] = add_action_category(name=cat)
+ scenario.action_categories[cat] = models.add_action_category(name=cat)
sub_cat = []
ob_cat = []
act_cat = []
@@ -69,14 +35,14 @@ def create_model(model_id=None):
ob_cat.append(scenario.object_categories[item])
elif item in scenario.action_categories:
act_cat.append(scenario.action_categories[item])
- meta_rules = check_meta_rule(meta_rule_id=None)
+ meta_rules = models.check_meta_rule(meta_rule_id=None)
for _meta_rule_id, _meta_rule_value in meta_rules['meta_rules'].items():
if _meta_rule_value['name'] == item_name:
meta_rule_id = _meta_rule_id
break
else:
logger.info("Add meta rule")
- meta_rule_id = add_meta_rule(item_name, sub_cat, ob_cat, act_cat)
+ meta_rule_id = models.add_meta_rule(item_name, sub_cat, ob_cat, act_cat)
item_value["id"] = meta_rule_id
if meta_rule_id not in meta_rule_list:
meta_rule_list.append(meta_rule_id)
@@ -86,51 +52,51 @@ def create_model(model_id=None):
def create_policy(model_id, meta_rule_list):
if args.verbose:
logger.info("Creating policy {}".format(scenario.policy_name))
- _policies = check_policy()
+ _policies = policies.check_policy()
for _policy_id, _policy_value in _policies["policies"].items():
if _policy_value['name'] == scenario.policy_name:
policy_id = _policy_id
break
else:
- policy_id = add_policy(name=scenario.policy_name, genre=scenario.policy_genre)
+ policy_id = policies.add_policy(name=scenario.policy_name, genre=scenario.policy_genre)
- update_policy(policy_id, model_id)
+ policies.update_policy(policy_id, model_id)
for meta_rule_id in meta_rule_list:
logger.debug("add_meta_rule_to_model {} {}".format(model_id, meta_rule_id))
- add_meta_rule_to_model(model_id, meta_rule_id)
+ models.add_meta_rule_to_model(model_id, meta_rule_id)
logger.info("Add subject data")
for subject_cat_name in scenario.subject_data:
for subject_data_name in scenario.subject_data[subject_cat_name]:
- data_id = scenario.subject_data[subject_cat_name][subject_data_name] = add_subject_data(
+ data_id = scenario.subject_data[subject_cat_name][subject_data_name] = policies.add_subject_data(
policy_id=policy_id,
category_id=scenario.subject_categories[subject_cat_name], name=subject_data_name)
scenario.subject_data[subject_cat_name][subject_data_name] = data_id
logger.info("Add object data")
for object_cat_name in scenario.object_data:
for object_data_name in scenario.object_data[object_cat_name]:
- data_id = scenario.object_data[object_cat_name][object_data_name] = add_object_data(
+ data_id = scenario.object_data[object_cat_name][object_data_name] = policies.add_object_data(
policy_id=policy_id,
category_id=scenario.object_categories[object_cat_name], name=object_data_name)
scenario.object_data[object_cat_name][object_data_name] = data_id
logger.info("Add action data")
for action_cat_name in scenario.action_data:
for action_data_name in scenario.action_data[action_cat_name]:
- data_id = scenario.action_data[action_cat_name][action_data_name] = add_action_data(
+ data_id = scenario.action_data[action_cat_name][action_data_name] = policies.add_action_data(
policy_id=policy_id,
category_id=scenario.action_categories[action_cat_name], name=action_data_name)
scenario.action_data[action_cat_name][action_data_name] = data_id
logger.info("Add subjects")
for name in scenario.subjects:
- scenario.subjects[name] = add_subject(policy_id, name=name)
+ scenario.subjects[name] = policies.add_subject(policy_id, name=name)
logger.info("Add objects")
for name in scenario.objects:
- scenario.objects[name] = add_object(policy_id, name=name)
+ scenario.objects[name] = policies.add_object(policy_id, name=name)
logger.info("Add actions")
for name in scenario.actions:
- scenario.actions[name] = add_action(policy_id, name=name)
+ scenario.actions[name] = policies.add_action(policy_id, name=name)
logger.info("Add subject assignments")
for subject_name in scenario.subject_assignments:
@@ -141,14 +107,14 @@ def create_policy(model_id, meta_rule_list):
subject_cat_id = scenario.subject_categories[subject_category_name]
for data in scenario.subject_assignments[subject_name]:
subject_data_id = scenario.subject_data[subject_category_name][data[subject_category_name]]
- add_subject_assignments(policy_id, subject_id, subject_cat_id, subject_data_id)
+ policies.add_subject_assignments(policy_id, subject_id, subject_cat_id, subject_data_id)
else:
for subject_category_name in scenario.subject_assignments[subject_name]:
subject_id = scenario.subjects[subject_name]
subject_cat_id = scenario.subject_categories[subject_category_name]
subject_data_id = scenario.subject_data[subject_category_name][scenario.subject_assignments[subject_name][subject_category_name]]
- add_subject_assignments(policy_id, subject_id, subject_cat_id, subject_data_id)
-
+ policies.add_subject_assignments(policy_id, subject_id, subject_cat_id, subject_data_id)
+
logger.info("Add object assignments")
for object_name in scenario.object_assignments:
if type(scenario.object_assignments[object_name]) in (list, tuple):
@@ -158,13 +124,13 @@ def create_policy(model_id, meta_rule_list):
object_cat_id = scenario.object_categories[object_category_name]
for data in scenario.object_assignments[object_name]:
object_data_id = scenario.object_data[object_category_name][data[object_category_name]]
- add_object_assignments(policy_id, object_id, object_cat_id, object_data_id)
+ policies.add_object_assignments(policy_id, object_id, object_cat_id, object_data_id)
else:
for object_category_name in scenario.object_assignments[object_name]:
object_id = scenario.objects[object_name]
object_cat_id = scenario.object_categories[object_category_name]
object_data_id = scenario.object_data[object_category_name][scenario.object_assignments[object_name][object_category_name]]
- add_object_assignments(policy_id, object_id, object_cat_id, object_data_id)
+ policies.add_object_assignments(policy_id, object_id, object_cat_id, object_data_id)
logger.info("Add action assignments")
for action_name in scenario.action_assignments:
@@ -175,13 +141,13 @@ def create_policy(model_id, meta_rule_list):
action_cat_id = scenario.action_categories[action_category_name]
for data in scenario.action_assignments[action_name]:
action_data_id = scenario.action_data[action_category_name][data[action_category_name]]
- add_action_assignments(policy_id, action_id, action_cat_id, action_data_id)
+ policies.add_action_assignments(policy_id, action_id, action_cat_id, action_data_id)
else:
for action_category_name in scenario.action_assignments[action_name]:
action_id = scenario.actions[action_name]
action_cat_id = scenario.action_categories[action_category_name]
action_data_id = scenario.action_data[action_category_name][scenario.action_assignments[action_name][action_category_name]]
- add_action_assignments(policy_id, action_id, action_cat_id, action_data_id)
+ policies.add_action_assignments(policy_id, action_id, action_cat_id, action_data_id)
logger.info("Add rules")
for meta_rule_name in scenario.rules:
@@ -198,31 +164,50 @@ def create_policy(model_id, meta_rule_list):
elif category_name in scenario.action_categories:
data_list.append(scenario.action_data[category_name][data_name])
instructions = rule["instructions"]
- add_rule(policy_id, meta_rule_value["id"], data_list, instructions)
+ policies.add_rule(policy_id, meta_rule_value["id"], data_list, instructions)
return policy_id
-def create_pdp(policy_id=None):
+def create_pdp(policy_id=None, project_id=None):
logger.info("Creating PDP {}".format(scenario.pdp_name))
- projects = get_keystone_projects()
- project_id = args.keystone_pid
+ projects = pdp.get_keystone_projects()
if not project_id:
for _project in projects['projects']:
if _project['name'] == "admin":
project_id = _project['id']
assert project_id
- pdps = check_pdp()["pdps"]
+ pdps = pdp.check_pdp()["pdps"]
for pdp_id, pdp_value in pdps.items():
if scenario.pdp_name == pdp_value["name"]:
- update_pdp(pdp_id, policy_id=policy_id)
+ pdp.update_pdp(pdp_id, policy_id=policy_id)
logger.debug("Found existing PDP named {} (will add policy {})".format(scenario.pdp_name, policy_id))
return pdp_id
- _pdp_id = add_pdp(name=scenario.pdp_name, policy_id=policy_id)
- map_to_keystone(pdp_id=_pdp_id, keystone_project_id=project_id)
+ _pdp_id = pdp.add_pdp(name=scenario.pdp_name, policy_id=policy_id)
+ pdp.map_to_keystone(pdp_id=_pdp_id, keystone_project_id=project_id)
return _pdp_id
+
if __name__ == "__main__":
- _models = check_model()
+ logger = logging.getLogger("moonforming")
+ requests_log = logging.getLogger("requests.packages.urllib3")
+ requests_log.setLevel(logging.WARNING)
+ requests_log.propagate = True
+
+ args = parse.parse()
+ consul_host = args.consul_host
+ consul_port = 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 args.filename:
+ print("Loading: {}".format(args.filename[0]))
+ m = SourceFileLoader("scenario", args.filename[0])
+ 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
@@ -232,4 +217,4 @@ if __name__ == "__main__":
else:
model_id, meta_rule_list = create_model()
policy_id = create_policy(model_id, meta_rule_list)
- pdp_id = create_pdp(policy_id)
+ pdp_id = create_pdp(policy_id=policy_id, project_id=project_id)