From patchwork Mon Jan 19 05:53:34 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kasturi Shekar X-Patchwork-Id: 4803 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Mon, 19 Jan 2026 06:54:10 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-ed1-f56.google.com (mail-ed1-f56.google.com [209.85.208.56]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 60J5s9L4023881 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 19 Jan 2026 06:54:09 +0100 Received: by mail-ed1-f56.google.com with SMTP id 4fb4d7f45d1cf-64b7907dd42sf6557242a12.3 for ; Sun, 18 Jan 2026 21:54:09 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1768802044; cv=pass; d=google.com; s=arc-20240605; b=SdNPRb85MzPoViBEgZyl3zpneElXeRzptmqUtMKgACHeSk5jpjqn+jwXkIyRG05Ru+ WGh3CPOvZLK58w8zy5Q+xDadMvy4r/RkFyL1zBrgq4A91otmkDzFGYUHvP7UFH2HZgu+ jlaM+FHhefNrBqB/6oIsnIwqFatoK5936yOIUOaFLYRTcKm0+h+DRfrWbspHFzKr6Miz FA37uyLh3gkVN4XVDBBiR64ifSs1ynm/j46ff1gtsZjVadWtX1VWlY2oiRh5mGLFkvH4 hY8Q80tWV/PqxlYm1K1m5itrCcPcgKV+xZITNMouzYGnHCFRVRff+/Q7nk1vJmDBamXO YWnA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=nOj4V6gAdwlSZi/3lhyjFkaZ2gZ0or+df6fAS5/6qhM=; fh=x9NlrvF5mHqOjaDdWwFu1OBISeNU5/PdcdiBPFLo/FA=; b=VInRq+GS+B0sKzsSSuUu/9n51qsZni3r2POanRk0t3shAWOhJ1bIak27iMLWtnYYMX bZiZBtNkacknd3oujz6QAIZA9K2BGd87GDHc3hCptehFEqHkkzrUOZdW6wpU0ufq39gD NdLXz2P3+AkBIrA0LrOilFpkCK1S2WslEuPeGW49ZFBye8csNMvPEeVgq77BZ7v6JQbD SEQ69RdpHONTsPFUn+x+4vY5gmmM3Qit/AE4+Mi0WWlzl+eFgJn9N2WbbZDqpO7Xn3x8 sXqvnzg8TGFjGNMyMFD5E0gV45zk7gBvpIKjOxvXOt2t0Om8Wc/tw9XmbJyFDXX99hyG hS6Q==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=U8xN9iEQ; spf=pass (google.com: domain of fm-1328757-2026011905535909527de199000207f7-67esls@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328757-2026011905535909527de199000207f7-67ESLs@rts-flowmailer.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=20230601; t=1768802043; x=1769406843; 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:feedback-id :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nOj4V6gAdwlSZi/3lhyjFkaZ2gZ0or+df6fAS5/6qhM=; b=Qt/M+/iHtDL2h2U2Pb+XZXneAkcghD6zJ6SS4TiCsfL1zK0aPzdF38wDQOyeXq2VFU KinV4mHclgrT/sfs5XCbxWJoYpd5E6ul/ztVu3OE9q6jRENtSWHKzthqU3/ultUKtFae z1OoDYKpQQo6to9WdnWxRSJL2no92hHUWTfit/5NUaabBSc21hxFqCThYSODfZPPFucs M/cg4Fv5qaGXqFEnb9DxFwz3AOwQ4JaeBmFdbuwzQdO/CiQHPYWccvAqWGLj2o8DmOkZ +/i8heOderDw2o3pYLnzKzpBe/QdDCkgy+0NmnFZezoXBnNNLqBWFg1hRB9vKPeLoS0r wGbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768802043; x=1769406843; 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:feedback-id :content-transfer-encoding:mime-version: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; bh=nOj4V6gAdwlSZi/3lhyjFkaZ2gZ0or+df6fAS5/6qhM=; b=r4Ymkv4F2UmeD41ik/pn0Yddh/15tAvB/8hhlpzNGdFN/O+141bNLxLb5/ADipZiBu 3n8ZOKEXewy2pg2nCDLH770W+6wJLfks0nN25Q/uQgQStTi37IuXIH0kV2TZ3QbHgraD CI5JgK6YcqYoXt95FCEKEdldoElSCCf4H1cG7tENY0AJQZyX3CxgDT6GR+RE7NS2W9Ew qF31xxRGwglFRGn3nKr+rsfpLtgOpXNpPqc9HwKHoVUg6vDWyp0mXpUpbug8hxlGH8aF fz3yNb7D77iBFjWNG2z5Avu8nZVXzu+QehQOB1lFygBujG6pLlj2mTvt+hMXmfUAgEEZ Axcg== X-Forwarded-Encrypted: i=2; AJvYcCWAqWBPBA34jFmU4kRNge7IrM2z0LUM1yosB8fmueu42mMh/LqILn0Z/6WOxq497VRyVz7q/BE=@isar-build.org X-Gm-Message-State: AOJu0Yx3K4+rhinvHlwuXm9d7FN0B9OwJ0o7JBwNbR2fOO6hjpX6w06+ T+tWvTR55rdmN5B9ryT++wQ+rXajq7QMuKaW7Spg4xbSMfGhMk6RGfcQ X-Received: by 2002:a05:6402:2116:b0:640:c460:8a90 with SMTP id 4fb4d7f45d1cf-654b955cfcfmr7946925a12.12.1768802043311; Sun, 18 Jan 2026 21:54:03 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+HfYZj9icUwNjIzgG3GA3+ljQzpXGcK/tU8OB7VFPfcYA==" Received: by 2002:a05:6402:797:b0:644:fc0e:254 with SMTP id 4fb4d7f45d1cf-6541be8db8fls4092131a12.0.-pod-prod-04-eu; Sun, 18 Jan 2026 21:54:00 -0800 (PST) X-Received: by 2002:a05:6402:348e:b0:649:230e:ec52 with SMTP id 4fb4d7f45d1cf-654b9365311mr6915464a12.1.1768802040388; Sun, 18 Jan 2026 21:54:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768802040; cv=none; d=google.com; s=arc-20240605; b=h/EQzLZeoe33Zes1CRl9Qk1Kf9t2G1oddTnoVnV+hEv8ctCR2w2ICefxQ0z36hyjPP VWIsLCriwXmV4uDUCLKELwVtVbUcUBa14tJHk4oeVgmBt8G/xavmV8L1lfjVED6Z/+Pu hzDaTlYgdR4i7zVzMdDPG5PG1ZUHdh4D6NNw1M0L+lTFZHa/1uPIUWZ6cuGzsnxencbk wQoD9bWs7ZLxtWpMBi4BzO4liN5gSKGOIhA9v8Jr4XFxHHg0izywWa+M5Hj4LC9IKwaQ 1/gQDQJvHk9x9PKzCzXFADOI07MWN1OnNcf3o/bGja0Xb5IijF6lxHqB3Uci3z+c1lcN JYwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=a+whoyU5K/G/1vkq9K6QZSOfmj2PrcNHJYCTn4TvBFk=; fh=pR4tJPO4NbHlIB/rP4bIo54Z1zh5hd/ksAGQ0tcKkYM=; b=Ja88NxYL4X3VDJcq1gMV3DDDoxqIb0Pfq+wDjo/4GO3C6U14hEZl+vKT98J1pCMOEA +yRJsgj4TmvufFNWKpyULjQZBg1SKwbCx0KSuCS2aPCvgImqbU/h2nZSec23w4NdiR6p /ucn/7SCfP868ZOEDMJf1mAi3kGsovk18DhHej9MYAhIB1v7V/VhPpXJPi0J2aRezinM rgs9VYWMGASRiYF5l5u35stAkiutswrwSyLXh7YFGf8AJfglTkXPreYVl+P/DMyrOXnt JIH9BHV9ju1DlQAc0XS1J+x35M+eBu7jJbV70Td6zpUjZFiZfLEFEwf+GjUWwWMwnPU3 u1bw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=U8xN9iEQ; spf=pass (google.com: domain of fm-1328757-2026011905535909527de199000207f7-67esls@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328757-2026011905535909527de199000207f7-67ESLs@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-65-225.siemens.flowmailer.net (mta-65-225.siemens.flowmailer.net. [185.136.65.225]) by gmr-mx.google.com with ESMTPS id 4fb4d7f45d1cf-655aef44c8fsi114912a12.1.2026.01.18.21.54.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Jan 2026 21:54:00 -0800 (PST) Received-SPF: pass (google.com: domain of fm-1328757-2026011905535909527de199000207f7-67esls@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) client-ip=185.136.65.225; Received: by mta-65-225.siemens.flowmailer.net with ESMTPSA id 2026011905535909527de199000207f7 for ; Mon, 19 Jan 2026 06:54:00 +0100 X-Patchwork-Original-From: "'Kasturi Shekar' via isar-users" From: Kasturi Shekar To: isar-users@googlegroups.com Cc: Kasturi Shekar Subject: [PATCH v1 1/2] installer: introduce sys_api.sh backend interface Date: Mon, 19 Jan 2026 11:23:34 +0530 Message-Id: <20260119055335.1006446-2-kasturi.shekar@siemens.com> In-Reply-To: <20260119055335.1006446-1-kasturi.shekar@siemens.com> References: <20260119055335.1006446-1-kasturi.shekar@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1328757:519-21489:flowmailer X-Original-Sender: kasturi.shekar@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=U8xN9iEQ; spf=pass (google.com: domain of fm-1328757-2026011905535909527de199000207f7-67esls@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-1328757-2026011905535909527de199000207f7-67ESLs@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Kasturi Shekar Reply-To: Kasturi Shekar 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_H2,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?= Signed-off-by: Kasturi Shekar --- .../deploy-image/files/usr/bin/sys_api.sh | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 meta-isar/recipes-installer/deploy-image/files/usr/bin/sys_api.sh diff --git a/meta-isar/recipes-installer/deploy-image/files/usr/bin/sys_api.sh b/meta-isar/recipes-installer/deploy-image/files/usr/bin/sys_api.sh new file mode 100644 index 00000000..b144419e --- /dev/null +++ b/meta-isar/recipes-installer/deploy-image/files/usr/bin/sys_api.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +# +# sys_api.sh — Ported installer system APIs +# ------------------------------------------------------------------- + +# Load shared framework utilities +source ./func.sh || { + echo "Error: func.sh not found or not readable." >&2 + exit 1 +} + +# ------------------------------------------------------------------- +# API: locate_disk_images +# Description: +# Find disk image files (.wic, .wic.bz2) under given path. +# Usage: +# sys_locate_disk_images search_path=/install +# Returns JSON: +# {"error":"", "retval":"0", "images":["/install/image.wic", ...]} +# ------------------------------------------------------------------- +sys_locate_disk_images() { + local -A ARGS + local required=(search_path) + api_args ARGS required[@] "$@" || { + pack_return_data error "$_args_error" retval "1" + return 1 + } + + local fn="${FUNCNAME[0]}" + local path="${ARGS[search_path]}" + + log_info "$fn" "Searching for disk images in '$path'" + + local images + images=$(find "$path" -type f -iname "*.wic*" ! -iname "*.wic.bmap" 2>/dev/null) + + # when no images found in /install + if [[ -z "$images" ]]; then + log_warn "$fn" "No images found." + pack_return_data error "No images found" retval "1" + return 1 + fi + + # Convert newline-separated paths into JSON array elements + local json_images + json_images=$(printf '"%s",' $images | sed 's/,$//') + # final JSON response on stdout + echo "{ \"error\":\"\", \"retval\":\"0\", \"images\":[${json_images}] }" +} + + +# ------------------------------------------------------------------- +# API: sys_list_valid_target_devices +# Description: +# Shell-friendly variant of sys_get_valid_target_devices. +# Prints one valid device per line (absolute path). +# Usage: +# sys_list_valid_target_devices +# Output: +# /dev/sdb +# /dev/sdc +# ------------------------------------------------------------------- +sys_list_valid_target_devices() { + local dev + + for dev in /sys/block/*; do + dev=$(basename "$dev") + + case "$dev" in + loop*|ram*|sr*|mtd*) + continue + ;; + esac + + # skip inactive md devices + if [[ "$dev" == md* ]]; then + [ -f "/sys/block/$dev/md/array_state" ] || continue + state=$(cat /sys/block/$dev/md/array_state) + [ "$state" = "active" ] || [ "$state" = "clean" ] || continue + fi + + echo "/dev/$dev" + done +}