mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 16:42:32 +00:00
tools: move frr-reload.py to python3 explicitly
We already, reasonably, require python3 elsewhere. Do so here, and reap some benefit. Signed-off-by: Christian Hopps <chopps@labn.net>
This commit is contained in:
parent
04464749b6
commit
77a7a87cdd
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/env python3
|
||||||
# Frr Reloader
|
# Frr Reloader
|
||||||
# Copyright (C) 2014 Cumulus Networks, Inc.
|
# Copyright (C) 2014 Cumulus Networks, Inc.
|
||||||
#
|
#
|
||||||
@ -39,26 +39,12 @@ import string
|
|||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
from ipaddress import IPv6Address, ip_network
|
||||||
try:
|
|
||||||
from ipaddress import IPv6Address, ip_network
|
|
||||||
except ImportError:
|
|
||||||
from ipaddr import IPv6Address, IPNetwork
|
|
||||||
from pprint import pformat
|
from pprint import pformat
|
||||||
|
|
||||||
try:
|
# Python 3
|
||||||
dict.iteritems
|
def iteritems(d):
|
||||||
except AttributeError:
|
return iter(d.items())
|
||||||
# Python 3
|
|
||||||
def iteritems(d):
|
|
||||||
return iter(d.items())
|
|
||||||
|
|
||||||
|
|
||||||
else:
|
|
||||||
# Python 2
|
|
||||||
def iteritems(d):
|
|
||||||
return d.iteritems()
|
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -372,22 +358,13 @@ class Config(object):
|
|||||||
addr = re_key_rt.group(2)
|
addr = re_key_rt.group(2)
|
||||||
if "/" in addr:
|
if "/" in addr:
|
||||||
try:
|
try:
|
||||||
if "ipaddress" not in sys.modules:
|
newaddr = ip_network(addr, strict=False)
|
||||||
newaddr = IPNetwork(addr)
|
key[0] = "%s route %s/%s%s" % (
|
||||||
key[0] = "%s route %s/%s%s" % (
|
re_key_rt.group(1),
|
||||||
re_key_rt.group(1),
|
str(newaddr.network_address),
|
||||||
newaddr.network,
|
newaddr.prefixlen,
|
||||||
newaddr.prefixlen,
|
re_key_rt.group(3),
|
||||||
re_key_rt.group(3),
|
)
|
||||||
)
|
|
||||||
else:
|
|
||||||
newaddr = ip_network(addr, strict=False)
|
|
||||||
key[0] = "%s route %s/%s%s" % (
|
|
||||||
re_key_rt.group(1),
|
|
||||||
str(newaddr.network_address),
|
|
||||||
newaddr.prefixlen,
|
|
||||||
re_key_rt.group(3),
|
|
||||||
)
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -398,17 +375,11 @@ class Config(object):
|
|||||||
addr = re_key_rt.group(4)
|
addr = re_key_rt.group(4)
|
||||||
if "/" in addr:
|
if "/" in addr:
|
||||||
try:
|
try:
|
||||||
if "ipaddress" not in sys.modules:
|
network_addr = ip_network(addr, strict=False)
|
||||||
newaddr = "%s/%s" % (
|
newaddr = "%s/%s" % (
|
||||||
IPNetwork(addr).network,
|
str(network_addr.network_address),
|
||||||
IPNetwork(addr).prefixlen,
|
network_addr.prefixlen,
|
||||||
)
|
)
|
||||||
else:
|
|
||||||
network_addr = ip_network(addr, strict=False)
|
|
||||||
newaddr = "%s/%s" % (
|
|
||||||
str(network_addr.network_address),
|
|
||||||
network_addr.prefixlen,
|
|
||||||
)
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
newaddr = addr
|
newaddr = addr
|
||||||
else:
|
else:
|
||||||
@ -444,20 +415,12 @@ class Config(object):
|
|||||||
addr = addr + "/8"
|
addr = addr + "/8"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if "ipaddress" not in sys.modules:
|
network_addr = ip_network(addr, strict=False)
|
||||||
newaddr = IPNetwork(addr)
|
line = "network %s/%s %s" % (
|
||||||
line = "network %s/%s %s" % (
|
str(network_addr.network_address),
|
||||||
newaddr.network,
|
network_addr.prefixlen,
|
||||||
newaddr.prefixlen,
|
re_net.group(2),
|
||||||
re_net.group(2),
|
)
|
||||||
)
|
|
||||||
else:
|
|
||||||
network_addr = ip_network(addr, strict=False)
|
|
||||||
line = "network %s/%s %s" % (
|
|
||||||
str(network_addr.network_address),
|
|
||||||
network_addr.prefixlen,
|
|
||||||
re_net.group(2),
|
|
||||||
)
|
|
||||||
newlines.append(line)
|
newlines.append(line)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# Really this should be an error. Whats a network
|
# Really this should be an error. Whats a network
|
||||||
@ -785,15 +748,11 @@ def get_normalized_ipv6_line(line):
|
|||||||
norm_word = None
|
norm_word = None
|
||||||
if "/" in word:
|
if "/" in word:
|
||||||
try:
|
try:
|
||||||
if "ipaddress" not in sys.modules:
|
v6word = ip_network(word, strict=False)
|
||||||
v6word = IPNetwork(word)
|
norm_word = "%s/%s" % (
|
||||||
norm_word = "%s/%s" % (v6word.network, v6word.prefixlen)
|
str(v6word.network_address),
|
||||||
else:
|
v6word.prefixlen,
|
||||||
v6word = ip_network(word, strict=False)
|
)
|
||||||
norm_word = "%s/%s" % (
|
|
||||||
str(v6word.network_address),
|
|
||||||
v6word.prefixlen,
|
|
||||||
)
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
if not norm_word:
|
if not norm_word:
|
||||||
|
Loading…
Reference in New Issue
Block a user