From 92d2849f76c3395f9a51ab79a5726e1df5348ba8 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Tue, 28 Mar 2017 18:14:32 +0200 Subject: Fix pylint warnings and errors This fixes several warnings and errors as reported by pylint. --- rumba/model.py | 40 +++++++++++++++++++--------------------- rumba/prototypes/irati.py | 6 +++--- rumba/prototypes/ouroboros.py | 8 +++++--- rumba/prototypes/rlite.py | 8 ++++---- rumba/ssh_support.py | 26 ++++++++++++++------------ rumba/testbeds/emulab.py | 34 +++++++++++++++++----------------- rumba/testbeds/faketestbed.py | 3 +-- rumba/testbeds/jfed.py | 17 ++++++++--------- rumba/testbeds/qemu.py | 3 +-- 9 files changed, 72 insertions(+), 73 deletions(-) diff --git a/rumba/model.py b/rumba/model.py index 0659cb1..c8c00ab 100644 --- a/rumba/model.py +++ b/rumba/model.py @@ -44,7 +44,7 @@ class Testbed: # @name [string] DIF name # class DIF: - def __init__(self, name, members = None): + def __init__(self, name, members=None): self.name = name if members is None: members = list() @@ -62,7 +62,7 @@ class DIF: return other != None and self.name == other.name def __neq__(self, other): - return not (self == other) + return not self == other def add_member(self, node): self.members.append(node) @@ -76,7 +76,7 @@ class DIF: # Shim over UDP # class ShimUDPDIF(DIF): - def __init__(self, name, members = None): + def __init__(self, name, members=None): DIF.__init__(self, name, members) def get_ipcp_class(self): @@ -87,7 +87,7 @@ class ShimUDPDIF(DIF): # @link_speed [int] Speed of the Ethernet network, in Mbps # class ShimEthDIF(DIF): - def __init__(self, name, members = None, link_speed = 0): + def __init__(self, name, members=None, link_speed=0): DIF.__init__(self, name, members) self.link_speed = int(link_speed) if self.link_speed < 0: @@ -101,7 +101,7 @@ class ShimEthDIF(DIF): # @policies [dict] Policies of the normal DIF # class NormalDIF(DIF): - def __init__(self, name, members = None, policies = None): + def __init__(self, name, members=None, policies=None): DIF.__init__(self, name, members) if policies is None: policies = dict() @@ -127,10 +127,8 @@ class NormalDIF(DIF): # @bindings: Binding of names on the processing system # class Node: - def __init__(self, name, difs = None, - dif_registrations = None, - registrations = None, - bindings = None): + def __init__(self, name, difs=None, dif_registrations=None, + registrations=None, bindings=None): self.name = name if difs is None: difs = list() @@ -208,7 +206,7 @@ class Node: return other != None and self.name == other.name def __neq__(self, other): - return not (self == other) + return not self == other def add_dif(self, dif): self.difs.append(dif) @@ -237,11 +235,11 @@ class Node: self._validate() def add_binding(self, name, ap): - self.dif_bindings[name] = ap + self.bindings[name] = ap self._validate() def del_binding(self, name): - del self.dif_bindings[name] + del self.bindings[name] self._validate() # Base class representing an IPC Process to be created in the experiment @@ -276,17 +274,17 @@ class IPCP: and self.dif == other.dif def __neq__(self, other): - return not (self == other) + return not self == other class ShimEthIPCP(IPCP): - def __init__(self, name, node, dif, ifname = None): + def __init__(self, name, node, dif, ifname=None): IPCP.__init__(self, name, node, dif) self.ifname = ifname class ShimUDPIPCP(IPCP): def __init__(self, name, node, dif): IPCP.__init__(self, name, node, dif) - # TODO add IP and port + # TODO: add IP and port # Base class for ARCFIRE experiments # @@ -294,7 +292,7 @@ class ShimUDPIPCP(IPCP): # @nodes: Nodes in the experiment # class Experiment: - def __init__(self, testbed, nodes = None): + def __init__(self, testbed, nodes=None): if nodes is None: nodes = list() self.nodes = nodes @@ -396,7 +394,7 @@ class Experiment: for node in self.nodes: if dif in node.dif_registrations: dif_graphs[dif][node] = [] # init for later use - if first == None: # pick any node for later use + if first is None: # pick any node for later use first = node for lower_dif in node.dif_registrations[dif]: if lower_dif not in neighsets: @@ -413,7 +411,7 @@ class Experiment: self.enrollments.append([]) - if first == None: + if first is None: # This is a shim DIF, nothing to do continue @@ -452,7 +450,7 @@ class Experiment: else: # This is a bug - assert(False) + assert False print("Enrollments:") for el in self.enrollments: @@ -475,8 +473,8 @@ class Experiment: continue ipcp = dif.get_ipcp_class()( - name = '%s.%s' % (dif.name, node.name), - node = node, dif = dif) + name='%s.%s' % (dif.name, node.name), + node=node, dif=dif) if dif in node.dif_registrations: for lower in node.dif_registrations[dif]: diff --git a/rumba/prototypes/irati.py b/rumba/prototypes/irati.py index 90d0861..1babd57 100644 --- a/rumba/prototypes/irati.py +++ b/rumba/prototypes/irati.py @@ -23,7 +23,7 @@ import rumba.model as mod # An experiment over the IRATI implementation class Experiment(mod.Experiment): - def __init__(self, testbed, nodes = None): + def __init__(self, testbed, nodes=None): mod.Experiment.__init__(self, testbed, nodes) def setup(self): @@ -31,7 +31,7 @@ class Experiment(mod.Experiment): cmds.append("sudo apt-get update") cmds.append("sudo apt-get install g++ gcc " - "protobuf-compiler libprotobuf-dev git --yes") + "protobuf-compiler libprotobuf-dev git --yes") cmds.append("sudo rm -rf ~/irati") cmds.append("cd && git clone https://github.com/IRATI/stack irati") cmds.append("cd ~/irati && sudo ./install-from-scratch") @@ -39,7 +39,7 @@ class Experiment(mod.Experiment): for node in self.nodes: ssh.execute_commands(self.testbed, node.full_name, - cmds, time_out = None) + cmds, time_out=None) def run(self): print("[IRATI experiment] start") diff --git a/rumba/prototypes/ouroboros.py b/rumba/prototypes/ouroboros.py index 4359f19..57358cf 100644 --- a/rumba/prototypes/ouroboros.py +++ b/rumba/prototypes/ouroboros.py @@ -23,7 +23,7 @@ import rumba.model as mod # An experiment over the Ouroboros implementation class Experiment(mod.Experiment): - def __init__(self, testbed, nodes = None): + def __init__(self, testbed, nodes=None): mod.Experiment.__init__(self, testbed, nodes) def setup_ouroboros(self): @@ -36,7 +36,8 @@ class Experiment(mod.Experiment): cmds.append("sudo nohup irmd > /dev/null &") for node in self.nodes: - ssh.execute_commands(self.testbed, node.full_name, cmds, time_out = None) + ssh.execute_commands(self.testbed, node.full_name, + cmds, time_out=None) return def bind_names(self): @@ -45,7 +46,8 @@ class Experiment(mod.Experiment): for name, ap in node.bindings.items(): cmds.append("irm b ap " + ap + " n " + name) - ssh.execute_commands(self.testbed, node.full_name, cmds, time_out = None) + ssh.execute_commands(self.testbed, node.full_name, + cmds, time_out=None) def run(self): print("[Ouroboros experiment] start") diff --git a/rumba/prototypes/rlite.py b/rumba/prototypes/rlite.py index 5fa2c37..b175e92 100644 --- a/rumba/prototypes/rlite.py +++ b/rumba/prototypes/rlite.py @@ -23,7 +23,7 @@ import rumba.model as mod # An experiment over the RLITE implementation class Experiment(mod.Experiment): - def __init__(self, testbed, nodes = None): + def __init__(self, testbed, nodes=None): mod.Experiment.__init__(self, testbed, nodes) def setup(self): @@ -31,8 +31,8 @@ class Experiment(mod.Experiment): cmds.append("sudo apt-get update") cmds.append("sudo apt-get install g++ gcc cmake " - "linux-headers-$(uname -r) " - "protobuf-compiler libprotobuf-dev git --yes") + "linux-headers-$(uname -r) " + "protobuf-compiler libprotobuf-dev git --yes") cmds.append("sudo rm -rf ~/rlite") cmds.append("cd ~; git clone https://github.com/vmaffione/rlite") cmds.append("cd ~/rlite && ./configure && make && sudo make install") @@ -40,7 +40,7 @@ class Experiment(mod.Experiment): for node in self.nodes: ssh.execute_commands(self.testbed, node.full_name, - cmds, time_out = None) + cmds, time_out=None) def run(self): print("[RLITE experiment] start") diff --git a/rumba/ssh_support.py b/rumba/ssh_support.py index 552c43f..13ac1c6 100644 --- a/rumba/ssh_support.py +++ b/rumba/ssh_support.py @@ -27,7 +27,7 @@ def get_ssh_client(): return ssh_client -def execute_commands(testbed, hostname, commands, time_out = 3): +def execute_commands(testbed, hostname, commands, time_out=3): ''' Remote execution of a list of shell command on hostname. By default this function will exit (timeout) after 3 seconds. @@ -44,9 +44,10 @@ def execute_commands(testbed, hostname, commands, time_out = 3): try: ssh_client.connect(hostname, 22, testbed.username, testbed.password, - look_for_keys = True, timeout = time_out) + look_for_keys=True, timeout=time_out) for command in commands: stdin, stdout, stderr = ssh_client.exec_command(command) + del stdin, stdout err = str(stderr.read()).strip('b\'\"\\n') if err != "": err_array = err.split('\\n') @@ -58,7 +59,7 @@ def execute_commands(testbed, hostname, commands, time_out = 3): print(str(e)) return -def execute_command(testbed, hostname, command, time_out = 3): +def execute_command(testbed, hostname, command, time_out=3): ''' Remote execution of a list of shell command on hostname. By default this function will exit (timeout) after 3 seconds. @@ -77,8 +78,9 @@ def execute_command(testbed, hostname, command, time_out = 3): try: ssh_client.connect(hostname, 22, testbed.username, testbed.password, - look_for_keys = True, timeout = time_out) + look_for_keys=True, timeout=time_out) stdin, stdout, stderr = ssh_client.exec_command(command) + del stdin err = str(stderr.read()).strip('b\'\"\\n') if err != "": print(err) @@ -113,6 +115,7 @@ def copy_file_to_testbed(testbed, hostname, text, file_name): "; chmod a+rwx " + file_name stdin, stdout, stderr = ssh_client.exec_command(cmd) + del stdin, stdout err = str(stderr.read()).strip('b\'\"\\n') if err != "": print(err) @@ -126,31 +129,30 @@ def copy_file_to_testbed(testbed, hostname, text, file_name): except Exception as e: print(str(e)) -def setup_vlan(testbed, node_name, vlan_id, int_name): +def setup_vlan(testbed, node, vlan_id, int_name): ''' Gets the interface (ethx) to link mapping @param testbed: testbed info - @param node_name: the node to create the VLAN on + @param node: the node to create the VLAN on @param vlan_id: the VLAN id @param int_name: the name of the interface ''' - print("Setting up VLAN on node " + node_name) + print("Setting up VLAN on node " + node.name) - node_full_name = full_name(node_name, testbed) cmd = "sudo ip link add link " + \ str(int_name) + \ " name " + str(int_name) + \ "." + str(vlan_id) + \ " type vlan id " + str(vlan_id) - execute_command(testbed, node_full_name, cmd) + execute_command(testbed, node.full_name, cmd) cmd = "sudo ifconfig " + \ str(int_name) + "." + \ str(vlan_id) + " up" - execute_command(node_full_name, cmd, testbed) + execute_command(node.full_name, cmd, testbed) cmd = "sudo ethtool -K " + \ str(int_name) + " rxvlan off" - execute_command(node_full_name, cmd, testbed) + execute_command(node.full_name, cmd, testbed) cmd = "sudo ethtool -K " + \ str(int_name) + " txvlan off" - execute_command(node_full_name, cmd, testbed) + execute_command(node.full_name, cmd, testbed) diff --git a/rumba/testbeds/emulab.py b/rumba/testbeds/emulab.py index 971202b..134d344 100644 --- a/rumba/testbeds/emulab.py +++ b/rumba/testbeds/emulab.py @@ -23,11 +23,11 @@ import os import time import re from ast import literal_eval +import warnings import rumba.ssh_support as ssh import rumba.model as mod -import warnings warnings.filterwarnings("ignore") # Represents an emulab testbed info @@ -36,9 +36,9 @@ warnings.filterwarnings("ignore") # @image [string] specific image to use # class Testbed(mod.Testbed): - def __init__(self, exp_name, username, password = "", - proj_name = "ARCFIRE", url = "wall2.ilabt.iminds.be", - image = "UBUNTU14-64-STD"): + def __init__(self, exp_name, username, password="", + proj_name="ARCFIRE", url="wall2.ilabt.iminds.be", + image="UBUNTU14-64-STD"): mod.Testbed.__init__(self, exp_name, username, password, proj_name) self.url = url self.image = image @@ -66,7 +66,7 @@ class Testbed(mod.Testbed): return node_name + '.' + self.exp_name + '.' + \ self.proj_name + '.' + self.url - def get_experiment_list(self, project_name = None): + def get_experiment_list(self, project_name=None): ''' Get list of made emulab experiments accessible with your credentials @@ -80,11 +80,11 @@ class Testbed(mod.Testbed): try: if project_name != None: - return literal_eval(out)[project_name][project_name] + return literal_eval(out)[project_name][project_name] else: - return literal_eval(out) + return literal_eval(out) except: - return { project_name: { project_name: [] }} + return {project_name: {project_name: []}} def swap_exp_in(self): ''' @@ -131,8 +131,8 @@ class Testbed(mod.Testbed): '" exp="' + exp_name + '" noswapin=true ' + \ 'nsfilepath="' + dest_file_name + '"' - ssh.execute_command(self, self.ops_server(), cmd, time_out = None) - ssh.execute_command(self, self.ops_server(),'rm ' + dest_file_name) + ssh.execute_command(self, self.ops_server(), cmd, time_out=None) + ssh.execute_command(self, self.ops_server(), 'rm ' + dest_file_name) print("New experiment succesfully created.") def generate_ns_script(self, experiment): @@ -151,12 +151,12 @@ class Testbed(mod.Testbed): ns2_script += "source tb_compat.tcl\n" for node in experiment.nodes: - ns2_script += "set " + node.name + " [$ns node]\n" - ns2_script += "tb-set-node-os $" + node.name + " " + \ - self.image + "\n" + ns2_script += "set " + node.name + " [$ns node]\n" + ns2_script += "tb-set-node-os $" + node.name + " " + \ + self.image + "\n" for dif in experiment.dif_ordering: - if type(dif) is mod.ShimEthDIF: + if isinstance(dif, mod.ShimEthDIF): if len(dif.ipcps) != 2: continue ns2_script += "set " + dif.name + \ @@ -220,17 +220,17 @@ class Testbed(mod.Testbed): continue for ipcp in node.ipcps: if ipcp.dif.name == link_name: - self.ip[ipcp] = link_ip + self.ip[ipcp] = link_ip for node in experiment.nodes: cmd = 'cat /var/emulab/boot/ifmap' - node_full_name = self.full_name(node.name) + node_full_name = self.full_name(node.name) output = ssh.execute_command(self, node_full_name, cmd) output = re.split('\\\\n', output) for item in output: item = item.split() for ipcp in node.ipcps: - if type(ipcp) is mod.ShimEthIPCP: + if isinstance(ipcp, mod.ShimEthIPCP): if self.ip[ipcp] == item[1]: ipcp.ifname = item[0] node.full_name = self.full_name(node.name) diff --git a/rumba/testbeds/faketestbed.py b/rumba/testbeds/faketestbed.py index 8d5e724..4821aa8 100644 --- a/rumba/testbeds/faketestbed.py +++ b/rumba/testbeds/faketestbed.py @@ -22,8 +22,7 @@ import rumba.model as mod # Fake testbed, useful for testing class Testbed(mod.Testbed): - def __init__(self, exp_name, username, proj_name = "ARCFIRE", - password = ""): + def __init__(self, exp_name, username, proj_name="ARCFIRE", password=""): mod.Testbed.__init__(self, exp_name, username, password, proj_name) def create_experiment(self, experiment): diff --git a/rumba/testbeds/jfed.py b/rumba/testbeds/jfed.py index 4a36d4a..e606846 100644 --- a/rumba/testbeds/jfed.py +++ b/rumba/testbeds/jfed.py @@ -25,9 +25,9 @@ import xml.dom.minidom as xml import rumba.model as mod class Testbed(mod.Testbed): - def __init__(self, exp_name, username, cert_file, jfed_jar, exp_hours = "2", - proj_name = "ARCFIRE", authority = "wall2.ilabt.iminds.be"): - passwd = getpass.getpass(prompt = "Password for certificate file: ") + def __init__(self, exp_name, username, cert_file, jfed_jar, exp_hours="2", + proj_name="ARCFIRE", authority="wall2.ilabt.iminds.be"): + passwd = getpass.getpass(prompt="Password for certificate file: ") mod.Testbed.__init__(self, exp_name, username, passwd, proj_name) self.authority = "urn:publicid:IDN+" + authority + "+authority+cm" self.auth_name = authority @@ -35,10 +35,10 @@ class Testbed(mod.Testbed): self.jfed_jar = jfed_jar self.exp_hours = exp_hours self.if_id = dict() - - def create_rspec(self, experiment): self.rspec = self.exp_name + ".rspec" + self.manifest = self.exp_name + ".rrspec" + def create_rspec(self, experiment): impl = xml.getDOMImplementation() doc = impl.createDocument(None, "rspec", None) @@ -80,7 +80,7 @@ class Testbed(mod.Testbed): node.ifs = 0 for ipcp in node.ipcps: - if type(ipcp) is mod.ShimEthIPCP: + if isinstance(ipcp, mod.ShimEthIPCP): el3 = doc.createElement("interface") self.if_id[ipcp] = node.name + ":if" + str(node.ifs) el3.setAttribute("client_id", self.if_id[ipcp]) @@ -88,7 +88,7 @@ class Testbed(mod.Testbed): el.appendChild(el3) for dif in experiment.dif_ordering: - if type(dif) is mod.ShimEthDIF: + if isinstance(dif, mod.ShimEthDIF): el = doc.createElement("link") top_el.appendChild(el) el.setAttribute("client_id", dif.name) @@ -108,7 +108,6 @@ class Testbed(mod.Testbed): def create_experiment(self, experiment): self.create_rspec(experiment) - self.manifest = self.exp_name + ".rrspec" for node in experiment.nodes: auth_name_r = self.auth_name.replace(".", "-") @@ -140,7 +139,7 @@ class Testbed(mod.Testbed): for intf in intfs: i_name = intf.getAttribute("client_id") for ipcp in node_n.ipcps: - if type(ipcp) is mod.ShimEthIPCP: + if isinstance(ipcp, mod.ShimEthIPCP): if self.if_id[ipcp] == i_name: comp_id = intf.getAttribute("component_id") comp_arr = comp_id.split(":") diff --git a/rumba/testbeds/qemu.py b/rumba/testbeds/qemu.py index 3f4cb4a..158f360 100644 --- a/rumba/testbeds/qemu.py +++ b/rumba/testbeds/qemu.py @@ -22,8 +22,7 @@ import rumba.model as mod # Fake testbed, useful for testing class Testbed(mod.Testbed): - def __init__(self, exp_name, username, proj_name = "ARCFIRE", - password = ""): + def __init__(self, exp_name, username, proj_name="ARCFIRE", password=""): mod.Testbed.__init__(self, exp_name, username, password, proj_name) def create_experiment(self, experiment): -- cgit v1.2.3