From a45ae454084282b4b23cfbb0e743066fc8cb6905 Mon Sep 17 00:00:00 2001 From: Baptiste Jonglez Date: Mon, 15 Jun 2020 22:34:25 +0200 Subject: [PATCH] Basic python reformatting Transform all tabs to spaces and remove trailing spaces. --- bird.py | 241 ++++++++++++++++++++++++++--------------------------- lg.py | 14 ++-- lgproxy.py | 23 +++-- toolbox.py | 42 +++++----- 4 files changed, 156 insertions(+), 164 deletions(-) diff --git a/bird.py b/bird.py index 5f6d546..a55deb9 100644 --- a/bird.py +++ b/bird.py @@ -25,153 +25,150 @@ import sys BUFSIZE = 4096 SUCCESS_CODES = { - "0000" : "OK", - "0001" : "Welcome", - "0002" : "Reading configuration", - "0003" : "Reconfigured", - "0004" : "Reconfiguration in progress", - "0005" : "Reconfiguration already in progress, queueing", - "0006" : "Reconfiguration ignored, shutting down", - "0007" : "Shutdown ordered", - "0008" : "Already disabled", - "0009" : "Disabled", - "0010" : "Already enabled", - "0011" : "Enabled", - "0012" : "Restarted", - "0013" : "Status report", - "0014" : "Route count", - "0015" : "Reloading", - "0016" : "Access restricted", + "0000" : "OK", + "0001" : "Welcome", + "0002" : "Reading configuration", + "0003" : "Reconfigured", + "0004" : "Reconfiguration in progress", + "0005" : "Reconfiguration already in progress, queueing", + "0006" : "Reconfiguration ignored, shutting down", + "0007" : "Shutdown ordered", + "0008" : "Already disabled", + "0009" : "Disabled", + "0010" : "Already enabled", + "0011" : "Enabled", + "0012" : "Restarted", + "0013" : "Status report", + "0014" : "Route count", + "0015" : "Reloading", + "0016" : "Access restricted", } TABLES_ENTRY_CODES = { - "1000" : "BIRD version", - "1001" : "Interface list", - "1002" : "Protocol list", - "1003" : "Interface address", - "1004" : "Interface flags", - "1005" : "Interface summary", - "1006" : "Protocol details", - "1007" : "Route list", - "1008" : "Route details", - "1009" : "Static route list", - "1010" : "Symbol list", - "1011" : "Uptime", - "1012" : "Route extended attribute list", - "1013" : "Show ospf neighbors", - "1014" : "Show ospf", - "1015" : "Show ospf interface", - "1016" : "Show ospf state/topology", - "1017" : "Show ospf lsadb", - "1018" : "Show memory", + "1000" : "BIRD version", + "1001" : "Interface list", + "1002" : "Protocol list", + "1003" : "Interface address", + "1004" : "Interface flags", + "1005" : "Interface summary", + "1006" : "Protocol details", + "1007" : "Route list", + "1008" : "Route details", + "1009" : "Static route list", + "1010" : "Symbol list", + "1011" : "Uptime", + "1012" : "Route extended attribute list", + "1013" : "Show ospf neighbors", + "1014" : "Show ospf", + "1015" : "Show ospf interface", + "1016" : "Show ospf state/topology", + "1017" : "Show ospf lsadb", + "1018" : "Show memory", } ERROR_CODES = { - "8000" : "Reply too long", - "8001" : "Route not found", - "8002" : "Configuration file error", - "8003" : "No protocols match", - "8004" : "Stopped due to reconfiguration", - "8005" : "Protocol is down => cannot dump", - "8006" : "Reload failed", - "8007" : "Access denied", + "8000" : "Reply too long", + "8001" : "Route not found", + "8002" : "Configuration file error", + "8003" : "No protocols match", + "8004" : "Stopped due to reconfiguration", + "8005" : "Protocol is down => cannot dump", + "8006" : "Reload failed", + "8007" : "Access denied", - "9000" : "Command too long", - "9001" : "Parse error", - "9002" : "Invalid symbol type", + "9000" : "Command too long", + "9001" : "Parse error", + "9002" : "Invalid symbol type", } END_CODES = ERROR_CODES.keys() + SUCCESS_CODES.keys() -global bird_sockets +global bird_sockets bird_sockets = {} def BirdSocketSingleton(host, port): - global bird_sockets - s = bird_sockets.get((host,port), None) - if not s: - s = BirdSocket(host,port) - bird_sockets[(host,port)] = s - return s + global bird_sockets + s = bird_sockets.get((host,port), None) + if not s: + s = BirdSocket(host,port) + bird_sockets[(host,port)] = s + return s class BirdSocket: - def __init__(self, host="", port="", file=""): - self.__file = file - self.__host = host - self.__port = port - self.__sock = None + def __init__(self, host="", port="", file=""): + self.__file = file + self.__host = host + self.__port = port + self.__sock = None - def __connect(self): - if self.__sock: return + def __connect(self): + if self.__sock: return - if not file: - self.__sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.__sock.settimeout(3.0) - self.__sock.connect((self.__host, self.__port)) - else: - self.__sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - self.__sock.settimeout(3.0) - self.__sock.connect(self.__file) + if not file: + self.__sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.__sock.settimeout(3.0) + self.__sock.connect((self.__host, self.__port)) + else: + self.__sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.__sock.settimeout(3.0) + self.__sock.connect(self.__file) - # read welcome message - self.__sock.recv(1024) - self.cmd("restrict") + # read welcome message + self.__sock.recv(1024) + self.cmd("restrict") - def close(self): - if self.__sock: - try: self.__sock.close() - except: pass - self.__sock = None - - def cmd(self, cmd): - try: - self.__connect() - self.__sock.send(cmd + "\n") - data = self.__read() - return data - except socket.error: - why = sys.exc_info()[1] - self.close() - return False, "Bird connection problem: %s" % why + def close(self): + if self.__sock: + try: self.__sock.close() + except: pass + self.__sock = None - def __read(self): - code = "7000" # Not used in bird - parsed_string = "" - lastline = "" + def cmd(self, cmd): + try: + self.__connect() + self.__sock.send(cmd + "\n") + data = self.__read() + return data + except socket.error: + why = sys.exc_info()[1] + self.close() + return False, "Bird connection problem: %s" % why - while code not in END_CODES: - data = self.__sock.recv(BUFSIZE) - - lines = (lastline + data).split("\n") - if len(data) == BUFSIZE: - lastline = lines[-1] - lines = lines[:-1] + def __read(self): + code = "7000" # Not used in bird + parsed_string = "" + lastline = "" - for line in lines: - code = line[0:4] + while code not in END_CODES: + data = self.__sock.recv(BUFSIZE) - if not line.strip(): - continue - elif code == "0000": - return True, parsed_string - elif code in SUCCESS_CODES.keys(): - return True, SUCCESS_CODES.get(code) - elif code in ERROR_CODES.keys(): - return False, ERROR_CODES.get(code) - elif code[0] in [ "1", "2"] : - parsed_string += line[5:] + "\n" - elif code[0] == " ": - parsed_string += line[1:] + "\n" - elif code[0] == "+": - parsed_string += line[1:] - else: - parsed_string += "<<>>\n"%line + lines = (lastline + data).split("\n") + if len(data) == BUFSIZE: + lastline = lines[-1] + lines = lines[:-1] - return True, parsed_string - - -__all__ = ['BirdSocketSingleton' , 'BirdSocket' ] - + for line in lines: + code = line[0:4] + + if not line.strip(): + continue + elif code == "0000": + return True, parsed_string + elif code in SUCCESS_CODES.keys(): + return True, SUCCESS_CODES.get(code) + elif code in ERROR_CODES.keys(): + return False, ERROR_CODES.get(code) + elif code[0] in [ "1", "2"] : + parsed_string += line[5:] + "\n" + elif code[0] == " ": + parsed_string += line[1:] + "\n" + elif code[0] == "+": + parsed_string += line[1:] + else: + parsed_string += "<<>>\n"%line + + return True, parsed_string +__all__ = ['BirdSocketSingleton', 'BirdSocket'] diff --git a/lg.py b/lg.py index e9ea3e5..b26a71b 100644 --- a/lg.py +++ b/lg.py @@ -455,13 +455,12 @@ def show_bgpmap(): label_without_star = kwargs["label"].replace("*", "") if e.get_label() is not None: - labels = e.get_label().split("\r") + labels = e.get_label().split("\r") else: return edges[edge_tuple] if "%s*" % label_without_star not in labels: - labels = [ kwargs["label"] ] + [ l for l in labels if not l.startswith(label_without_star) ] + labels = [ kwargs["label"] ] + [ l for l in labels if not l.startswith(label_without_star) ] labels = sorted(labels, cmp=lambda x,y: x.endswith("*") and -1 or 1) - label = escape("\r".join(labels)) e.set_label(label) return edges[edge_tuple] @@ -478,7 +477,7 @@ def show_bgpmap(): edge = add_edge(as_number, nodes[host]) edge.set_color("red") edge.set_style("bold") - + #colors = [ "#009e23", "#1a6ec1" , "#d05701", "#6f879f", "#939a0e", "#0e9a93", "#9a0e85", "#56d8e1" ] previous_as = None hosts = data.keys() @@ -504,14 +503,13 @@ def show_bgpmap(): if not hop: hop = True if _as not in hosts: - hop_label = _as + hop_label = _as if first: hop_label = hop_label + "*" continue else: hop_label = "" - if _as == asmap[-1]: add_node(_as, fillcolor="#F5A9A9", shape="box", ) else: @@ -592,7 +590,7 @@ def build_as_tree_from_raw_bird_ouput(host, proto, text): # ugly hack for good printing path = [ peer_protocol_name ] # path = ["%s\r%s" % (peer_protocol_name, get_as_name(get_as_number_from_protocol_name(host, proto, peer_protocol_name)))] - + expr3 = re.search(r'(.*)unreachable\s+\[(\w+)\s+', line) if expr3: if path: @@ -612,7 +610,7 @@ def build_as_tree_from_raw_bird_ouput(host, proto, text): path.extend(ASes) else: path = ASes - + if path: path.append(net_dest) paths.append(path) diff --git a/lgproxy.py b/lgproxy.py index a81abb9..89b6a9a 100644 --- a/lgproxy.py +++ b/lgproxy.py @@ -41,7 +41,7 @@ app = Flask(__name__) app.debug = app.config["DEBUG"] app.config.from_pyfile(args.config_file) -file_handler = TimedRotatingFileHandler(filename=app.config["LOG_FILE"], when="midnight") +file_handler = TimedRotatingFileHandler(filename=app.config["LOG_FILE"], when="midnight") app.logger.setLevel(getattr(logging, app.config["LOG_LEVEL"].upper())) app.logger.addHandler(file_handler) @@ -67,7 +67,7 @@ def check_security(): @app.route("/traceroute6") def traceroute(): check_security() - + if sys.platform.startswith('freebsd') or sys.platform.startswith('netbsd') or sys.platform.startswith('openbsd'): traceroute4 = [ 'traceroute' ] traceroute6 = [ 'traceroute6' ] @@ -76,15 +76,14 @@ def traceroute(): traceroute6 = [ 'traceroute', '-6' ] src = [] - if request.path == '/traceroute6': - traceroute = traceroute6 - if app.config.get("IPV6_SOURCE",""): - src = [ "-s", app.config.get("IPV6_SOURCE") ] - + if request.path == '/traceroute6': + traceroute = traceroute6 + if app.config.get("IPV6_SOURCE", ""): + src = [ "-s", app.config.get("IPV6_SOURCE") ] else: - traceroute = traceroute4 - if app.config.get("IPV4_SOURCE",""): - src = [ "-s", app.config.get("IPV4_SOURCE") ] + traceroute = traceroute4 + if app.config.get("IPV4_SOURCE",""): + src = [ "-s", app.config.get("IPV4_SOURCE") ] query = request.args.get("q","") query = unquote(query) @@ -97,11 +96,9 @@ def traceroute(): options = [ '-A', '-q1', '-N32', '-w1', '-m15' ] command = traceroute + src + options + [ query ] result = subprocess.Popen( command , stdout=subprocess.PIPE).communicate()[0].decode('utf-8', 'ignore').replace("\n","
") - return result - @app.route("/bird") @app.route("/bird6") def bird(): @@ -118,7 +115,7 @@ def bird(): b.close() # FIXME: use status return result - + if __name__ == "__main__": app.logger.info("lgproxy start") diff --git a/toolbox.py b/toolbox.py index f2b50e1..a25e457 100644 --- a/toolbox.py +++ b/toolbox.py @@ -29,16 +29,16 @@ resolv.timeout = 0.5 resolv.lifetime = 1 def resolve(n, q): - return str(resolv.query(n,q)[0]) + return str(resolv.query(n,q)[0]) def mask_is_valid(n): - if not n: - return True - try: - mask = int(n) - return ( mask >= 1 and mask <= 128) - except: - return False + if not n: + return True + try: + mask = int(n) + return ( mask >= 1 and mask <= 128) + except: + return False def ipv4_is_valid(n): try: @@ -55,21 +55,21 @@ def ipv6_is_valid(n): return False def save_cache_pickle(filename, data): - output = open(filename, 'wb') - pickle.dump(data, output) - output.close() + output = open(filename, 'wb') + pickle.dump(data, output) + output.close() def load_cache_pickle(filename, default = None): - try: - pkl_file = open(filename, 'rb') - except IOError: - return default - try: - data = pickle.load(pkl_file) - except: - data = default - pkl_file.close() - return data + try: + pkl_file = open(filename, 'rb') + except IOError: + return default + try: + data = pickle.load(pkl_file) + except: + data = default + pkl_file.close() + return data def unescape(s): want_unicode = False