summaryrefslogtreecommitdiff
path: root/tools/frr-reload.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/frr-reload.py')
-rwxr-xr-xtools/frr-reload.py142
1 files changed, 40 insertions, 102 deletions
diff --git a/tools/frr-reload.py b/tools/frr-reload.py
index 7c6a83a51d..da51c231d1 100755
--- a/tools/frr-reload.py
+++ b/tools/frr-reload.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
# Frr Reloader
# Copyright (C) 2014 Cumulus Networks, Inc.
#
@@ -30,7 +30,6 @@ This program
from __future__ import print_function, unicode_literals
import argparse
-import copy
import logging
import os, os.path
import random
@@ -39,25 +38,12 @@ import string
import subprocess
import sys
from collections import OrderedDict
-
-try:
- from ipaddress import IPv6Address, ip_network
-except ImportError:
- from ipaddr import IPv6Address, IPNetwork
+from ipaddress import IPv6Address, ip_network
from pprint import pformat
-try:
- dict.iteritems
-except AttributeError:
- # Python 3
- def iteritems(d):
- return iter(d.items())
-
-
-else:
- # Python 2
- def iteritems(d):
- return d.iteritems()
+# Python 3
+def iteritems(d):
+ return iter(d.items())
log = logging.getLogger(__name__)
@@ -372,22 +358,13 @@ class Config(object):
addr = re_key_rt.group(2)
if "/" in addr:
try:
- if "ipaddress" not in sys.modules:
- newaddr = IPNetwork(addr)
- key[0] = "%s route %s/%s%s" % (
- re_key_rt.group(1),
- newaddr.network,
- newaddr.prefixlen,
- 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),
- )
+ 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:
pass
@@ -398,17 +375,11 @@ class Config(object):
addr = re_key_rt.group(4)
if "/" in addr:
try:
- if "ipaddress" not in sys.modules:
- newaddr = "%s/%s" % (
- IPNetwork(addr).network,
- IPNetwork(addr).prefixlen,
- )
- else:
- network_addr = ip_network(addr, strict=False)
- newaddr = "%s/%s" % (
- str(network_addr.network_address),
- network_addr.prefixlen,
- )
+ network_addr = ip_network(addr, strict=False)
+ newaddr = "%s/%s" % (
+ str(network_addr.network_address),
+ network_addr.prefixlen,
+ )
except ValueError:
newaddr = addr
else:
@@ -444,20 +415,12 @@ class Config(object):
addr = addr + "/8"
try:
- if "ipaddress" not in sys.modules:
- newaddr = IPNetwork(addr)
- line = "network %s/%s %s" % (
- newaddr.network,
- newaddr.prefixlen,
- 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),
- )
+ 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)
except ValueError:
# Really this should be an error. Whats a network
@@ -594,49 +557,26 @@ end
"router ospf6": {},
"router eigrp ": {},
"router babel": {},
- "mpls ldp": {
- "address-family ": {
- "interface ": {}
- }
- },
- "l2vpn ": {
- "member pseudowire ": {}
- },
- "key chain ": {
- "key ": {}
- },
+ "mpls ldp": {"address-family ": {"interface ": {}}},
+ "l2vpn ": {"member pseudowire ": {}},
+ "key chain ": {"key ": {}},
"vrf ": {},
- "interface ": {
- "link-params": {}
- },
+ "interface ": {"link-params": {}},
"pseudowire ": {},
"segment-routing": {
"traffic-eng": {
"segment-list ": {},
- "policy ": {
- "candidate-path ": {}
- },
- "pcep": {
- "pcc": {},
- "pce ": {},
- "pce-config ": {}
- }
+ "policy ": {"candidate-path ": {}},
+ "pcep": {"pcc": {}, "pce ": {}, "pce-config ": {}},
},
- "srv6": {
- "locators": {
- "locator ": {}
- }
- }
+ "srv6": {"locators": {"locator ": {}}},
},
"nexthop-group ": {},
"route-map ": {},
"pbr-map ": {},
"rpki": {},
- "bfd": {
- "peer ": {},
- "profile ": {}
- },
- "line vty": {}
+ "bfd": {"peer ": {}, "profile ": {}},
+ "line vty": {},
}
# stack of context keys
@@ -785,15 +725,11 @@ def get_normalized_ipv6_line(line):
norm_word = None
if "/" in word:
try:
- if "ipaddress" not in sys.modules:
- v6word = IPNetwork(word)
- norm_word = "%s/%s" % (v6word.network, v6word.prefixlen)
- else:
- v6word = ip_network(word, strict=False)
- norm_word = "%s/%s" % (
- str(v6word.network_address),
- v6word.prefixlen,
- )
+ v6word = ip_network(word, strict=False)
+ norm_word = "%s/%s" % (
+ str(v6word.network_address),
+ v6word.prefixlen,
+ )
except ValueError:
pass
if not norm_word:
@@ -1932,7 +1868,9 @@ if __name__ == "__main__":
nolines = [x.strip() for x in nolines]
# For topotests leave these lines in (don't delete them)
# [chopps: why is "log file" more special than other "log" commands?]
- nolines = [x for x in nolines if "debug" not in x and "log file" not in x]
+ nolines = [
+ x for x in nolines if "debug" not in x and "log file" not in x
+ ]
if not nolines:
continue