feat!: declare the guest agent per guest OS, and share what provisioning needs
CI / test (3.10) (push) Successful in 39s
CI / test (3.11) (push) Successful in 36s
CI / test (3.12) (push) Successful in 39s
CI / test (3.10) (pull_request) Successful in 32s
CI / test (3.11) (pull_request) Successful in 23s
CI / test (3.12) (pull_request) Successful in 24s
CI / test (3.10) (push) Successful in 39s
CI / test (3.11) (push) Successful in 36s
CI / test (3.12) (push) Successful in 39s
CI / test (3.10) (pull_request) Successful in 32s
CI / test (3.11) (pull_request) Successful in 23s
CI / test (3.12) (pull_request) Successful in 24s
GUEST_AGENT_PACKAGES / GUEST_AGENT_RUNCMD described one agent per hypervisor. A hypervisor that provisions FreeBSD and OpenBSD guests needs a different agent per guest, and netOrk has to know which guests a driver can provision at all (NetOrk/netork#794). Both now come from one class-level mapping netOrk reads off the driver class: GUEST_AGENTS = {guest_os: (packages, runcmd)} Its keys are the guests the driver provisions, and create_vm_from_cloud_init(guest_os=...) refuses any other. The base keeps Linux with qemu-guest-agent. New module `provisioning`, generic for every hypervisor: - QEMU_GUEST_AGENTS: the QEMU agent for Linux, FreeBSD and OpenBSD, with package names and service commands verified on FreeBSD 15.1 and OpenBSD 7.9 cloud images (NetOrk/netork#793). - network_config(): cloud-init's network-config v2 with MAC matching, moved here from napalm-vmware. FreeBSD's nuageinit reads no other version. - split_compression(): how a packed image (.xz, .gz, .bz2, .zst) is unpacked. BREAKING CHANGE: GUEST_AGENT_PACKAGES and GUEST_AGENT_RUNCMD are gone; drivers declare GUEST_AGENTS instead.
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "napalm-device-types"
|
||||
version = "2.7.0"
|
||||
version = "3.0.0"
|
||||
description = "Abstract device-type base classes for NAPALM drivers"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
|
||||
Reference in New Issue
Block a user