def ip_policy_update(context, ip_policy, **ip_policy_dict):
exclude = ip_policy_dict.pop("exclude", [])
if exclude:
ip_policy["exclude"] = []
ip_set = netaddr.IPSet()
for excluded_cidr in exclude:
cidr_net = netaddr.IPNetwork(excluded_cidr).ipv6()
ip_policy["exclude"].append(
models.IPPolicyCIDR(cidr=excluded_cidr,
first_ip=cidr_net.first,
last_ip=cidr_net.last))
ip_set.add(excluded_cidr)
ip_policy_dict["size"] = ip_set.size
ip_policy.update(ip_policy_dict)
context.session.add(ip_policy)
return ip_policy
评论列表
文章目录