From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7188033154287927296 X-Received: by 2002:a05:600c:825:b0:3db:23:37e9 with SMTP id k37-20020a05600c082500b003db002337e9mr1518472wmp.46.1674544496993; Mon, 23 Jan 2023 23:14:56 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a7b:c5c9:0:b0:3cd:d7d0:14b6 with SMTP id n9-20020a7bc5c9000000b003cdd7d014b6ls7733780wmk.1.-pod-control-gmail; Mon, 23 Jan 2023 23:14:56 -0800 (PST) X-Google-Smtp-Source: AMrXdXvIvCkuJRfds2ToP/O3kXHQWExVLTMxPf0mX+fO3ohipRr6QleIdrbOHdH/vtXgAhQbSU66 X-Received: by 2002:a05:600c:3d10:b0:3da:e4c:2a3c with SMTP id bh16-20020a05600c3d1000b003da0e4c2a3cmr26994409wmb.41.1674544495877; Mon, 23 Jan 2023 23:14:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1674544495; cv=pass; d=google.com; s=arc-20160816; b=Z2XVtxVI/ibnM/1JBLr5lKn6LnuKeB9XtN1W9jnBLCuWjAsNxTPwMaR4V0sxG06CUC aRGEZfyBRkF8pmMPiewjYYsGFWpAenQ7/+/PdX7Pevf3wPk71WSL+6ZgxslhwurFavR0 CZ5tEGmRdYXzUilpao0uEnXXt+jHAOK03qF9j6TmQm8dgQZSu+uaNJfAWTgwQFFmge5U O6j8Mr50SW2O/oiKXyls1tGeB/Qfm5Fm2HwArEu4GE3ajeiiT7X/ugO5+o3FfUS8BZEH 5jmdLrJ+eV5qGAKTeq5fmsACNHJDcEa1/pzfmYZz+ay3TJ8tpr/R7xuV3sLjaUKmMPVj +bDQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:subject:cc:to:from:date:dkim-signature; bh=c9GyOwiURy0a34vD4O3btGDohGPk6FgXP19rkx4JxQE=; b=wooQpb8ZsnMLRI+xhDl8H/5xy/LGlZD/NARi2a2zEzeF4QLQvOoj+w+xqkojOcLpCH fkDw500yAwjsVL3dD7kdi2LdAxTUWi3VA84FphEv+T4+JZIFLqgsJSPfavlLsFD8NUsR Bsd5cVWcBDd9wNKVDF1AvFZZeguGeYubQdr6rqdOc7iwWS7xc8mRnrztY3QrsTA9EyM4 ICzYWMEfcE7pVRsfeC+jUJHGuInWM4zIjKoyC4pt1ceStTVeCnXx4xv0VULkq5aaDpJc guRdy10VuWNKcVYCusS53RRqS1hhqszYP3aVtfiMGxy0mkft8oFNESW1By5BsJNRwFzO duyg== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=PnKpaw+P; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of henning.schild@siemens.com designates 40.107.13.48 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2048.outbound.protection.outlook.com. [40.107.13.48]) by gmr-mx.google.com with ESMTPS id bd24-20020a05600c1f1800b003d9c716fa3csi46643wmb.1.2023.01.23.23.14.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jan 2023 23:14:55 -0800 (PST) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 40.107.13.48 as permitted sender) client-ip=40.107.13.48; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=PnKpaw+P; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of henning.schild@siemens.com designates 40.107.13.48 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h2cLxQTUjQG9JwRwOMdl2QN07ImPU/U89Kf8XvSrRw0t5DEKiKewFTPiepwrkHHtc17a7gcC1t+3yLSPlk0E/b/ErdyZd0MCrT29EhcNzAyYoVZ7xsRWzVTZSs9S3cFkAqfmqtm5eRcbtpwqVt3vBrbcLNC0+6ZRPVtMsFRs+iydbov5p4LQutypxZjPASsLvFti0WNKnDsqBSj/Um1087/t+RIbc/54Q7vLUn2g4jkYNKBNcRkH07FqE8/qkZLQJjCisZUXbtmfAQmWLC8g5/Mty9YKmx4byAWmBKLGvEtFRx7kBu9PFZy2tLSlEXD6dQTaAncJpVDmaCptvbppzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=c9GyOwiURy0a34vD4O3btGDohGPk6FgXP19rkx4JxQE=; b=Y9zwcDGBwuae72kmRhqF9JdHHLfu5EXgZ2nKYD5Rye1ayD4j7vB/bhLEgwJr/vblrso9vINLUaNhhzXQRoKWPcVUgIu0FkiVC0C6QOXA3s5SuZvOLOQXVv/mmgdtoVKtCmQAL1uF5cLrT9PwpgYGHcll+r6+tKeYSRVzq2gier6pWZTamutmiidzx6rbJEBDuvstPrCLTRivR+w+mlLK55sPpgg5YXMho1FkfcNxWm9gDMVoMRDbqYve4ON1fIH1/BqTvpbvLQ/Veag+YA0ywxDCLyXubi4zJcVd0raWI64WPo7olAjClUDlBXAELHpTNe2WnmaOy9Nv5xvoI1NRRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c9GyOwiURy0a34vD4O3btGDohGPk6FgXP19rkx4JxQE=; b=PnKpaw+PE6q0DznA+0loyYLyY+q3BKAeoaOwfp27peQpuUVXA8B3YVcgXNJ2oIBEB+CHym5w7bncAc+VMeyw2PjhpMCinJUKZEabLLnDRpPctFNjyMdgFzkeJ0W3OLdIkG45GLTz7/kqxs25Zqc6y+5GG3GpTQZBOozcrmbGwPVfhxNmBJkVaS001463GywU9dUVMLj0qwVwCZQJPGnJ/ZFu7WohF7rcBKXkBl1pm7hG48llOOjRRumYnQAOfJxYU3+nbliEiOdJhXdgJ64NZ2Tl5LK9reVi4gsfFSpb9wzyfgsCPyGrgdaWL5kAiut/P/8kGTuAjYA5DKyo40Zqyw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siemens.com; Received: from PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:269::8) by DU0PR10MB6631.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:401::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.33; Tue, 24 Jan 2023 07:14:53 +0000 Received: from PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM ([fe80::bdf0:fdeb:f955:bc79]) by PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM ([fe80::bdf0:fdeb:f955:bc79%4]) with mapi id 15.20.6002.033; Tue, 24 Jan 2023 07:14:53 +0000 Date: Tue, 24 Jan 2023 08:14:44 +0100 From: Henning Schild To: Uladzimir Bely Cc: isar-users@googlegroups.com Subject: Re: [PATCH 08/11] testsuite: Support running custom commands in VM Message-ID: <20230124081444.717de76a@md1za8fc.ad001.siemens.net> In-Reply-To: <20230124081404.25aa167c@md1za8fc.ad001.siemens.net> References: <20230113071942.22506-1-ubely@ilbers.de> <20230113071942.22506-9-ubely@ilbers.de> <20230124081404.25aa167c@md1za8fc.ad001.siemens.net> X-Mailer: Claws Mail 4.1.0 (GTK 3.24.35; x86_64-pc-linux-gnu) Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-ClientProxiedBy: CH0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:610:11a::10) To PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:269::8) Return-Path: henning.schild@siemens.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR10MB5780:EE_|DU0PR10MB6631:EE_ X-MS-Office365-Filtering-Correlation-Id: 753568b7-d5d6-4b1d-e9d0-08dafddab072 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZOnAn7MbKGciuqvl5zD2SSSGuryrWiQl6f7+tXLhwgI+DbLkd63hOpmHeIkgJHtMkIRC92qFQ+HnEOQpKN4YC5i+IXkCg66MY3mvCwxKLjYTFBV68aow5OCn7rfh7V7LD80rg8qIkTdvZG999SCHUPlYINZlH0fFgQmOoxT/daeOxbLGqXcDri2G803VfNJ35zX3ra/XbYK4JyClp8wF+jnQbvAj/+EqBW+s6SEvW8hArsjCYjdo2s8F07OG2DarcNSkQkZ6VGKtBPZV2Wxyz/Fntrv+Q6bSdu1xBpgqMEvPFRt/JX/24CoQJ8Ic/YI+ZUuLYJziPdrSi8s6jBwh9cci3tlpfaN6Pd1mIYnp9r9y+kJMlZetJqrHWXTlufssryQ4BEeHyVBxKraAnGmDJHZkZZLkRTKvrDY8i6MQwI8Nw1f/i4udxsNPoWt21E+iIr8LgWCHbY6T4ANczjq6md1yarzz9HBJEnE/3h7gFCl8VvLJ9aONThRr8GHRukwjRo9Uy+KPeL/Ev0GvEZWOt8qCN/jpq7QbKdZidnm0UJw8PYJU62VKqquJg8aDdfWKYASrpD26UR+Gmy4SS26+/y/Q3deCqyHdJE4pdS3xJ5SecCkKr+G5uk/9JZYmGhDoHkwBhWYW83gUc8tKCOgRMw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(39860400002)(396003)(376002)(346002)(136003)(451199015)(2906002)(41300700001)(316002)(83380400001)(6916009)(66476007)(66946007)(66556008)(4326008)(8676002)(44832011)(5660300002)(1076003)(8936002)(9686003)(186003)(6512007)(6666004)(86362001)(38100700002)(6506007)(6486002)(478600001)(82960400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PGR9xNhefRTPSj/2rj1nqNC9xuCq+lluEVZ600C+F6UQeHWYkONkiHdoAtRX?= =?us-ascii?Q?2Ezv1lV4YvKicV0JPrc4dQwDkMPVCBs0iMW4P+0N6FOSYpmzQfTrCCHtAwdx?= =?us-ascii?Q?NALzI0IJ/ZgCEF0brLpHmPAKABI+qHanhfJQVv705XbbHF4kcWImLGGSqRSP?= =?us-ascii?Q?nEZJp3mYSZwy0AZBIw5i8RXvrlxEO1pzVp0sLTiiKzZqlYKqWIbCf/ibazwU?= =?us-ascii?Q?2HxS/+s8ocD2WFohmZM2J/bgRyYO0EUCVMmyg9YJHLDgge5Jfa5TocXW0E1V?= =?us-ascii?Q?hcwAV8g7XM78r7O7v4pRqBR/GTkSBpWwybDh4vPKTUuTFtDQRVXD/s9aZK+S?= =?us-ascii?Q?jAWetSMXH3hndZzBIs9ptKlYRVyLdpdRP1/NdpTt61eXkiD89+Oydweavh1h?= =?us-ascii?Q?f/R2+/tjKEviYR5NDsiSttrwPVRJCPYSZiToa6QuRPDtne8hg8XZU4woOlsG?= =?us-ascii?Q?GVvh6XGj/ZuoiXRX3l8hKyJn58uVJzFU/1SfHi8W1lpGMgq3u8NRiDds23V4?= =?us-ascii?Q?IHbfwTxbRrzVAZT7tXqsIWSL6cUrp0nCZA8YmRE4OLMqvJV03elheaVbwDSp?= =?us-ascii?Q?wXILzp4A4V3fV1/e0DmDwXDDrPeb5mMaa998tileFGOD961a8mxDBHREr2lF?= =?us-ascii?Q?l4g5qVFEC3YnpuP1NH12urohfdI0vtAZUKuHYjR+2W2KfQRpcVUJi/M056vy?= =?us-ascii?Q?rXF+f8hFjPOpKTAid+k/pss6vx0N1sxjJGfuT1ne8dqKuD1m17JDV48y0qMV?= =?us-ascii?Q?zxhiPN22YWjkrzGGPVByognJqbmWJZDdXrEVXwrdAkbzJXRLtiweum6FnxLu?= =?us-ascii?Q?ax+/E9hzWmQm0A7FMaI+5vq90j7g9dWjpushE/Sann704i53Npoxw6L9WXwK?= =?us-ascii?Q?71hGlV86Agxtg7XmMypJe/OdeAXUGFYqelPeTc7FTDKMYl2r50eCwf5oDwck?= =?us-ascii?Q?eDgp+30TMnFnj7//6VCyC4V/6XtSTxHmi61Bip2J/60WNr46obxUaiqoFvjh?= =?us-ascii?Q?td5EptF/fHtHe68ya1mKuMgq0Z2yBGN6IPh3cQQS1WFjDix7oNYR23RDhOjC?= =?us-ascii?Q?pA7ig6ZayBbOjmBiBizAG5PMqlfT+E6mTQ6odQf3eQwctOCPyNJtXVYXQHpl?= =?us-ascii?Q?YLH4JFzRSkJtDqJMIpt9B4z8XXCS9O37qAs3MkjWuiZIXbade1uzI6HWTU9L?= =?us-ascii?Q?z1mUgnOVnnE7lBRctjUMBxzqWcXlOh4+jFIGIExdfsU+amx7jclnaBT5nNWi?= =?us-ascii?Q?I2ucrBsFRFAYvycxDRLBKu6xEt3XkuY58/9GuHCb2CnFDGgZAngAjmQis781?= =?us-ascii?Q?hupTzOyj11qrlkPIG68aV8blRj9Cs3Xr59+wuREQa1dNzrdiPNvMmZqDUJTY?= =?us-ascii?Q?4w0nSJtwRStABtZSMlX6nxSCI1G9dWwr5Z0tie2ktICyc65ra9oKWJvTSDPu?= =?us-ascii?Q?XzbkH+b5hziUovoM3BwE9PU2xcSrGPumHWl/ZX698hknjglR8aUEUXRGZkpw?= =?us-ascii?Q?OerY2cq7QVvsqUiTiXdWHm4yPf+hlM6t9e1FzLA1ZcfK6KkNiSrd1ZiupuE6?= =?us-ascii?Q?EPNXM238y5vyj8yp/Qh/h5nt3Lw2sIsB2xFARoW2Sg/PpuKMEMmBAGgGDxap?= =?us-ascii?Q?MJhXLGxIEvlvAkGMpkSELGC1nFSfnDveGN9Uycr5d2Vk53pIZ34qriX2vvLU?= =?us-ascii?Q?b8aZ7Q=3D=3D?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 753568b7-d5d6-4b1d-e9d0-08dafddab072 X-MS-Exchange-CrossTenant-AuthSource: PA4PR10MB5780.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2023 07:14:53.4503 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iSXKTGTk7VVHj2SXA/g+HHu20vV3Ou/X0xFKKAzIcjGvPIUXR++9TRUFzhV/pF+eYfGk+eZRcgFNT5xKhQEwjVRBDY+iYp4JiR82HzyKHe4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB6631 X-TUID: jYjyn7U/1JEA Am Tue, 24 Jan 2023 08:14:04 +0100 schrieb Henning Schild : > Am Fri, 13 Jan 2023 08:19:39 +0100 > schrieb Uladzimir Bely : > > > By specifying `cmd=''` it's now possible to run VM and > > execute the command over SSH connection. > > > > If this is not specified, tests uses previous approach, with > > parsing output log and searching some specific fragments. > > > > Signed-off-by: Uladzimir Bely > > --- > > testsuite/cibuilder.py | 60 > > +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 > > insertions(+), 1 deletion(-) > > > > diff --git a/testsuite/cibuilder.py b/testsuite/cibuilder.py > > index 9e9cc8a3..4496b0dd 100755 > > --- a/testsuite/cibuilder.py > > +++ b/testsuite/cibuilder.py > > @@ -2,6 +2,7 @@ > > > > import logging > > import os > > +import re > > import select > > import shutil > > import subprocess > > @@ -201,11 +202,44 @@ class CIBuilder(Test): > > > > return env['LAYERDIR_' + layer].strip('"') > > > > - def vm_start(self, arch='amd64', distro='buster', > > image='isar-image-base', enforce_pcbios=False): > > + def vm_exec_cmd(self, cmd='/bin/true', timeout=10, port=None): > > + spk = os.path.dirname(__file__) + '/keys/ssh/id_rsa' > > + os.chmod(spk, 0o400) > > + > > + port_args = '' > > + if port: > > + port_args = ' -p ' + str(port) > > + > > + cmd_prefix = 'ssh' + port_args + \ > > + ' -o ConnectTimeout=5 -o IdentityFile=' + spk > > + \ > > + ' -o StrictHostKeyChecking=no ci@localhost ' > > What is the username? My guess would be root. Let us make that > explicit and see if we can at some point get away with running this > as non-root while we root into the VMs. Forget the comment ... the username is "ci" Henning > Henning > > > + self.log.debug('Waiting for SSH server ready...') > > + > > + rc = None > > + while time.time() < timeout and rc != 0: > > + rc = subprocess.call('exec ' + cmd_prefix + > > '/bin/true', > > + shell=True, > > + stdin=subprocess.PIPE, > > stdout=subprocess.PIPE, > > + stderr=subprocess.PIPE) > > + time.sleep(1) > > + if rc != 0: > > + self.log.error('SSH server is not ready') > > + return -1 > > + > > + rc = subprocess.call('exec ' + cmd_prefix + cmd, > > shell=True, > > + stdin=subprocess.PIPE, > > stdout=subprocess.PIPE, > > + stderr=subprocess.PIPE) > > + time.sleep(1) > > + > > + return rc > > + > > + def vm_start(self, arch='amd64', distro='buster', > > image='isar-image-base', > > + enforce_pcbios=False, cmd=None): > > time_to_wait = self.params.get('time_to_wait', default=60) > > > > self.log.info('===================================================') > > self.log.info('Running Isar VM boot test for (' + distro + > > '-' + arch + ')') > > + self.log.info('Remote command is ' + str(cmd)) > > self.log.info('Isar build folder is: ' + self.build_dir) > > self.log.info('===================================================') > > > > @@ -256,6 +290,30 @@ class CIBuilder(Test): > > p1 = subprocess.Popen('exec ' + ' '.join(cmdline), > > shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, > > stderr=subprocess.PIPE, universal_newlines=True) > > + > > + if cmd is not None: > > + rc = None > > + try: > > + port = None > > + for arg in cmdline: > > + match = re.match(r".*hostfwd=tcp::(\d*).*", > > arg) > > + if match: > > + port = match.group(1) > > + break > > + > > + rc = self.vm_exec_cmd(cmd, timeout, port) > > + self.log.debug('`' + cmd + '` returned ' + str(rc)) > > + finally: > > + if p1.poll() is None: > > + self.log.debug('Killing qemu...') > > + p1.kill() > > + p1.wait() > > + > > + if rc != 0: > > + self.fail('Log ' + output_file) > > + > > + return > > + > > try: > > poller = select.poll() > > poller.register(p1.stdout, select.POLLIN) >