From patchwork Wed Jan 19 12:11:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Juraj_Linke=C5=A1?= X-Patchwork-Id: 106075 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 09757A04A6; Wed, 19 Jan 2022 13:11:48 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D860741147; Wed, 19 Jan 2022 13:11:47 +0100 (CET) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id C9D2C4013F for ; Wed, 19 Jan 2022 13:11:46 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id 24C5F1376FB; Wed, 19 Jan 2022 13:11:46 +0100 (CET) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9AozjKDcvPBf; Wed, 19 Jan 2022 13:11:44 +0100 (CET) Received: from service-node1.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id 7D77A1376FA; Wed, 19 Jan 2022 13:11:44 +0100 (CET) From: =?utf-8?q?Juraj_Linke=C5=A1?= To: lijuan.tu@intel.com, ohilyard@iol.unh.edu, junx.dong@intel.com Cc: dts@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= Subject: [PATCH v2] framework/qemu_kvm: fix pylama errors Date: Wed, 19 Jan 2022 13:11:44 +0100 Message-Id: <1642594304-11172-1-git-send-email-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1638793303-2955-1-git-send-email-juraj.linkes@pantheon.tech> References: <1638793303-2955-1-git-send-email-juraj.linkes@pantheon.tech> MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Pylama found the following errors: framework/qemu_kvm.py:1498: [E] E0602 Undefined variable 'assgined_pcis_info' [pylint] framework/qemu_kvm.py:1508: [E] E0602 Undefined variable 'assinged_pcis_info' [pylint] framework/qemu_kvm.py:1508: [E] E1101 Instance of 'QEMUKvm' has no '__vf_has_been_assinged' member [pylint] framework/qemu_kvm.py:1587: [E] E1121 Too many positional arguments for method call [pylint] framework/qemu_kvm.py:1733: [E] E0213 Method should have "self" as first argument [pylint] framework/qemu_kvm.py:1750: [E] E1102 func is not callable [pylint] Signed-off-by: Juraj Linkeš Reviewed-by: Jun Dong --- Lijuan, please add additional people to review if needed. --- framework/qemu_kvm.py | 62 ++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/framework/qemu_kvm.py b/framework/qemu_kvm.py index 515a4c04..fc31ca09 100644 --- a/framework/qemu_kvm.py +++ b/framework/qemu_kvm.py @@ -44,6 +44,35 @@ from .virt_base import ST_NOTSTART, ST_PAUSE, ST_RUNNING, ST_UNKNOWN, VirtBase QGA_DEV_NAME = 'org.qemu.guest_agent.0' +def handle_control_session(func): + """ + Wrapper function to handle serial port, must return serial to host session + """ + def _handle_control_session(self, command): + # just raise error if connect failed, for func can't all any more + try: + if self.control_type == 'socket': + assert (self.connect_serial_port(name=self.vm_name)), "Can't connect to serial socket" + elif self.control_type == 'telnet': + assert (self.connect_telnet_port(name=self.vm_name)), "Can't connect to serial port" + else: + assert (self.connect_qga_port(name=self.vm_name)), "Can't connect to qga port" + except: + return 'Failed' + + try: + out = func(self, command) + self.quit_control_session() + return out + except Exception as e: + print(RED("Exception happened on [%s] serial with cmd [%s]" % (self.vm_name, command))) + print(RED(e)) + self.close_control_session(dut_id=self.host_dut.dut_id) + return 'Failed' + + return _handle_control_session + + class QEMUKvm(VirtBase): DEFAULT_BRIDGE = 'br0' @@ -1495,7 +1524,7 @@ class QEMUKvm(VirtBase): if self.__is_vf_pci(pci): assigned_pcis_info[pci]['is_vf'] = True pf_pci = self.__map_vf_to_pf(pci) - assgined_pcis_info[pci]['pf_pci'] = pf_pci + assigned_pcis_info[pci]['pf_pci'] = pf_pci if self.virt_pool.alloc_vf_from_pf(vm=self.vm_name, pf_pci=pf_pci, *[pci]): @@ -1505,7 +1534,7 @@ class QEMUKvm(VirtBase): else: # check that if any VF of specified PF has been # used, raise exception - vf_pci = self.__vf_has_been_assinged(pci, **assinged_pcis_info) + vf_pci = self.__vf_has_been_assigned(pci, **assigned_pcis_info) if vf_pci: raise Exception( "Error: A VF [%s] generated by PF [%s] has " % @@ -1584,7 +1613,7 @@ class QEMUKvm(VirtBase): """ Get IP which VM is connected by bridge. """ - out = self.control_command('ping', '60') + out = self.control_command('ping') if not out: time.sleep(10) out = self.control_command('ifconfig') @@ -1730,33 +1759,6 @@ class QEMUKvm(VirtBase): return cores - def handle_control_session(func): - """ - Wrapper function to handle serial port, must return serial to host session - """ - def _handle_control_session(self, command): - # just raise error if connect failed, for func can't all any more - try: - if self.control_type == 'socket': - assert (self.connect_serial_port(name=self.vm_name)), "Can't connect to serial socket" - elif self.control_type == 'telnet': - assert (self.connect_telnet_port(name=self.vm_name)), "Can't connect to serial port" - else: - assert (self.connect_qga_port(name=self.vm_name)), "Can't connect to qga port" - except: - return 'Failed' - - try: - out = func(self, command) - self.quit_control_session() - return out - except Exception as e: - print(RED("Exception happened on [%s] serial with cmd [%s]" % (self.vm_name, command))) - print(RED(e)) - self.close_control_session(dut_id=self.host_dut.dut_id) - return 'Failed' - - return _handle_control_session def quit_control_session(self): """