[WIP]Migration to new policy api
[optf/osdf.git] / osdf / adapters / policy / utils.py
index 2f873af..79047eb 100644 (file)
@@ -33,11 +33,11 @@ def group_policies_gen(flat_policies, config):
     """
     filtered_policies = defaultdict(list)
     policy_name = []
-    policies = [x for x in flat_policies if x['content'].get('policyType')]  # drop ones without 'policy_type'
+    policies = [x for x in flat_policies if x[list(x.keys())[0]]["type"]] # drop ones without 'type'
     priority = config.get('policy_info', {}).get('prioritization_attributes', {})
     aggregated_policies = dict()
     for plc in policies:
-        attrs = [dot_notation(plc, dot_path) for key in priority.keys() for dot_path in priority[key]]
+        attrs = [dot_notation(plc[list(plc.keys())[0]], dot_path) for key in priority.keys() for dot_path in priority[key]]
         attrs_list  = [x if isinstance(x, list) else [x] for x in attrs]
         attributes = [list_flatten(x) if isinstance(x, list) else x for x in attrs_list]
         for y in itertools.product(*attributes):
@@ -45,12 +45,12 @@ def group_policies_gen(flat_policies, config):
             aggregated_policies[y].append(plc)
 
     for key in aggregated_policies.keys():
-        aggregated_policies[key].sort(key=lambda x: x['priority'], reverse=True)
+        #aggregated_policies[key].sort(key=lambda x: x['priority'], reverse=True)
         prioritized_policy = aggregated_policies[key][0]
-        if prioritized_policy['policyName'] not in policy_name:
+        if list(prioritized_policy.keys())[0] not in policy_name:
             # TODO: Check logic here... should policy appear only once across all groups?
-            filtered_policies[prioritized_policy['content']['policyType']].append(prioritized_policy)
-            policy_name.append(prioritized_policy['policyName'])
+            filtered_policies[prioritized_policy[list(prioritized_policy.keys())[0]]['type']].append(prioritized_policy)
+            policy_name.append(list(prioritized_policy.keys())[0])
 
     return filtered_policies