driver / standard (pull_request) Successful in 14s
driver / lint (pull_request) Successful in 11s
driver / types (pull_request) Successful in 46s
driver / test (3.10) (pull_request) Successful in 50s
driver / test (3.11) (pull_request) Successful in 48s
driver / test (3.12) (pull_request) Successful in 49s
driver / test (3.13) (pull_request) Successful in 42s
driver / lowest (pull_request) Successful in 24s
driver / security (pull_request) Successful in 46s
driver / build (pull_request) Successful in 22s
CI / driver (pull_request) Successful in 5m52s
driver / publish (pull_request) Skipped
- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow of NAPALM/driver-standard; .github/ is gone. - setuptools>=77 with the SPDX license string, no License classifier, Python 3.13 classifier, napalm-device-types>=4.21.1, a dev extra with floors, Issues and Changelog links; README installs from PyPI and links pyVmomi on PyPI. - mypy strict for the package (the blanket ignore_missing_imports is now limited to napalm and yaml); exempt for now (35 errors): _inventory, _session, _tasks, base, esxi, parse.environment, parse.snapshots, parse.vm_devices, provision.seed, provision.transfer, provisioning. Recorded in the quality baseline with the long and complex functions. - Coverage floor 97 % (measured 97.11 %).
52 lines
2.4 KiB
Markdown
52 lines
2.4 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to this project will be documented in this file.
|
||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||
|
||
## [Unreleased]
|
||
|
||
### Changed
|
||
- The driver follows the NAPALM driver standard
|
||
(https://git.netork.io/NAPALM/driver-standard): CI on Gitea runs ruff, mypy, the
|
||
tests on Python 3.10–3.13 and at the lowest declared versions, bandit, pip-audit and
|
||
a build check, and a release tag publishes to PyPI. Python 3.10 remains the floor;
|
||
requires napalm-device-types 4.21.1.
|
||
- Provisioning fails, and removes the imported VM, when vSphere hands back fewer
|
||
network adapters than NICs were asked for, instead of leaving a NIC unconfigured.
|
||
A failed abort of the import lease is logged at debug level.
|
||
|
||
### Added
|
||
- VM provisioning (`create_vm_from_cloud_init`, `destroy_vm`,
|
||
`get_vm_status`, `get_network_targets`, `get_image_storages`) from qcow2/raw
|
||
cloud images: converted with qemu-img, imported over OVF/NFC, configured
|
||
by cloud-init from a NoCloud seed ISO. Tested against vcsim.
|
||
- `reboot_host` on ESXi, refused outside maintenance mode.
|
||
- Declares `open-vm-tools` as the guest agent for provisioned VMs.
|
||
|
||
### Changed
|
||
- **Breaking:** `get_device_warnings` is gone; the driver reports facts and the
|
||
caller names the warnings (netOrk #1111). `get_hypervisor_hosts()` gives each
|
||
host's connection state (`None` on ESXi, which cannot tell), maintenance mode,
|
||
configuration issues and managing vCenter (ESXi only); `get_licenses()` gives
|
||
the assigned licenses with their edition key as `edition`. Requires
|
||
napalm-device-types 4.14.0; version 0.2.0.
|
||
- The guest agent is declared per guest OS (`GUEST_AGENTS`, napalm-device-types
|
||
3.0); VMware provisions Linux guests only and refuses any other `guest_os`.
|
||
- The NoCloud network-config comes from napalm-device-types
|
||
(`provisioning.network_config`), which Proxmox uses as well.
|
||
|
||
## [0.1.0] - 2026-09-24
|
||
|
||
### Added
|
||
- `vmware_esxi` and `vmware_vcenter` drivers (`hypervisor` role) over the
|
||
vSphere API: facts, interfaces, LLDP/CDP, environment, VMs, VM config,
|
||
power actions, snapshots, datastores, port groups and raw device warnings.
|
||
- `tools/harvest.py` and `tools/sanitize.py` to capture fixtures from real
|
||
hosts.
|
||
|
||
### Pending
|
||
- Validation against real ESXi and vCenter installations; tested against
|
||
vcsim only.
|