From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 539333250 for ; Thu, 11 Jan 2018 04:24:41 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jan 2018 19:24:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,343,1511856000"; d="scan'208";a="9842243" Received: from dpdk-test38.sh.intel.com ([10.67.119.87]) by orsmga008.jf.intel.com with ESMTP; 10 Jan 2018 19:24:38 -0800 From: Marvin Liu To: dts@dpdk.org Cc: Marvin Liu Date: Wed, 10 Jan 2018 15:17:47 -0500 Message-Id: <1515615467-56136-1-git-send-email-yong.liu@intel.com> X-Mailer: git-send-email 1.9.3 Subject: [dts] [PATCH v1] framework/qemu_kvm: check multiple times for network ready X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jan 2018 03:24:41 -0000 Control network start time will also be calculated into total startup time. Will check multiple times for network status in case network not ready in few sceonds. Signed-off-by: Marvin Liu diff --git a/framework/qemu_kvm.py b/framework/qemu_kvm.py index a75bf78..ec33669 100644 --- a/framework/qemu_kvm.py +++ b/framework/qemu_kvm.py @@ -1377,9 +1377,25 @@ class QEMUKvm(VirtBase): wait for 120 seconds for vm net ready 10.0.2.* is the default ip address allocated by qemu """ - ret = self.control_command("network") - # network has been ready, just return - if ret == "Success": + cur_time = time.time() + time_diff = cur_time - self.start_time + try_times = 0 + network_ready = False + while (time_diff < self.START_TIMEOUT): + if self.control_command("network") == "Success": + network_ready = True + break + + # update time consume + cur_time = time.time() + time_diff = cur_time - self.start_time + + self.host_logger.warning("[%s] on [%s] network not ready, retry %d times!!!" % (self.vm_name, self.host_dut.crb['My IP'], try_times + 1)) + time.sleep(self.OPERATION_TIMEOUT) + try_times += 1 + continue + + if network_ready: return True else: raise StartVMFailedException('Virtual machine control net not ready!!!') -- 1.9.3