def multiple_policies(self, policies, neighbor):
"""Creates a new policy that applies list of policies to it.
:param policies: list of policies that you want applied to a single policy
:param neighbor: the neighbor you are going to apply these policies (used for naming)
:type policies: list
:type neighbor: str
:return: Name of the policy that is created
:rtype: str
"""
policy_name = neighbor.replace('.', '_')
policy_name = 'multi_policy_' + policy_name
shell = '{"openconfig-routing-policy:routing-policy": {"policy-definitions": {"policy-definition": [{"name": "%s","statements": {"statement": []}}]}}}' % policy_name
shell = json.loads(shell, object_pairs_hook=OrderedDict)
conditions = shell['openconfig-routing-policy:routing-policy']['policy-definitions']['policy-definition'][0]['statements']['statement']
for policy in policies:
policy_nm = 'Policy_' + policy
json_policy = '{"name": "%s", "conditions": {"call-policy": "%s"}}' % (policy_nm, policy)
json_policy = json.loads(json_policy, object_pairs_hook=OrderedDict)
conditions.append(json_policy)
multi_policy = json.dumps(shell)
print(self.merge_config(multi_policy))
return policy_name
route_policy.py 文件源码
python
阅读 23
收藏 0
点赞 0
评论 0
评论列表
文章目录