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.
1.9 KiB
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
HypervisorDrivercontract methodsstart_vm,stop_vm,reboot_vm,suspend_vmandget_vm_config. They accept a VM's name or vmid, raiseValueError/RuntimeErrorinstead of returning a result dict, and wait for the Proxmox task to finish.power_vmis unchanged.
Changed
get_vms()reportsvmidas 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_aliveget_factsget_interfaces,get_interfaces_ip,get_interfaces_countersget_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_statsget_snmp_informationget_usersget_config,load_merge_candidate,load_replace_candidatecompare_config,commit_config,discard_config,rollbackget_lldp_neighbors,get_lldp_neighbors_detailget_ipv6_neighbors_tableping,traceroute,cliget_route_to
- 149 unit tests with ~79% code coverage
- Full type annotations