From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 89E782DE6E9 for ; Wed, 17 Sep 2025 08:49:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758098983; cv=none; b=HdLO5QLAQfoBInvJE9Y9cDm/jiQdG2abcHAeOrrh9OM/n3Rpz+hnxUQiE4q1Bjjb2hxvM19tiwEF4KJMW3yTms7NuiiQr1X1+Y2ctxuzQhADEKD1pFt69MfkS7/OxNUod0XYSx4tUSnkByA5+2Tn5UlZYB4A62KrhWKn17VwuIU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758098983; c=relaxed/simple; bh=+gpFFXa0r89r8RbanXXWjq/j+NGHyuttCRY9AYOxPD0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=RVeR0MnRWHi7sCO5KVG0ngzKTp8KrNqlknhjkFVWVm74kdlj5EzKCEwLBtn/QgTAdxxq3nia6DlRuzgTYuD0DwFyRm1B/pDfDTDH8hWbiWneJ5J6dbwagJUwUyszV8t1A1dBccvNHmdDOeIKclvMi4TpgR6ypacCjmWWKurRm70= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZxiAPa7/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZxiAPa7/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34402C4CEF5; Wed, 17 Sep 2025 08:49:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758098983; bh=+gpFFXa0r89r8RbanXXWjq/j+NGHyuttCRY9AYOxPD0=; h=From:Date:Subject:To:Cc:From; b=ZxiAPa7/0JksI9bKr0e+xmqpq+lKYZa+bsHXi2TIEsWQBmAe7qGO/xGR4Z1n/E2Pt TNN3V0qq/ysLPa71lytONkEdfRJABC1tD54H+98K9tGH1ohMfblM2CLNr0idwigE+t gdB7XQZTDrrp0qew745uLnUD4PgY2y/Z1qhAthKLrzWOHDIAbaTI2PuuOFj0lC1Y4P aXAG36u7VLHIEAaBh+h3syCcs7mOvWLvQoveYP8q9Lhwfu7zmMQO8FTkgUYBhFRylw VCAhgsJ3F8QGb+s2QkVjkN2B4LokqRrJOTdt5DRo3VAWHQOyrRQhM4HA32HLyE4wF4 Ck6Zm7IXqoz5Q== From: Daniel Gomez Date: Wed, 17 Sep 2025 10:49:31 +0200 Subject: [PATCH] guestfs: port status script to Ansible with libvirt URI fix Precedence: bulk X-Mailing-List: kdevops@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250917-status-script-v1-1-4a792f9ca518@samsung.com> X-B4-Tracking: v=1; b=H4sIABp2ymgC/x3MQQqAIBBA0avErBNsKKSuEi1Mp5qNiWMRSHdPW r7F/wWEEpPA1BRIdLPwGSq6tgF32LCTYl8NqHHQY2eUZJsvUeISx6wI0ffWmVXrEWoTE238/L9 5ed8PefmvFV8AAAA= X-Change-ID: 20250917-status-script-e22d4ac7b009 To: Luis Chamberlain , Chuck Lever Cc: kdevops@lists.linux.dev, Daniel Gomez X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=4349; i=da.gomez@samsung.com; h=from:subject:message-id; bh=bmVfe17FlKUGzkdl+5dnLQMj91gCMTGr3ebGC060TBE=; b=owEBbQKS/ZANAwAIAUCeo8QfGVH7AcsmYgBoynYeY2JYgoqzVxnLn/SaB91aD1apCi1klRp8f sxIu7GRbbSJAjMEAAEIAB0WIQTvdRrhHw9z4bnGPFNAnqPEHxlR+wUCaMp2HgAKCRBAnqPEHxlR +31oD/9wiY4Wi8MJ/o6Km16mv5x85XNBz2fxnbltWqPwH6imfnm7VZSx0UmY+gMyGkOP/0KEPrR tymnw8JQwc64kg4M8VYuR79BL0hqE5m6ZceN7e+stWSWKUo2i9WDcKISyM/pD5m5glt9pkn3Pii oXnxMd4T9wOGo2YmiRIV0vnx2i91CJ4tGCdtLeIycojpigSwaQWhKs6OZgw83slhemwQMxxv7kK TWL6dBhZeDTueZpbV1Q5NiJzVwY3Fs4HSOiZx06T7eHnf++Ekj6pt1hL8dfRfXvYpAUUOnkllQU IHXbM79u4kVWkbXGYE0h0Yh+RaSCH92haCxJ39kzpqr1ksAcyAEMDeFmA0U6dhNei1y0cqjmylo mY947K9pJ9Kjwo7UNKHKkAjEaeaDIydQEn9AFDfK8zrCAj8s7veLJOvgwEhW00R7XgEIo+mcOzH x5VM0UT+BLc/KUSJ+8apj0u98pxfuEKEfMMMpI0O+06i6A/O3LdgoyxGS55RUSCnIp3dTDtw3gR 9j0SE3qCXXwC6/n5PiReEd89jwF2QLzJ5M9YPMXdGHPEX8eo3bzTyYb/Tmutj8zUjPih73aCQbW pNGVoKhfx5UQORC2iNDOHgOFW2Icoqrga8YI78Jtb6QksWJaq2BIpz7jo4cjVOW/+F+BJdJmnbn pCUM9mpyXUjy1yA== X-Developer-Key: i=da.gomez@samsung.com; a=openpgp; fpr=B2A7A9CFDD03B540FF58B27185F56EA4E9E8138F From: Daniel Gomez Convert scripts/status_guestfs.sh shell script to Ansible implementation in playbooks/roles/guestfs/tasks/status/main.yml. The new implementation: - Uses proper libvirt_uri variable for LIBVIRT_DEFAULT_URI - Integrates with DIY callback to show command output - Provides idempotent Ansible approach with tagging support - Fixes missing libvirt URI context that caused empty virsh output Update scripts/guestfs.Makefile to call ansible-playbook with --tags status instead of the shell script. Add missing output yaml to LIBVIRT_URI_PATH for proper URI variable generation. Generated-by: Claude AI Signed-off-by: Daniel Gomez --- The conversion in combination with the DIY stdout callback support [1] results in this nice human readable output: Link: https://lore.kernel.org/kdevops/aMnm2GQ0hdxNgYGd@bombadil.infradead.org/ [1] make status PLAY: MANAGE INFRASTRUCTURE LIFECYCLE AND SSH ACCESS WITH LIBVIRT/GUESTFS TASK: Gathering Facts start: [localhost] start: [debian13-xarray] ok: [localhost] ok: [debian13-xarray] TASK: Display VM status start: [localhost] Id Name State --------------------------------- 9 debian13-xarray running PLAYBOOK SUMMARY ================ STATUS OK CHANGED FAILED HOST OK 1 0 0 debian13-xarray OK 2 0 0 localhost I think DIY should be the default stdout callback for kdevops. This example is meant to encourage users to try it out, and if the feedback is positive, we can move forward with a formal proposal (there's no rush). --- kconfigs/Kconfig.libvirt | 1 + playbooks/roles/guestfs/tasks/main.yml | 7 +++++++ playbooks/roles/guestfs/tasks/status/main.yml | 9 +++++++++ scripts/guestfs.Makefile | 5 ++++- scripts/status_guestfs.sh | 5 ----- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/kconfigs/Kconfig.libvirt b/kconfigs/Kconfig.libvirt index 25cb703f..af34a33c 100644 --- a/kconfigs/Kconfig.libvirt +++ b/kconfigs/Kconfig.libvirt @@ -118,6 +118,7 @@ endchoice config LIBVIRT_URI_PATH string "Libvirt QEMU URI to use" + output yaml default "qemu:///system" if LIBVIRT_URI_SYSTEM || LIBVIRT_URI_CUSTOM default "qemu:///session" if LIBVIRT_URI_SESSION help diff --git a/playbooks/roles/guestfs/tasks/main.yml b/playbooks/roles/guestfs/tasks/main.yml index 2ec44204..6618687e 100644 --- a/playbooks/roles/guestfs/tasks/main.yml +++ b/playbooks/roles/guestfs/tasks/main.yml @@ -77,3 +77,10 @@ ansible.builtin.import_tasks: file: "{{ role_path }}/tasks/destroy.yml" delegate_to: localhost + +- name: Status VM tasks + tags: + - status + ansible.builtin.import_tasks: + file: "{{ role_path }}/tasks/status/main.yml" + delegate_to: localhost diff --git a/playbooks/roles/guestfs/tasks/status/main.yml b/playbooks/roles/guestfs/tasks/status/main.yml new file mode 100644 index 00000000..ad1e0348 --- /dev/null +++ b/playbooks/roles/guestfs/tasks/status/main.yml @@ -0,0 +1,9 @@ +--- +- name: Display VM status + ansible.builtin.shell: | + LIBVIRT_DEFAULT_URI="{{ libvirt_uri }}" virsh list --all + changed_when: false + delegate_to: localhost + run_once: true + vars: + ansible_callback_diy_runner_on_ok_msg: "{{ ansible_callback_diy.result.output.stdout }}" diff --git a/scripts/guestfs.Makefile b/scripts/guestfs.Makefile index 953c6149..68aa282f 100644 --- a/scripts/guestfs.Makefile +++ b/scripts/guestfs.Makefile @@ -91,7 +91,10 @@ bringup_guestfs: $(GUESTFS_BRINGUP_DEPS) PHONY += bringup_guestfs status_guestfs: - $(Q)scripts/status_guestfs.sh + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + playbooks/guestfs.yml \ + --extra-vars=@./extra_vars.yaml \ + --tags status PHONY += status_guestfs destroy_guestfs: diff --git a/scripts/status_guestfs.sh b/scripts/status_guestfs.sh deleted file mode 100755 index 84cb26cf..00000000 --- a/scripts/status_guestfs.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: copyleft-next-0.3.1 - -virsh list -exit 0 --- base-commit: 4deb164b5926aaef3f864f3a49358ec6c1da8238 change-id: 20250917-status-script-e22d4ac7b009 Best regards, -- Daniel Gomez