Files
napalm-proxmox/CHANGELOG.md
T
Christian Manivong dd48d3c1e5 feat: implement the HypervisorDriver VM contract
start_vm, stop_vm, reboot_vm, suspend_vm and get_vm_config existed only
as declarations. netOrk called Proxmox's own power_vm and read a VM's
raw config through _node_api(), so no other hypervisor could serve the
same endpoints. These let netOrk talk to every hypervisor alike.

The power methods accept a VM's name or vmid, wait for the Proxmox task,
and raise ValueError/RuntimeError as the contract says instead of
returning a result dict. A forced reboot of a container is stop + start,
since LXC has no reset; suspending a container is refused. power_vm is
unchanged for existing callers.

get_vm_config moves the config parsing netOrk did in
_parse_proxmox_hw_config into the driver and returns a VMConfigDict:
disks with storage and size, NICs with model, MAC, bridge and VLAN, CPU
topology, firmware, machine type and PCI/USB passthrough.

get_vms reports vmid as a string ("100"), following
napalm-device-types 2.0, still ordered numerically.
2026-09-24 09:06:59 +02:00

1.9 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • HypervisorDriver contract methods start_vm, stop_vm, reboot_vm, suspend_vm and get_vm_config. They accept a VM's name or vmid, raise ValueError/RuntimeError instead of returning a result dict, and wait for the Proxmox task to finish. power_vm is unchanged.

Changed

  • get_vms() reports vmid as a string ("100"), following napalm-device-types 2.0. Ordering stays numeric.

[0.1.0] - 2024-01-01

Added

  • Initial release of the Proxmox VE NAPALM driver
  • Support for classic Linux networking (/etc/network/interfaces, Linux bridges)
  • Support for Proxmox SDN (zones: VLAN, QinQ, VXLAN, EVPN; VNets and subnets)
  • Support for Open vSwitch (OVS) bridges, bonds, and internal ports
  • Password and API token authentication via proxmoxer
  • Implemented NAPALM methods:
    • open, close, is_alive
    • get_facts
    • get_interfaces, get_interfaces_ip, get_interfaces_counters
    • get_environment (CPU, memory, temperature sensors)
    • get_arp_table (via /proc/net/arp)
    • get_mac_address_table (Linux bridge fdb + OVS appctl)
    • get_vlans (SDN VNet tags + bridge vlan show)
    • get_network_instances (SDN zones as NAPALM network instances)
    • get_ntp_servers, get_ntp_stats
    • get_snmp_information
    • get_users
    • get_config, load_merge_candidate, load_replace_candidate
    • compare_config, commit_config, discard_config, rollback
    • get_lldp_neighbors, get_lldp_neighbors_detail
    • get_ipv6_neighbors_table
    • ping, traceroute, cli
    • get_route_to
  • 149 unit tests with ~79% code coverage
  • Full type annotations