From f12fdce7467645baac3b4994312b4acf09f92140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20Pe=CC=81rez?= Date: Fri, 17 Apr 2026 09:06:21 +0100 Subject: [PATCH] refactor(vm/*): selective imports in 4 vm/ files (ADR-025 L2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four vm/ files, 2 stars each -> selective. vm/state_recovery.nu: vm_persistence.nu [get-vm-persistence-info list-permanent-vms] vm/lifecycle.nu [vm-info vm-start] vm/ssh_utils.nu: vm/backend_libvirt.nu [libvirt-get-vm-ip] vm/persistence.nu [get-vm-state] vm/lifecycle.nu: vm/backend_libvirt.nu [8 symbols — libvirt-* ops] vm/persistence.nu [4 symbols — state tracking] vm/golden_image_builder.nu: vm/lifecycle.nu [vm-create vm-info vm-stop] vm/vm_persistence.nu DROPPED (dead) Validation: 39-50 pre-existing errors each (matches baseline). Zero new. Refs: ADR-025 --- nulib/lib_provisioning/vm/golden_image_builder.nu | 5 +++-- nulib/lib_provisioning/vm/lifecycle.nu | 10 ++++++++-- nulib/lib_provisioning/vm/ssh_utils.nu | 5 +++-- nulib/lib_provisioning/vm/state_recovery.nu | 5 +++-- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/nulib/lib_provisioning/vm/golden_image_builder.nu b/nulib/lib_provisioning/vm/golden_image_builder.nu index cf1b165..796f908 100644 --- a/nulib/lib_provisioning/vm/golden_image_builder.nu +++ b/nulib/lib_provisioning/vm/golden_image_builder.nu @@ -3,8 +3,9 @@ # Builds golden images with pre-installed taskservs for 5x faster VM startup. # Rule 1: Single purpose, Rule 5: Atomic operations, Rule 2: Explicit types -use ./vm_persistence.nu * -use ./lifecycle.nu * +# Selective imports (ADR-025 Phase 3 Layer 2). +# vm/vm_persistence star-import was dead — dropped. +use lib_provisioning/vm/lifecycle.nu [vm-create vm-info vm-stop] export def "build-golden-image" [ name: string # Image name diff --git a/nulib/lib_provisioning/vm/lifecycle.nu b/nulib/lib_provisioning/vm/lifecycle.nu index 1d1d0dc..9458361 100644 --- a/nulib/lib_provisioning/vm/lifecycle.nu +++ b/nulib/lib_provisioning/vm/lifecycle.nu @@ -3,8 +3,14 @@ # Higher-level VM operations: create, start, stop, delete with state tracking. # Rule 1: Single purpose, Rule 4: Pure functions, Rule 5: Atomic operations -use ./backend_libvirt.nu * -use ./persistence.nu * +# Selective imports (ADR-025 Phase 3 Layer 2). +use lib_provisioning/vm/backend_libvirt.nu [ + libvirt-create-disk libvirt-create-vm libvirt-delete-vm libvirt-get-vm-info + libvirt-get-vm-ip libvirt-list-vms libvirt-start-vm libvirt-stop-vm +] +use lib_provisioning/vm/persistence.nu [ + get-vm-state record-vm-creation remove-vm-state update-vm-state +] export def "vm-create" [ vm_config: record # VM configuration (from Nickel) diff --git a/nulib/lib_provisioning/vm/ssh_utils.nu b/nulib/lib_provisioning/vm/ssh_utils.nu index 4678fea..cd801dd 100644 --- a/nulib/lib_provisioning/vm/ssh_utils.nu +++ b/nulib/lib_provisioning/vm/ssh_utils.nu @@ -3,8 +3,9 @@ # SSH operations for VMs: connection, provisioning, file transfer. # Rule 1: Single purpose, Rule 2: Explicit types -use ./backend_libvirt.nu * -use ./persistence.nu * +# Selective imports (ADR-025 Phase 3 Layer 2). +use lib_provisioning/vm/backend_libvirt.nu [libvirt-get-vm-ip] +use lib_provisioning/vm/persistence.nu [get-vm-state] export def "vm-ssh" [ vm_name: string # VM name diff --git a/nulib/lib_provisioning/vm/state_recovery.nu b/nulib/lib_provisioning/vm/state_recovery.nu index b1bc4c7..1d6eaf6 100644 --- a/nulib/lib_provisioning/vm/state_recovery.nu +++ b/nulib/lib_provisioning/vm/state_recovery.nu @@ -3,8 +3,9 @@ # Recovers VM state after host reboot and restarts permanent VMs. # Rule 1: Single purpose, Rule 5: Atomic operations -use ./vm_persistence.nu * -use ./lifecycle.nu * +# Selective imports (ADR-025 Phase 3 Layer 2). +use lib_provisioning/vm/vm_persistence.nu [get-vm-persistence-info list-permanent-vms] +use lib_provisioning/vm/lifecycle.nu [vm-info vm-start] export def "recover-vms-on-boot" []: record { """