From patchwork Mon Sep 21 15:06:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 5476 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 21 Sep 2026 17:06:55 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-oo1-f59.google.com (mail-oo1-f59.google.com [209.85.161.59]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 68LF6rV4002064 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 21 Sep 2026 17:06:54 +0200 Received: by mail-oo1-f59.google.com with SMTP id 006d021491bc7-6b1c1538784sf3782672eaf.3 for ; Mon, 21 Sep 2026 08:06:54 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1790003208; cv=pass; d=google.com; s=arc-20260327; b=bCuMtBBksi26NNd0KAv11dZekYc1Jbqvmd2cMkd+AVtjtqK+OjxXSyWZQYcCIwge9Y Axrw3QLaM0mtIZpI6+AI6C3RxWxiRN7VpIGnnGFbaeO6NxPMya2KaoGuTGr2OACtmpf/ 72mZndfosjP8Yv2WPh//xnd7v1wbFTEKlO2BVey0sczZBkV5/124w6+mbF4Jb7toDvgk TP/V6AF6IE1wJLMiS1DFgVM/tORYMLkZztajhYQoVMOMoOm8Bfwh+22afZMFbV7KmhOw WHpvezyAfktcJr5FvS4eqocWQ1/I1dKzqrktkrrlJExZUkTuHvV/bjF7KxHotjtJBUc/ b/ZQ== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=x4eYsCOIg7scwY3l+/92+BunjtSA0kK1I1ADNYKSwMw=; fh=LR/7zhU5+lKdDbt8wgLlCylOj7NvYaG7COJAvau9jMw=; b=VPieFSRnQK48j0n6kiemaMfwmgVYJxr09usjaakd6vNWw/uIlM0tl29S4Hb2gHi0G6 TYuaDarY7v2g/XuRVzKFYK8GHYrRl1pXCeQ7WNgKuL84OxuH1hdWSP+zo5R4dfpr4epN 4UnZ1uY79p1pgNt8Jr8zRY8DOFjCjvlqadtoeTq9xl1ZReRQ8dw+moL6xjTXWYenrjj/ NFJJq7NLDRsVc351LLSdwoueADXEgNVgju/Pml5bIlyLrxrEswTPLH+aEXxn4F5Eiv8z gUiuMaQIB1OTm8xV5QDZi828o0d8Rv5Ln5trdjLuPwRQTd4ahG6Sg6I6zOsqpRakWBfj bTSg==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b="hJF1/YSK"; 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 felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1790003208; x=1790608008; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=x4eYsCOIg7scwY3l+/92+BunjtSA0kK1I1ADNYKSwMw=; b=UETkd18pjuSbqrC8A8WQYI/UdWNDGql/G6hBuSdyw38n4L6Dtbjh3C7ga2Hd6NM/ZS d4PVZsnokBBHTSBYFMwfGJib4pyuxCY071n5n4y4JLENloDJubZc2Ms5m4nv22ixeFjG GIcPm8wCJEK/wxMCAZQGMK5V+Ik+SCPOQjX77RPWTcrhia6bUac+mYSTZmumgLV6gh04 z2CokWUzPq2o2Qyic0LKj0vl+WjbypEroHggbgoT9OlxAxYBaCvhS5VvS3wM5QPbZwS5 7iTw1D0TQv/FPqrk2R3UJg/FEq2zOaNV+0QkpiHGg60LsXo6CIsnlUj7AxA0gTos67l8 +dgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790003208; x=1790608008; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-type:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=x4eYsCOIg7scwY3l+/92+BunjtSA0kK1I1ADNYKSwMw=; b=Dc4bl1P8Y5vgOTugNkNPCTl/jbfEkj4Lat6NCkB3BOSc6eqSrRPdD6cwKGn0Zfx8Ns okI79DJk9IEqs+JmyHXDXbG4+kJQvDU1XOcMvDYDjEKgs2T2gBriTR3K9X1CFgpvHV88 1Af//PV7XwXw7x9TRSPZOpx/WxYgvWKffUvHWKK7ywea5+wFw6rdFeSS5L10eMkfC+1J sCCc1b8m7d+PyPypk6wrC39bu1HXd7UsgJJJB3oQA0AMrinNcti0He/tzQpJgaLSl02h job5R0ddTGb+Ed2p4Ys901iJohk992F/OEwB3kxkcykUNx7bx1Y24+OJv/6S7fJ5g6eJ IdRg== X-Forwarded-Encrypted: i=3; AKwUvByu111P2HpD6BTGHgJlles55JyBRMGcopoI9o6Saj2v98sE8DO+FUTKEzU1BedPNKbHnTaIzvI=@isar-build.org X-Gm-Message-State: AFuF++l7Tk0W/rmJCOC3gJqlTv2i9gS8OGXhoAh7DMbY3TMtXE3CVVjd bZ+96/SdEpEPiJ6XtVEzaluabGVSTmh0a3dyQHxpZY5GD2AI1v2/l/GW X-Received: by 2002:a05:6820:4c15:b0:6c3:68bb:ec42 with SMTP id 006d021491bc7-6ca9be4ff88mr9941826eaf.35.1790003208380; Mon, 21 Sep 2026 08:06:48 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdchuQH3kBd4+3LMVsm2w3wAN2K6/hoUk6TyOeg8Oks0mg==" Received: by 2002:a05:6820:4d4d:20b0:6ae:a08c:c8eb with SMTP id 006d021491bc7-6c8f58f5c57ls5376556eaf.2.-pod-prod-03-us; Mon, 21 Sep 2026 08:06:47 -0700 (PDT) X-Received: by 2002:a05:6820:160f:b0:6cd:3fcc:96ca with SMTP id 006d021491bc7-6cd3fdbdda7mr7527400eaf.72.1790003207577; Mon, 21 Sep 2026 08:06:47 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1790003207; cv=pass; d=google.com; s=arc-20260327; b=Oc4wGBTuljFiJ9R1kNyDoPv+xH7wLZ4hRAQKNv0ijAbC5yvjKyIiRzHtyII8qz0yL5 cEk9QBvj/gy7DGgPS90if2O+9o1b7ApNyv8vzvZzvxEecui7DAJoNGXIS/qlJGvulxWV m15z2uMYvRFDBZdp8MCGgicLHc7wCzb8VHm2Jcr8i4wH3vCaEW8JN0YmOJYNOJZcjt1p 8Fot/07GWtPndKAgLgL23xFnBjd3x3AQDuNqsicQQh3tJ3a4XXiKpfQcAIx5v3FTVCh5 6qoGHiaICXnmSDE30QJ204xvF6BJEVnxHW0n4R9McNe4ESZFkefFGVS1aTriog7jMj+j 0/MA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=QCKub7UTN8sGxrFJHwDBz+aXsoZCKVax1jOs0KtSqUM=; fh=Xwx5KAQd7M5XPJvQVz6xz/z//08kOEttrlFeLBySLJ8=; b=XlAdV97hbeweX/FNVhcgeLt9qllXJNfVxHI+O7w3FsgapSw7LaK2jIb7L9eLK1bUzp DnamsfKQBk5EzPhdrf2MhwQ4rOkHkUPoWkixnvJZwkhACWbUGzwhmn4TzD1KmouBuWIz TB1iOP9Wm0i469j22L5v50dTjvlO5lS4VoA4qbcLarOPvainWDfFY213eNc97xX6VVmA OOGAM6wcaVIWk9phUJsBBQbVAMjh1EHsf+WNnkBcAG9cOBcDhmGt0LRMaiQFyeAKn7N4 SYQhBtBMUIW/DXnRZcREuhBRHlZpoor4bXuO2T6ENx6LsgBgLwh9iXQhGobK44wUTk+9 1+aQ==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b="hJF1/YSK"; 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 felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20a::7]) by gmr-mx.google.com with ESMTPS id 006d021491bc7-6d140d39e25si6248eaf.0.2026.09.21.08.06.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Sep 2026 08:06:47 -0700 (PDT) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) client-ip=2a01:111:f403:c20a::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RX8BgLXqLYafxdFQvInV64ov0834+fcK9phUg15OwHQ5SMgx6wnmJzpaJGFbbQjUlx6dorFHnsuZn5BDAQfk0OKqhFworOcap79a4QpG9oOBrfA2LrHw4yRo7mGfx7J+5UgWWW6bIGpwTrJhLiBS5mj/fENTeFGYCLujm/1p05CwjdIy2FmHiX3muRo3pH+0jh0O6oteJRN95bgYYQZTo9YBSF7EjevyyDH72M2mTHRNoLzE7l0aTMb5tZmoTaxCf2yWqV1QFxjtbn753q75ZSxUZjI9gVmwZG1GE9mcVVEMtl0tOIMk8/JA5rHDvsJJnTQDxIgqNywXGWxUQt/Eqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=QCKub7UTN8sGxrFJHwDBz+aXsoZCKVax1jOs0KtSqUM=; b=HTxno+TYudwSmaKEbuM4oTyN9NuW8LnS7AJEJ1e5mwWtXp8UmbFBRWitawVzCdS0s5HAXhaaoaz4piZqZt6QAfWJejr6bpoRbvR2wvtbeyXWUKRhqEIgQ4+SUSomDqFboymphIMqXfAbh3kvkuCJ1urWgoGfTQ5rofKHXRgVuav/vczB5O5OwYYS7MnjzGb8S2CMaMYpmVU0wzuSdWCbAiN3xvgbRzlXRQWGBxdZ20WshWKAk+BNBH7aCFPJOiI1d1TNlMunuwtSWSMf+T5lIvmPpfVdrTv13VbJ/+XwohU3dmB8BpxBb+GmJirIQN8GKCBqP7FOk9o/xBjjSxH4NQ== 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 Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) by PAXPR10MB5383.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:284::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 15:06:43 +0000 Received: from AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c]) by AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM ([fe80::c54c:ccd8:ebbf:477c%3]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 15:06:43 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: adriaan.schmidt@siemens.com, Felix Moessbauer Subject: [PATCH 2/3] isar-sstate: add show command to list all artifacts of a PN Date: Mon, 21 Sep 2026 17:06:33 +0200 Message-ID: <20260921150634.972641-3-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260921150634.972641-1-felix.moessbauer@siemens.com> References: <20260921150634.972641-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR3P281CA0037.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::21) To AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:17e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM7PR10MB3956:EE_|PAXPR10MB5383:EE_ X-MS-Office365-Filtering-Correlation-Id: d28fa929-ee4c-43f2-3357-08df17f1f2a0 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|366016|10070799003|1800799024|6133799003|22082099003|18002099003|55112099003|21046099003|11063799006|5023799004|56012099006|10067099003|3023799007; X-Microsoft-Antispam-Message-Info: +EnDpBPbGF1JiswGhju5BM54sS1ILb6zF/4ZUZ8CypEJ5HzzmO1TeYlnePjQFD0VOJQzqo6GRTmEx5Tk5fvCttiT6BZpiHrtp8F+xAIhahXgaSpji2JP1tTspzw1hmhpoYDlHKEgzyVDYdFhohjFwJsA8BLrLl0G2eCdxrs+AnjVltZbDJzLOqHbROT2MH9OhqXqF8R9gNx8NrtX9+8OYllCQA0ZpHGWpJVZIb737rSfdSjes64O5ASoEwgO8Mt9RhlRBh61akV7FtAF1nYn4FmplqF0lzkwBX3VRp4hDsTVn0F/SMo2GrDhUgjDCwSRrw7KQpCBqmCcshPfMcOVK7SBMCtB2YHkqjdsVeL6tocCaPM+ZQTpSYrYbSiJuBm5WzU/ZTVgs4Xp24q9Yq/S4ygzN7tgetjsvxhOuuKHkO4BHxuJrMtrgBitBrBcczzHTwCe1PtWhNefQLZASXsFPaunq7JOm2O4vF+Z5HMGQe7D+mxD18+vaEJ2V/loBZB+ybddIYeHPY3MVF+d97AAtmVBqmIuvsxdtPbtXbi4EHsM0DfrQh6FLrORia23KAMA39zwDQFKLDYJYtPWpY61EEAYTVJAzEAjg4Ay/3wlPib/bJ8+uqTZzIPmnpuAOAuDRXmCvBWpjVFBikQfkg5nIYp3FEkcoZI1a6bnpcSLRSI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(366016)(10070799003)(1800799024)(6133799003)(22082099003)(18002099003)(55112099003)(21046099003)(11063799006)(5023799004)(56012099006)(10067099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: HAa72Tky6wBbYugjZUhovboOTtQHzrNAARDsL5hNnXkU4rpTxA+83tmjcHz3vRW/ZPW+/PdzcJtZNMcycW0KKNlr8/Fo74HuE4nV59NGP/ZKzv6+GziJaTJ7YqhskCARau3GAi5FdfzpQPHbHtcCu10LNj3yqZrZuyU33wobp0/SelncsyGM/L2EuSOYlVNnS4UpmD/H0R6EQ+zbugRZObe2DJ5xoAb6JZrrY6mJDEgFSmaBiZ27p722VI2dLPQzWSa1PU1cVfQufllSqIXSCBWvsxPKIMUyj0zGyfh0UScwCVqSPgsaYm9iD2sfJDPNkOXqpIxMw3D6ZPI96HE4B5ow28uspfAbPb72klC+1mAfzA4eotZ91dES+n0KFQGl49c5N/4FnyJ9/qrRmjhY/HjLcM4z1W/xXeQD61zYGM4uoaguIj3NuOm2dFVgbVbe7aebUCrz1E1Nyx29ThqDMx2QxxclUxpX9KyQ5BgaYjbdA2qINZ4/HaQhtGvSbuKI/5CK2jD0bIKQL4Cps2Y1sega1PY2BoTdNZyxHKuetFYqVnuSocx0+QMgXchfwHxHR4WVNbKNuPPwlvLZsOFeRQp389q6Lpr8+F0Z7WZ4LHTW3iyDMoq2uxBIhLnp9WySt99aJaDL1iZ/s/0Heuz5T3FQ+0rrVCsdhzsfVYYTSAALy+8JHPtHD1yDiLg3sHg/t+uVCZaPDw5kG4M/xxA0/JHJC/CbZpoji9L+IRMJFcmPR9hnzJ8ozhrYv4T84qnaGLgeZhXLjNYACeMeDaMYVtTUODM/SEXlrdzUKSDb4f6Z+0aoPAnmRwvXsf+musqzjnqga06reKrObFJZx3f4AK+RTcbqXY6wr4VEz6zoyMc85nvaOYU2mpOhBq+gADtWF/hzsspcek7vbHYc/ke4lPmr/rqitVUT2LsGnvZNpfz90a5PifQlLZBrAXScJD1xcMzTHGLDPxtzf8Z1NH0hjmCv3U1mCLmb0g7Z4P02LZ7s9eA+SxfDEkOBTIq0H3adXCldoKQlutoyWd6qiygX6S3myi9svP/Lajb0u/e//leJt0WM5ScJcs0rrFxJWsJEzx/ZXdDdpcy2cHJeyVrG5ScNT7bl1o7zoW8Js+Cv1F7P3x9hl7SajwYdNFLXOP6Vf/jAEI7V/Xx0PxgDUHjw7QZlntIHyV+a2kBkS7eThsXzJmVDDiI/bgvPsgLmyB4Ay+wXd4QSHL0L2v1+iBrFrgE8NhtRy6ES5THxQOk/0PSEimVGX87ZTvlZyVhLhN7N8hrhwCLNaTzEZLJoRLvBRjF4JFZSMYKuaddhz0l89wxUPPDPWnLA4LaqK8k2/ZQ03nnGJd5Hhyqg054kv1z2fm7/ohOlLdg58zxIABb+4qyek8XDiYT3aazyUxkoeoFI7hKfLMxrDWbU6031aGA7oHfD+UdyjKloMfa7MAjXWLsvgIyBjzdSluH+SFBMMhHWvZiukzVOrEA7OsVq1JXu7LjWMM61qe7/e/Jl4WPg1xKIwmoO96phK3Y8pMBSUUQVYP6QYZ5IBe92tgdAnSjoVCmDwcxocV+a/HPnnEAo2EABNAtkVUhV+ST99dUWhyhxmfEjtjVpAJ/o226qmOS4NJS1ILfYugm8MLDLCHPwR3a5VgVS6I9nomUl2p0huofoicBng8A8KiHhoVp9oU2j2r1bGpD2SvlAbmLjm3n/WDv1LBOEFVCP5w8tNxfuG7B/g+q0iGURuepzpi7q6WwbyKWfBtiQjMbyVB9MDkIRF2lepdVP9HPi7vuElqKiveB3PFAdKE1T X-MS-Exchange-AntiSpam-MessageData-1: X2wFQeL1rk/T1P6hj03pb/BxUIuMuvnClmI= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: d28fa929-ee4c-43f2-3357-08df17f1f2a0 X-MS-Exchange-CrossTenant-AuthSource: AM7PR10MB3956.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 15:06:43.6064 (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: OLeHxmfzZ3y5HiyISy1YuiOrEEww4ztiJYB0gn5hO4WY5f3DX1QXXp+2gwSbrPTeTVkD/qI+p/zpE0x23M1/+V/uhjuz4ivHxVhTVl7mkPM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR10MB5383 X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b="hJF1/YSK"; 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 felix.moessbauer@siemens.com designates 2a01:111:f403:c20a::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= For analyzing why some tasks are not cached efficiently (i.e. we get an excessive amount of cache artifacts) it helps to just list all artifacts of that PN. This is implemented in the isar-sstate show command, which takes a PN and lists all cache artifacts (along with age and size), grouped by architecture, task name and DISTRO. As the distro is not encoded in the artifact name, it is read from the signature data. Tasks that do not depend on DISTRO are reported as 'unknown'. Signed-off-by: Felix Moessbauer --- scripts/isar-sstate | 71 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 4 deletions(-) diff --git a/scripts/isar-sstate b/scripts/isar-sstate index b5eaabaa..b0d4033f 100755 --- a/scripts/isar-sstate +++ b/scripts/isar-sstate @@ -22,7 +22,7 @@ sstate cache: `SSTATE_DIR`. To share them, you need to explicitly upload them to the shared location, which is what isar-sstate is for. -isar-sstate implements five commands (upload, clean, info, analyze, lint), +isar-sstate implements six commands (upload, clean, info, show, analyze, lint), and supports three remote backends (filesystem, http/webdav, AWS S3). ## Commands @@ -54,6 +54,11 @@ than `max_age`. The `info` command scans the remote cache and displays some basic statistics. The argument `--verbose` increases the amount of information displayed. +### show + +The `show` command lists all individual artifacts for a recipe (`PN`) +in the remote cache, grouped by architecture, task name, `DISTRO`, and hash. + ### analyze The `analyze` command iterates over all artifacts in the local sstate cache, @@ -592,6 +597,15 @@ def apply_filters(items, pn_filter=None, arch=None): return items +def format_size(size_bytes): + size = float(size_bytes) + for unit in ['B', 'KB', 'MB', 'GB']: + if size < 1024.0: + return f"{size:.0f} {unit}" if unit == 'B' else f"{size:.2f} {unit}" + size /= 1024.0 + return f"{size:.2f} TB" + + def load_sigdata(target, path): sig_file = target.download(path) try: @@ -616,11 +630,11 @@ def arguments(): parser = argparse.ArgumentParser() parser.add_argument( 'command', type=str, metavar='command', - choices='info upload clean analyze lint'.split(), - help="command to execute (info, upload, clean, analyze, lint)") + choices='info upload clean show analyze lint'.split(), + help="command to execute (info, upload, clean, show, analyze, lint)") parser.add_argument( 'source', type=str, nargs='?', - help="local sstate dir (for uploads or analysis)") + help="local sstate dir (for uploads or analysis), or PN (for show)") parser.add_argument( 'target', type=str, help="remote sstate location (a file://, http://, or s3:// URI)") @@ -661,6 +675,9 @@ def arguments(): if args.command in 'upload analyze'.split() and args.source is None: print(f"ERROR: '{args.command}' needs a source and target") sys.exit(1) + elif args.command == 'show' and args.source is None: + print(f"ERROR: '{args.command}' needs a PN and target") + sys.exit(1) elif args.command in 'info clean'.split() and args.source is not None: print(f"ERROR: '{args.command}' must not have a source (only a target)") sys.exit(1) @@ -801,6 +818,52 @@ def sstate_info(target, verbose, filter, arch, **kwargs): return 0 +def sstate_show(source, target, verbose, filter, arch, **kwargs): + pn = source + if not target.exists(): + print(f"WARNING: cannot access target {target}. No info to show.") + return 0 + + print(f"INFO: scanning {target}") + all_files = target.list_all() + suffixes = ['tgz', 'tar.zst'] + if verbose: + suffixes += ['tgz.siginfo', 'tar.zst.siginfo'] + artifacts = [f for f in all_files if f.pn == pn and f.suffix in suffixes] + artifacts = apply_filters(artifacts, filter, arch) + + # DISTRO is not part of the artifact name, it has to come from the siginfo + distro = {f.hash: get_distro(target, f.path) or 'unknown' for f in all_files + if f.pn == pn and f.suffix.endswith('.siginfo')} + + archs = sorted(set([f.arch for f in artifacts])) + for a in archs: + print(f"{a}:") + arch_entries = [f for f in artifacts if f.arch == a] + tasks = sorted(set([f.task for f in arch_entries])) + for t in tasks: + print(f" {t}:") + task_entries = [f for f in arch_entries if f.task == t] + distros = sorted(set(distro.get(f.hash, 'unknown') for f in task_entries)) + for d in distros: + print(f" {d}:") + distro_entries = [f for f in task_entries if distro.get(f.hash, 'unknown') == d] + # a hash covers both the archive and its siginfo, use the newest of them + hash_age = {} + for f in distro_entries: + hash_age[f.hash] = min(hash_age.get(f.hash, f.age), f.age) + for h in sorted(hash_age, key=lambda x: (hash_age[x], x)): + print(f" - {h}") + hash_entries = [f for f in distro_entries if f.hash == h] + for f in sorted(hash_entries, key=lambda x: x.suffix): + age_str = str(datetime.timedelta(seconds=f.age)) + size_str = format_size(f.size) + if verbose: + print(f" {f.path}") + print(f" {age_str:>20}\t{size_str:>10}\t{f.suffix}") + return 0 + + def sstate_analyze(source, target, filter, arch, **kwargs): if not os.path.isdir(source): print(f"WARNING: source {source} does not exist. Nothing to analyze.")