diff options
Diffstat (limited to 'osdf/adapters/policy')
-rw-r--r-- | osdf/adapters/policy/interface.py | 20 | ||||
-rw-r--r-- | osdf/adapters/policy/utils.py | 8 |
2 files changed, 14 insertions, 14 deletions
diff --git a/osdf/adapters/policy/interface.py b/osdf/adapters/policy/interface.py index 4ddee15..288571f 100644 --- a/osdf/adapters/policy/interface.py +++ b/osdf/adapters/policy/interface.py @@ -110,9 +110,7 @@ def get_by_scope(rest_client, req, config_local, type_service): model_name = retrieve_node(req, pscope['service_name']) service_name = model_name - # service_name = data_mapping.get_request_service_type(req) - # if service_name is None: - # service_name = data_mapping.get_service_type(model_name) + scope = pscope['scope_{}'.format(service_name.lower())] subscriber_role, prov_status = get_subscriber_role(rest_client, req, pmain, service_name, scope) policy_type_list = pmain['policy_type_{}'.format(service_name.lower())] @@ -134,9 +132,7 @@ def remote_api(req_json, osdf_config, service_type="placement"): :param service_type: the type of service to call: "placement", "scheduling" :return: all related policies and provStatus retrieved from Subscriber policy """ -# if not req_json[service_type + "Info"]['policyId']: -# return [] - + prov_status = None config = osdf_config.deployment uid, passwd = config['policyPlatformUsername'], config['policyPlatformPassword'] pcuid, pcpasswd = config['policyClientUsername'], config['policyClientPassword'] @@ -168,16 +164,18 @@ def local_policies_location(req_json, osdf_config, service_type): :param service_type: placement supported for now, but can be any other service :return: a tuple (folder, file_list) or None """ - lp = osdf_config.core.get('osdf_hacks', {}).get('local_policies', {}) + lp = osdf_config.core.get('osdf_temp', {}).get('local_policies', {}) if lp.get('global_disabled'): return None # short-circuit to disable all local policies if lp.get('local_{}_policies_enabled'.format(service_type)): if service_type == "scheduling": return lp.get('{}_policy_dir'.format(service_type)), lp.get('{}_policy_files'.format(service_type)) else: - model_name = retrieve_node(req_json, osdf_config.core['policy_info'][service_type]['policy_scope']['service_name']) - service_name = data_mapping.get_service_type(model_name) - return lp.get('{}_policy_dir_{}'.format(service_type, service_name.lower())), lp.get('{}_policy_files_{}'.format(service_type, service_name.lower())) + required_node = osdf_config.core['policy_info'][service_type]['policy_scope']['service_name'] + model_name = retrieve_node(req_json, required_node) + service_name = model_name # TODO: data_mapping.get_service_type(model_name) + return lp.get('{}_policy_dir_{}'.format(service_type, service_name.lower())), \ + lp.get('{}_policy_files_{}'.format(service_type, service_name.lower())) return None @@ -199,6 +197,6 @@ def get_policies(request_json, service_type): to_filter = request_json[service_type + "Info"]['policyId'] policies = get_local_policies(local_info[0], local_info[1], to_filter) else: - policies, prov_status= remote_api(request_json, osdf_config, service_type) + policies, prov_status = remote_api(request_json, osdf_config, service_type) return policies, prov_status diff --git a/osdf/adapters/policy/utils.py b/osdf/adapters/policy/utils.py index a006f12..27885a5 100644 --- a/osdf/adapters/policy/utils.py +++ b/osdf/adapters/policy/utils.py @@ -31,10 +31,12 @@ def group_policies(flat_policies): filter_policies = defaultdict(list) policy_name = [] for policy in flat_policies: - policy_type = policy['content']['type'] + policy_type = policy['content'].get('policyType') + if not policy_type: + continue if policy_type not in aggregated_policies: aggregated_policies[policy_type] = defaultdict(list) - for resource in policy['content']['policyScope']['resourceInstanceType']: + for resource in policy['content'].get('resourceInstanceType', []): aggregated_policies[policy_type][resource].append(policy) for policy_type in aggregated_policies: for resource in aggregated_policies[policy_type]: @@ -42,7 +44,7 @@ def group_policies(flat_policies): aggregated_policies[policy_type][resource].sort(key=lambda x: x['priority'], reverse=True) policy = aggregated_policies[policy_type][resource][0] if policy['policyName'] not in policy_name: - filter_policies[policy['content']['type']].append(policy) + filter_policies[policy['content']['policyType']].append(policy) policy_name.append(policy['policyName']) return filter_policies |