From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 00099A055E; Wed, 26 Feb 2020 07:35:25 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AE4A41BF8D; Wed, 26 Feb 2020 07:35:25 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id C4327B62 for ; Wed, 26 Feb 2020 07:35:23 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Feb 2020 22:35:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,487,1574150400"; d="scan'208";a="226615336" Received: from dpdk-lihong-ub1604.sh.intel.com ([10.67.118.203]) by orsmga007.jf.intel.com with ESMTP; 25 Feb 2020 22:35:21 -0800 From: lihong To: dts@dpdk.org Cc: lihong Date: Wed, 26 Feb 2020 07:06:38 +0800 Message-Id: <1582671998-31664-1-git-send-email-lihongx.ma@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dts] [PATCH V1] framework/crb: fix the issue of kill trex 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: , Errors-To: dts-bounces@dpdk.org Sender: "dts" when tester and dut on same server, and the pktgen is trex, skip to kill trex when dut call the kill_all. Signed-off-by: lihong --- framework/crb.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/framework/crb.py b/framework/crb.py index 2d81550..2ac197e 100644 --- a/framework/crb.py +++ b/framework/crb.py @@ -35,7 +35,7 @@ import os from settings import TIMEOUT, IXIA from ssh_connection import SSHConnection from logger import getLogger -from config import PortConf, PORTCONF +from config import PortConf, PORTCONF, PktgenConf """ CRB (customer reference board) basic functions and handlers @@ -60,6 +60,7 @@ class Crb(object): self.sessions = [] self.stage = 'pre-init' self.name = name + self.trex_prefix = None self.logger = getLogger(name) self.session = SSHConnection(self.get_ip_address(), name, @@ -466,10 +467,34 @@ class Crb(object): f.write(contents) self.session.copy_file_to(fileName, password=self.get_password()) + def check_trex_process_existed(self): + """ + if the tester and dut on same server + and pktgen is trex, do not kill the process + """ + if self.crb['pktgen'].lower() == 'trex': + if self.crb['IP'] == self.crb['tester IP'] and self.trex_prefix is None: + conf_inst = PktgenConf('trex') + conf_info = conf_inst.load_pktgen_config() + if 'config_file' in conf_info: + config_file = conf_info['config_file'] + else: + config_file = '/etc/trex_cfg.yaml' + fd = open(config_file, 'r') + output = fd.read() + fd.close() + prefix = re.search("prefix\s*:\s*(\S*)", output) + if prefix is not None: + self.trex_prefix = prefix.group(1) + return self.trex_prefix + def get_dpdk_pids(self, prefix_list, alt_session): """ get all dpdk applications on CRB. """ + trex_prefix = self.check_trex_process_existed() + if trex_prefix is not None and trex_prefix in prefix_list: + prefix_list.remove(trex_prefix) file_directorys = ['/var/run/dpdk/%s/config' % file_prefix for file_prefix in prefix_list] pids = [] pid_reg = r'p(\d+)' -- 2.7.4