* [PATCH v1] framework/virt_*: fix pylama errors @ 2021-11-24 13:47 Juraj Linkeš 2021-12-07 15:04 ` [PATCH v2] framework/pktgen_*: " Juraj Linkeš 2021-12-08 9:32 ` [PATCH v2] framework/virt_*: " Juraj Linkeš 0 siblings, 2 replies; 5+ messages in thread From: Juraj Linkeš @ 2021-11-24 13:47 UTC (permalink / raw) To: lijuan.tu, ohilyard; +Cc: dts, Juraj Linkeš Pylama found the following errors: framework/virt_base.py:271: [E] E1101 Instance of 'VirtBase' has no 'add_vm_login' member [pylint] framework/virt_base.py:274: [E] E1101 Instance of 'VirtBase' has no '_attach_vm' member [pylint] framework/virt_base.py:319: [E] E1101 Instance of 'VirtBase' has no '_quick_start_vm' member [pylint] framework/virt_base.py:413: [E] E1111 Assigning result of a function call, where the function has no return [pylint] framework/virt_base.py:416: [E] E1101 Instance of 'VirtBase' has no 'get_vm_login' member [pylint] framework/virt_base.py:88: [E] E1111 Assigning result of a function call, where the function has no return [pylint] framework/virt_dut.py:73: [E] E1003 Bad first argument 'Dut' given to super() [pylint] framework/virt_resource.py:242: [E] E1101 Instance of 'VirtResource' has no '__port_isused' member [pylint] framework/virt_resource.py:246: [E] E0602 Undefined variable 'core' [pylint] framework/virt_resource.py:247: [E] E0602 Undefined variable 'core' [pylint] framework/virt_scene.py:350: [E] E1101 Instance of 'VirtScene' has no 'tester' member [pylint] framework/virt_scene.py:393: [E] E1101 Instance of 'VirtScene' has no 'vm_dut' member [pylint] framework/virt_scene.py:397: [E] E1101 Instance of 'VirtScene' has no 'tester' member [pylint] framework/virt_scene.py:458: [E] E1123 Unexpected keyword argument 'auto_portmap' in method call [pylint] framework/virt_scene.py:510: [E] E0102 class already defined line 38 [pylint] framework/virt_scene.py:517: [E] E1101 Instance of 'QEMUKvm' has no 'params' member [pylint] Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> --- Lijuan, please add additional people to review if needed. --- framework/dut.py | 11 +++++++---- framework/project_dpdk.py | 5 +++-- framework/virt_base.py | 28 ++++++++++++++++++++++++++-- framework/virt_dut.py | 2 +- framework/virt_resource.py | 7 +++++-- framework/virt_scene.py | 13 +++++++------ 6 files changed, 49 insertions(+), 17 deletions(-) diff --git a/framework/dut.py b/framework/dut.py index dc3fc874..f4355f40 100644 --- a/framework/dut.py +++ b/framework/dut.py @@ -62,10 +62,13 @@ class Dut(Crb): CORE_LIST_CACHE_KEY = 'dut_core_list' PCI_DEV_CACHE_KEY = 'dut_pci_dev_info' - def __init__(self, crb, serializer, dut_id): - self.NAME = 'dut' + LOG_NAME_SEP + '%s' % crb['My IP'] - super(Dut, self).__init__(crb, serializer, self.NAME, alt_session=True, dut_id=dut_id) - + def __init__(self, crb, serializer, + name=None, alt_session=True, dut_id=0): + if not name: + name = 'dut' + LOG_NAME_SEP + '%s' % crb['My IP'] + self.NAME = name + super(Dut, self).__init__(crb, serializer, name, + alt_session=alt_session, dut_id=dut_id) self.host_init_flag = False self.number_of_cores = 0 self.tester = None diff --git a/framework/project_dpdk.py b/framework/project_dpdk.py index 9927bcc1..75613a1d 100644 --- a/framework/project_dpdk.py +++ b/framework/project_dpdk.py @@ -60,8 +60,9 @@ class DPDKdut(Dut): build, memory and kernel module. """ - def __init__(self, crb, serializer, dut_id): - super(DPDKdut, self).__init__(crb, serializer, dut_id) + def __init__(self, crb, serializer, name=None, alt_session=True, dut_id=0): + super(DPDKdut, self).__init__(crb, serializer, name, alt_session, + dut_id) self.testpmd = None def set_target(self, target, bind_dev=True): diff --git a/framework/virt_base.py b/framework/virt_base.py index 148a4d18..ef117062 100644 --- a/framework/virt_base.py +++ b/framework/virt_base.py @@ -104,7 +104,7 @@ class VirtBase(object): """ Get the virtual type, such as KVM, XEN or LIBVIRT. """ - NotImplemented + raise NotImplementedError def has_virtual_ability(self): """ @@ -118,6 +118,30 @@ class VirtBase(object): """ NotImplemented + def get_vm_login(self): + """ + Get VM credentials. + """ + raise NotImplementedError + + def add_vm_login(self): + """ + Add VM credentials. + """ + raise NotImplementedError + + def _attach_vm(self): + """ + Attach VM. + """ + raise NotImplementedError + + def _quick_start_vm(self): + """ + Quick start VM. + """ + raise NotImplementedError + def load_global_config(self): """ Load global configure in the path DTS_ROOT_PATH/conf. @@ -230,7 +254,7 @@ class VirtBase(object): """ Get the VM IP. """ - NotImplemented + raise NotImplementedError def get_pci_mappings(self): """ diff --git a/framework/virt_dut.py b/framework/virt_dut.py index bde65667..de892879 100644 --- a/framework/virt_dut.py +++ b/framework/virt_dut.py @@ -70,7 +70,7 @@ class VirtDut(DPDKdut): self.vm_ip = crb['IP'] self.NAME = 'virtdut' + LOG_NAME_SEP + '%s' % self.vm_ip # do not create addition alt_session - super(Dut, self).__init__(crb, serializer, self.NAME, alt_session=False, dut_id=self.dut_id) + super(VirtDut, self).__init__(crb, serializer, self.NAME, alt_session=False, dut_id=self.dut_id) # load port config from suite cfg self.suite = suite diff --git a/framework/virt_resource.py b/framework/virt_resource.py index 8a19f1b2..3163372d 100644 --- a/framework/virt_resource.py +++ b/framework/virt_resource.py @@ -70,6 +70,9 @@ class VirtResource(object): # save allocated cores and related vm self.allocated_info = {} + def __port_isused(self, pci): + return pci in self.used_ports + def __port_used(self, pci): index = self.ports.index(pci) self.used_ports[index] = pci @@ -243,8 +246,8 @@ class VirtResource(object): print("Port %s has been used!!!" % pci) else: if self.__port_on_socket(pci, socket) is True: - self.__port_used(core) - ports.append(core) + self.__port_used(pci) + ports.append(pci) if vm not in self.allocated_info: self.allocated_info[vm] = {} diff --git a/framework/virt_scene.py b/framework/virt_scene.py index cc36a09b..d82012b1 100644 --- a/framework/virt_scene.py +++ b/framework/virt_scene.py @@ -347,7 +347,7 @@ class VirtScene(object): elif cmd['type'] == 'host': crb = self.host_dut elif cmd['type'] == 'tester': - crb = self.tester + crb = self.tester_dut else: crb = self.host_dut @@ -390,11 +390,11 @@ class VirtScene(object): def run_post_cmds(self): for cmd in self.post_cmds: if cmd['type'] == 'vm': - crb = self.vm_dut + crb = None elif cmd['type'] == 'host': crb = self.host_dut elif cmd['type'] == 'tester': - crb = self.tester + crb = self.tester_dut else: crb = self.host_dut @@ -456,7 +456,6 @@ class VirtScene(object): topo = self.get_cputopo(scene_params) try: vm_dut = vm.start(load_config=False, set_target=False, - auto_portmap=self.auto_portmap, cpu_topo=topo) if vm_dut is None: raise Exception("Set up VM ENV failed!") @@ -507,16 +506,18 @@ class VirtScene(object): if __name__ == "__main__": - class QEMUKvm(): + class QEMUKvmTmp(): def __init__(self, dut, vm_name, suite_name): print(vm_name) print(suite_name) def start(self): - print(self.params) + print(self.__dict__) return True + QEMUKvm = QEMUKvmTmp + class simple_dev(object): def __init__(self, pci): -- 2.20.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] framework/pktgen_*: fix pylama errors 2021-11-24 13:47 [PATCH v1] framework/virt_*: fix pylama errors Juraj Linkeš @ 2021-12-07 15:04 ` Juraj Linkeš 2021-12-07 15:18 ` [PATCH v3] " Juraj Linkeš 2021-12-08 9:32 ` [PATCH v2] framework/virt_*: " Juraj Linkeš 1 sibling, 1 reply; 5+ messages in thread From: Juraj Linkeš @ 2021-12-07 15:04 UTC (permalink / raw) To: lijuan.tu, ohilyard; +Cc: dts, Juraj Linkeš Pylama found the following errors: framework/pktgen_base.py:108: [E] E1101 Instance of 'PacketGenerator' has no '_get_gen_port' member [pylint] framework/pktgen_base.py:148: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint] framework/pktgen_base.py:173: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:279: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:479: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint] framework/pktgen_base.py:528: [E] E0602 Undefined variable 'last_no_lost_mult' [pylint] framework/pktgen_base.py:558: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:573: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint] framework/pktgen_base.py:607: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint] framework/pktgen_base.py:673: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:677: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:69: [E] E1101 Instance of 'PacketGenerator' has no '_prepare_generator' member; maybe 'prepare_generator'? [pylint] framework/pktgen_base.py:77: [E] E1101 Instance of 'PacketGenerator' has no '_get_port_pci' member [pylint] framework/pktgen_ixia.py:1085: [E] E1306 Not enough arguments for format string [pylint] framework/pktgen_trex.py:194: [E] E0602 Undefined variable 'Ether' [pylint] framework/pktgen_trex.py:195: [E] E0602 Undefined variable 'IP' [pylint] Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> --- Lijuan, please add additional people to review if needed. --- framework/pktgen_base.py | 15 ++++++++++++++- framework/pktgen_ixia.py | 2 +- framework/pktgen_trex.py | 5 ++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/framework/pktgen_base.py b/framework/pktgen_base.py index 023652cc..16eae93f 100644 --- a/framework/pktgen_base.py +++ b/framework/pktgen_base.py @@ -64,10 +64,17 @@ class PacketGenerator(object): self.tester = tester self.__streams = [] self._ports_map = [] + self.pktgen_type = None + + def _prepare_generator(self): + raise NotImplementedError def prepare_generator(self): self._prepare_generator() + def _get_port_pci(self, port_id): + raise NotImplementedError + def _convert_pktgen_port(self, port_id): ''' :param port_id: @@ -94,6 +101,9 @@ class PacketGenerator(object): return port + def _get_gen_port(self, tester_pci): + raise NotImplementedError + def _convert_tester_port(self, port_id): ''' :param port_id: @@ -143,6 +153,9 @@ class PacketGenerator(object): def get_streams(self): return self.__streams + def _clear_streams(self): + raise NotImplementedError + def clear_streams(self): ''' clear streams ''' self._clear_streams() @@ -525,7 +538,7 @@ class PacketGenerator(object): break pps = (traffic_pps_max - traffic_pps_min)/2 + traffic_pps_min - self.logger.info("zero loss pps is %f" % last_no_lost_mult) + self.logger.info("zero loss pps is %f" % pps) # use last result as return data to keep the same with dts/etgen format # In fact, multiple link peer have multiple loss rate value, # here only pick one diff --git a/framework/pktgen_ixia.py b/framework/pktgen_ixia.py index 06667047..9a8c9d2e 100644 --- a/framework/pktgen_ixia.py +++ b/framework/pktgen_ixia.py @@ -1082,7 +1082,7 @@ class Ixia(SSHConnection): Tells IXIA to prepare the internal buffers were the frames were captured. """ ixia_port = self.get_ixia_port(port_number) - command = 'capture get {0} {1} {2}'.format(ixia_port) + command = 'capture get {0}'.format(ixia_port) self.send_expect(command, '% ', 30) def stat_get_rate_stat_all_stats(self, port_number): diff --git a/framework/pktgen_trex.py b/framework/pktgen_trex.py index 2ad05fe6..2f537a0b 100644 --- a/framework/pktgen_trex.py +++ b/framework/pktgen_trex.py @@ -35,6 +35,9 @@ import sys import time from pprint import pformat +from scapy.layers.inet import IP +from scapy.layers.l2 import Ether + from .pktgen_base import ( PKTGEN, PKTGEN_TREX, @@ -414,6 +417,7 @@ class TrexPacketGenerator(PacketGenerator): https://trex-tgn.cisco.com/trex/doc/trex_manual.html """ def __init__(self, tester): + super(TrexPacketGenerator, self).__init__(tester) self.pktgen_type = PKTGEN_TREX self.trex_app = "t-rex-64" self._conn = None @@ -432,7 +436,6 @@ class TrexPacketGenerator(PacketGenerator): self.ip_keys = ['start', 'end','action', 'mask', 'step'] self.vlan_keys = ['start', 'end', 'action', 'step', 'count'] - super(TrexPacketGenerator, self).__init__(tester) # check trex binary file trex_bin = os.sep.join([self.conf.get('trex_root_path'), self.trex_app]) -- 2.20.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3] framework/pktgen_*: fix pylama errors 2021-12-07 15:04 ` [PATCH v2] framework/pktgen_*: " Juraj Linkeš @ 2021-12-07 15:18 ` Juraj Linkeš 2022-01-14 8:09 ` Tu, Lijuan 0 siblings, 1 reply; 5+ messages in thread From: Juraj Linkeš @ 2021-12-07 15:18 UTC (permalink / raw) To: lijuan.tu, ohilyard; +Cc: dts, Juraj Linkeš Pylama found the following errors: framework/pktgen_base.py:108: [E] E1101 Instance of 'PacketGenerator' has no '_get_gen_port' member [pylint] framework/pktgen_base.py:148: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint] framework/pktgen_base.py:173: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:279: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:479: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint] framework/pktgen_base.py:528: [E] E0602 Undefined variable 'last_no_lost_mult' [pylint] framework/pktgen_base.py:558: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:573: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint] framework/pktgen_base.py:607: [E] E1101 Instance of 'PacketGenerator' has no '_clear_streams' member; maybe 'clear_streams'? [pylint] framework/pktgen_base.py:673: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:677: [E] E1101 Instance of 'PacketGenerator' has no 'pktgen_type' member [pylint] framework/pktgen_base.py:69: [E] E1101 Instance of 'PacketGenerator' has no '_prepare_generator' member; maybe 'prepare_generator'? [pylint] framework/pktgen_base.py:77: [E] E1101 Instance of 'PacketGenerator' has no '_get_port_pci' member [pylint] framework/pktgen_ixia.py:1085: [E] E1306 Not enough arguments for format string [pylint] framework/pktgen_trex.py:194: [E] E0602 Undefined variable 'Ether' [pylint] framework/pktgen_trex.py:195: [E] E0602 Undefined variable 'IP' [pylint] Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> --- Lijuan, please add additional people to review if needed. --- framework/pktgen_base.py | 15 ++++++++++++++- framework/pktgen_ixia.py | 4 ++-- framework/pktgen_ixia_network.py | 2 +- framework/pktgen_trex.py | 5 ++++- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/framework/pktgen_base.py b/framework/pktgen_base.py index 023652cc..16eae93f 100644 --- a/framework/pktgen_base.py +++ b/framework/pktgen_base.py @@ -64,10 +64,17 @@ class PacketGenerator(object): self.tester = tester self.__streams = [] self._ports_map = [] + self.pktgen_type = None + + def _prepare_generator(self): + raise NotImplementedError def prepare_generator(self): self._prepare_generator() + def _get_port_pci(self, port_id): + raise NotImplementedError + def _convert_pktgen_port(self, port_id): ''' :param port_id: @@ -94,6 +101,9 @@ class PacketGenerator(object): return port + def _get_gen_port(self, tester_pci): + raise NotImplementedError + def _convert_tester_port(self, port_id): ''' :param port_id: @@ -143,6 +153,9 @@ class PacketGenerator(object): def get_streams(self): return self.__streams + def _clear_streams(self): + raise NotImplementedError + def clear_streams(self): ''' clear streams ''' self._clear_streams() @@ -525,7 +538,7 @@ class PacketGenerator(object): break pps = (traffic_pps_max - traffic_pps_min)/2 + traffic_pps_min - self.logger.info("zero loss pps is %f" % last_no_lost_mult) + self.logger.info("zero loss pps is %f" % pps) # use last result as return data to keep the same with dts/etgen format # In fact, multiple link peer have multiple loss rate value, # here only pick one diff --git a/framework/pktgen_ixia.py b/framework/pktgen_ixia.py index 06667047..03dac3de 100644 --- a/framework/pktgen_ixia.py +++ b/framework/pktgen_ixia.py @@ -1082,7 +1082,7 @@ class Ixia(SSHConnection): Tells IXIA to prepare the internal buffers were the frames were captured. """ ixia_port = self.get_ixia_port(port_number) - command = 'capture get {0} {1} {2}'.format(ixia_port) + command = 'capture get {0}'.format(ixia_port) self.send_expect(command, '% ', 30) def stat_get_rate_stat_all_stats(self, port_number): @@ -1369,6 +1369,7 @@ class IxiaPacketGenerator(PacketGenerator): Ixia packet generator """ def __init__(self, tester): + super(IxiaPacketGenerator, self).__init__(tester) # ixia management self.pktgen_type = PKTGEN_IXIA self._conn = None @@ -1388,7 +1389,6 @@ class IxiaPacketGenerator(PacketGenerator): self.ip_keys = ['start', 'end','action', 'step', 'mask',] self.vlan_keys = ['start', 'end', 'action', 'step', 'count',] - super(IxiaPacketGenerator, self).__init__(tester) self.tester = tester def get_ports(self): diff --git a/framework/pktgen_ixia_network.py b/framework/pktgen_ixia_network.py index f3a232d2..3a58abe5 100644 --- a/framework/pktgen_ixia_network.py +++ b/framework/pktgen_ixia_network.py @@ -41,6 +41,7 @@ class IxNetworkPacketGenerator(PacketGenerator): ixNetwork packet generator """ def __init__(self, tester): + super(IxNetworkPacketGenerator, self).__init__(tester) self.pktgen_type = PKTGEN_IXIA_NETWORK self._conn = None # ixNetwork configuration information of dts @@ -51,7 +52,6 @@ class IxNetworkPacketGenerator(PacketGenerator): self._ports = [] self._rx_ports = [] - super(IxNetworkPacketGenerator, self).__init__(tester) def get_ports(self): ''' used for ixNetwork packet generator ''' diff --git a/framework/pktgen_trex.py b/framework/pktgen_trex.py index 2ad05fe6..2f537a0b 100644 --- a/framework/pktgen_trex.py +++ b/framework/pktgen_trex.py @@ -35,6 +35,9 @@ import sys import time from pprint import pformat +from scapy.layers.inet import IP +from scapy.layers.l2 import Ether + from .pktgen_base import ( PKTGEN, PKTGEN_TREX, @@ -414,6 +417,7 @@ class TrexPacketGenerator(PacketGenerator): https://trex-tgn.cisco.com/trex/doc/trex_manual.html """ def __init__(self, tester): + super(TrexPacketGenerator, self).__init__(tester) self.pktgen_type = PKTGEN_TREX self.trex_app = "t-rex-64" self._conn = None @@ -432,7 +436,6 @@ class TrexPacketGenerator(PacketGenerator): self.ip_keys = ['start', 'end','action', 'mask', 'step'] self.vlan_keys = ['start', 'end', 'action', 'step', 'count'] - super(TrexPacketGenerator, self).__init__(tester) # check trex binary file trex_bin = os.sep.join([self.conf.get('trex_root_path'), self.trex_app]) -- 2.20.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH v3] framework/pktgen_*: fix pylama errors 2021-12-07 15:18 ` [PATCH v3] " Juraj Linkeš @ 2022-01-14 8:09 ` Tu, Lijuan 0 siblings, 0 replies; 5+ messages in thread From: Tu, Lijuan @ 2022-01-14 8:09 UTC (permalink / raw) To: Juraj Linkeš, ohilyard; +Cc: dts > -----Original Message----- > From: Juraj Linkeš <juraj.linkes@pantheon.tech> > Sent: 2021年12月7日 23:18 > To: Tu, Lijuan <lijuan.tu@intel.com>; ohilyard@iol.unh.edu > Cc: dts@dpdk.org; Juraj Linkeš <juraj.linkes@pantheon.tech> > Subject: [PATCH v3] framework/pktgen_*: fix pylama errors > > Pylama found the following errors: > framework/pktgen_base.py:108: [E] E1101 Instance of 'PacketGenerator' has no > '_get_gen_port' member [pylint] > framework/pktgen_base.py:148: [E] E1101 Instance of 'PacketGenerator' has no > '_clear_streams' member; maybe 'clear_streams'? [pylint] > framework/pktgen_base.py:173: [E] E1101 Instance of 'PacketGenerator' has no > 'pktgen_type' member [pylint] > framework/pktgen_base.py:279: [E] E1101 Instance of 'PacketGenerator' has no > 'pktgen_type' member [pylint] > framework/pktgen_base.py:479: [E] E1101 Instance of 'PacketGenerator' has no > '_clear_streams' member; maybe 'clear_streams'? [pylint] > framework/pktgen_base.py:528: [E] E0602 Undefined variable > 'last_no_lost_mult' [pylint] > framework/pktgen_base.py:558: [E] E1101 Instance of 'PacketGenerator' has no > 'pktgen_type' member [pylint] > framework/pktgen_base.py:573: [E] E1101 Instance of 'PacketGenerator' has no > '_clear_streams' member; maybe 'clear_streams'? [pylint] > framework/pktgen_base.py:607: [E] E1101 Instance of 'PacketGenerator' has no > '_clear_streams' member; maybe 'clear_streams'? [pylint] > framework/pktgen_base.py:673: [E] E1101 Instance of 'PacketGenerator' has no > 'pktgen_type' member [pylint] > framework/pktgen_base.py:677: [E] E1101 Instance of 'PacketGenerator' has no > 'pktgen_type' member [pylint] > framework/pktgen_base.py:69: [E] E1101 Instance of 'PacketGenerator' has no > '_prepare_generator' member; maybe 'prepare_generator'? [pylint] > framework/pktgen_base.py:77: [E] E1101 Instance of 'PacketGenerator' has no > '_get_port_pci' member [pylint] > framework/pktgen_ixia.py:1085: [E] E1306 Not enough arguments for format > string [pylint] > framework/pktgen_trex.py:194: [E] E0602 Undefined variable 'Ether' [pylint] > framework/pktgen_trex.py:195: [E] E0602 Undefined variable 'IP' [pylint] > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> Applied ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] framework/virt_*: fix pylama errors 2021-11-24 13:47 [PATCH v1] framework/virt_*: fix pylama errors Juraj Linkeš 2021-12-07 15:04 ` [PATCH v2] framework/pktgen_*: " Juraj Linkeš @ 2021-12-08 9:32 ` Juraj Linkeš 1 sibling, 0 replies; 5+ messages in thread From: Juraj Linkeš @ 2021-12-08 9:32 UTC (permalink / raw) To: lijuan.tu, ohilyard; +Cc: dts, Juraj Linkeš Pylama found the following errors: framework/virt_base.py:271: [E] E1101 Instance of 'VirtBase' has no 'add_vm_login' member [pylint] framework/virt_base.py:274: [E] E1101 Instance of 'VirtBase' has no '_attach_vm' member [pylint] framework/virt_base.py:319: [E] E1101 Instance of 'VirtBase' has no '_quick_start_vm' member [pylint] framework/virt_base.py:413: [E] E1111 Assigning result of a function call, where the function has no return [pylint] framework/virt_base.py:416: [E] E1101 Instance of 'VirtBase' has no 'get_vm_login' member [pylint] framework/virt_base.py:88: [E] E1111 Assigning result of a function call, where the function has no return [pylint] framework/virt_dut.py:73: [E] E1003 Bad first argument 'Dut' given to super() [pylint] - unify the init function of VirtDut's parents framework/virt_resource.py:242: [E] E1101 Instance of 'VirtResource' has no '__port_isused' member [pylint] framework/virt_resource.py:246: [E] E0602 Undefined variable 'core' [pylint] framework/virt_resource.py:247: [E] E0602 Undefined variable 'core' [pylint] framework/virt_scene.py:350: [E] E1101 Instance of 'VirtScene' has no 'tester' member [pylint] framework/virt_scene.py:393: [E] E1101 Instance of 'VirtScene' has no 'vm_dut' member [pylint] framework/virt_scene.py:397: [E] E1101 Instance of 'VirtScene' has no 'tester' member [pylint] framework/virt_scene.py:458: [E] E1123 Unexpected keyword argument 'auto_portmap' in method call [pylint] framework/virt_scene.py:510: [E] E0102 class already defined line 38 [pylint] framework/virt_scene.py:517: [E] E1101 Instance of 'QEMUKvm' has no 'params' member [pylint] Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> --- Lijuan, please add additional people to review if needed. --- framework/crb.py | 2 +- framework/dut.py | 9 +++++---- framework/project_dpdk.py | 5 +++-- framework/tester.py | 2 +- framework/virt_base.py | 28 ++++++++++++++++++++++++++-- framework/virt_dut.py | 10 +++++----- framework/virt_resource.py | 7 +++++-- framework/virt_scene.py | 13 +++++++------ 8 files changed, 53 insertions(+), 23 deletions(-) diff --git a/framework/crb.py b/framework/crb.py index c9909add..4ba7d033 100755 --- a/framework/crb.py +++ b/framework/crb.py @@ -51,7 +51,7 @@ class Crb(object): CPU/PCI/NIC on the board and setup running environment for DPDK. """ - def __init__(self, crb, serializer, name, alt_session=True, dut_id=0): + def __init__(self, crb, serializer, dut_id=0, name=None, alt_session=True): self.dut_id = dut_id self.crb = crb self.read_cache = False diff --git a/framework/dut.py b/framework/dut.py index dc3fc874..784a8375 100644 --- a/framework/dut.py +++ b/framework/dut.py @@ -62,10 +62,11 @@ class Dut(Crb): CORE_LIST_CACHE_KEY = 'dut_core_list' PCI_DEV_CACHE_KEY = 'dut_pci_dev_info' - def __init__(self, crb, serializer, dut_id): - self.NAME = 'dut' + LOG_NAME_SEP + '%s' % crb['My IP'] - super(Dut, self).__init__(crb, serializer, self.NAME, alt_session=True, dut_id=dut_id) - + def __init__(self, crb, serializer, dut_id=0, name=None, alt_session=True): + if not name: + name = 'dut' + LOG_NAME_SEP + '%s' % crb['My IP'] + self.NAME = name + super(Dut, self).__init__(crb, serializer, dut_id, name, alt_session) self.host_init_flag = False self.number_of_cores = 0 self.tester = None diff --git a/framework/project_dpdk.py b/framework/project_dpdk.py index 9927bcc1..37fbc4e6 100644 --- a/framework/project_dpdk.py +++ b/framework/project_dpdk.py @@ -60,8 +60,9 @@ class DPDKdut(Dut): build, memory and kernel module. """ - def __init__(self, crb, serializer, dut_id): - super(DPDKdut, self).__init__(crb, serializer, dut_id) + def __init__(self, crb, serializer, dut_id=0, name=None, alt_session=True): + super(DPDKdut, self).__init__(crb, serializer, dut_id, name, + alt_session) self.testpmd = None def set_target(self, target, bind_dev=True): diff --git a/framework/tester.py b/framework/tester.py index 9dba4e4d..80e531ee 100644 --- a/framework/tester.py +++ b/framework/tester.py @@ -80,7 +80,7 @@ class Tester(Crb): def __init__(self, crb, serializer): self.NAME = 'tester' self.scapy_session = None - super(Tester, self).__init__(crb, serializer, self.NAME) + super(Tester, self).__init__(crb, serializer, name=self.NAME) # check the python version of tester check_crb_python_version(self) diff --git a/framework/virt_base.py b/framework/virt_base.py index 148a4d18..ef117062 100644 --- a/framework/virt_base.py +++ b/framework/virt_base.py @@ -104,7 +104,7 @@ class VirtBase(object): """ Get the virtual type, such as KVM, XEN or LIBVIRT. """ - NotImplemented + raise NotImplementedError def has_virtual_ability(self): """ @@ -118,6 +118,30 @@ class VirtBase(object): """ NotImplemented + def get_vm_login(self): + """ + Get VM credentials. + """ + raise NotImplementedError + + def add_vm_login(self): + """ + Add VM credentials. + """ + raise NotImplementedError + + def _attach_vm(self): + """ + Attach VM. + """ + raise NotImplementedError + + def _quick_start_vm(self): + """ + Quick start VM. + """ + raise NotImplementedError + def load_global_config(self): """ Load global configure in the path DTS_ROOT_PATH/conf. @@ -230,7 +254,7 @@ class VirtBase(object): """ Get the VM IP. """ - NotImplemented + raise NotImplementedError def get_pci_mappings(self): """ diff --git a/framework/virt_dut.py b/framework/virt_dut.py index bde65667..1afd90a9 100644 --- a/framework/virt_dut.py +++ b/framework/virt_dut.py @@ -61,16 +61,16 @@ class VirtDut(DPDKdut): """ def __init__(self, hyper, crb, serializer, virttype, vm_name, suite, cpu_topo, dut_id): + self.vm_ip = crb['IP'] + self.NAME = 'virtdut' + LOG_NAME_SEP + '%s' % self.vm_ip + # do not create addition alt_session + super(VirtDut, self).__init__(crb, serializer, dut_id, + self.NAME, alt_session=False) self.vm_name = vm_name self.hyper = hyper self.cpu_topo = cpu_topo - self.dut_id = dut_id self.migration_vm = False - self.vm_ip = crb['IP'] - self.NAME = 'virtdut' + LOG_NAME_SEP + '%s' % self.vm_ip - # do not create addition alt_session - super(Dut, self).__init__(crb, serializer, self.NAME, alt_session=False, dut_id=self.dut_id) # load port config from suite cfg self.suite = suite diff --git a/framework/virt_resource.py b/framework/virt_resource.py index 8a19f1b2..3163372d 100644 --- a/framework/virt_resource.py +++ b/framework/virt_resource.py @@ -70,6 +70,9 @@ class VirtResource(object): # save allocated cores and related vm self.allocated_info = {} + def __port_isused(self, pci): + return pci in self.used_ports + def __port_used(self, pci): index = self.ports.index(pci) self.used_ports[index] = pci @@ -243,8 +246,8 @@ class VirtResource(object): print("Port %s has been used!!!" % pci) else: if self.__port_on_socket(pci, socket) is True: - self.__port_used(core) - ports.append(core) + self.__port_used(pci) + ports.append(pci) if vm not in self.allocated_info: self.allocated_info[vm] = {} diff --git a/framework/virt_scene.py b/framework/virt_scene.py index cc36a09b..d82012b1 100644 --- a/framework/virt_scene.py +++ b/framework/virt_scene.py @@ -347,7 +347,7 @@ class VirtScene(object): elif cmd['type'] == 'host': crb = self.host_dut elif cmd['type'] == 'tester': - crb = self.tester + crb = self.tester_dut else: crb = self.host_dut @@ -390,11 +390,11 @@ class VirtScene(object): def run_post_cmds(self): for cmd in self.post_cmds: if cmd['type'] == 'vm': - crb = self.vm_dut + crb = None elif cmd['type'] == 'host': crb = self.host_dut elif cmd['type'] == 'tester': - crb = self.tester + crb = self.tester_dut else: crb = self.host_dut @@ -456,7 +456,6 @@ class VirtScene(object): topo = self.get_cputopo(scene_params) try: vm_dut = vm.start(load_config=False, set_target=False, - auto_portmap=self.auto_portmap, cpu_topo=topo) if vm_dut is None: raise Exception("Set up VM ENV failed!") @@ -507,16 +506,18 @@ class VirtScene(object): if __name__ == "__main__": - class QEMUKvm(): + class QEMUKvmTmp(): def __init__(self, dut, vm_name, suite_name): print(vm_name) print(suite_name) def start(self): - print(self.params) + print(self.__dict__) return True + QEMUKvm = QEMUKvmTmp + class simple_dev(object): def __init__(self, pci): -- 2.20.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-01-14 8:09 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-11-24 13:47 [PATCH v1] framework/virt_*: fix pylama errors Juraj Linkeš 2021-12-07 15:04 ` [PATCH v2] framework/pktgen_*: " Juraj Linkeš 2021-12-07 15:18 ` [PATCH v3] " Juraj Linkeš 2022-01-14 8:09 ` Tu, Lijuan 2021-12-08 9:32 ` [PATCH v2] framework/virt_*: " Juraj Linkeš
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).