diff options
Diffstat (limited to 'tools/frr-reload.py')
| -rwxr-xr-x | tools/frr-reload.py | 142 |
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 |
