Changelog
=========
All notable changes to pyvergeos will be documented in this file.
The format is based on `Keep a Changelog `_,
and this project adheres to `Semantic Versioning `_.
[1.0.0] - 2026-02-01
--------------------
First stable release with full API coverage for VergeOS 26.0+.
Added
^^^^^
**Core Automation (Phase 1)**
- **VM Import/Export System**
- ``VmImportManager`` - Import VMs from VMDK, QCOW2, OVA, OVF formats
- ``VmImportLogManager`` - Track import progress and errors
- ``VolumeVmExportManager`` - Export VMs to NAS volumes for backup
- ``VolumeVmExportStatManager`` - Monitor export progress
- **Recipe/Provisioning System**
- ``VmRecipeManager`` - VM recipe templates
- ``VmRecipeInstanceManager`` - Deployed VM instances from recipes
- ``VmRecipeLogManager`` - Recipe deployment logs
- ``TenantRecipeManager`` - Tenant recipe templates
- ``TenantRecipeInstanceManager`` - Deployed tenant instances
- ``TenantRecipeLogManager`` - Tenant recipe deployment logs
- ``RecipeQuestionManager`` - Recipe configuration questions
- ``RecipeSectionManager`` - Recipe form sections
- **Task Scheduling System**
- ``TaskScheduleManager`` - Cron-style schedule definitions
- ``TaskScheduleTriggerManager`` - Schedule triggers for tasks
- ``TaskEventManager`` - Event definitions for task triggers
- ``TaskScriptManager`` - Task script management
- Enhanced ``TaskManager`` with full CRUD operations
- **Catalog Management**
- ``CatalogRepositoryManager`` - Repository sources (local, remote, git)
- ``CatalogManager`` - Catalog entries
- ``CatalogRepositoryStatusManager`` - Repository sync status
- ``CatalogLogManager`` - Catalog activity logs
**Enterprise Networking (Phase 2)**
- **Network Routing Protocols**
- ``NetworkRoutingManager`` - Entry point via ``network.routing``
- ``BgpRouterManager`` - BGP router configuration
- ``BgpInterfaceManager`` - BGP interface configuration
- ``BgpRouteMapManager`` - BGP route maps
- ``BgpIpCommandManager`` - BGP prefix-lists and AS-path access-lists
- ``OspfCommandManager`` - OSPF protocol commands
- ``EigrpRouterManager`` - EIGRP router configuration
- **Tenant Proxy**
- ``VnetProxyManager`` - Reverse proxy service configuration
- ``VnetProxyTenantManager`` - Tenant FQDN mappings
**Infrastructure Monitoring (Phase 3)**
- **Machine Stats & Monitoring**
- ``MachineStatsManager`` - Real-time VM/node performance metrics
- ``MachineStatsHistory`` - Historical metrics (short-term and long-term)
- ``MachineStatusManager`` - VM/node operational status
- ``MachineLogManager`` - VM/node-specific logs
- ``MachineDeviceManager`` - GPU, TPM, USB device management
- **GPU/vGPU Management**
- ``NvidiaVgpuProfileManager`` - Available vGPU profiles
- ``NodeVgpuDeviceManager`` - Physical vGPU devices
- ``NodeVgpuProfileManager`` - Node-specific vGPU profiles
- ``NodeGpuManager`` - Physical GPU configuration
- ``NodeGpuStatsManager`` - GPU utilization metrics with history
- ``NodeGpuInstanceManager`` - GPU instances assigned to VMs
- ``NodeHostGpuDeviceManager`` - Host GPU devices for passthrough
- **Cluster Tier Management**
- ``ClusterTierManager`` - Storage tier management
- ``ClusterTierStatus`` - Tier health status
- ``ClusterTierStats`` - Tier I/O performance metrics
- **Tenant Stats & Monitoring**
- ``TenantStatsManager`` - Tenant resource utilization
- ``TenantStatsHistory`` - Historical tenant metrics
- ``TenantDashboardManager`` - Aggregated tenant overview
- ``TenantLogManager`` - Tenant activity logging
- **Billing System**
- ``BillingManager`` - Resource usage tracking and billing reports
- Time-based filtering with datetime or epoch timestamps
- Summary statistics with averages and peak values
**Existing Resource Enhancements (Phase 4)**
- **VM Enhancements**
- ``migrate()`` - Live migrate VM to another node
- ``hibernate()`` - Hibernate VM to disk
- ``change_cd()`` - Change CD/DVD media
- ``restore()`` - Restore from snapshot
- ``hotplug_drive()`` - Hot-add drive to running VM
- ``hotplug_nic()`` - Hot-add NIC to running VM
- ``tag()`` / ``untag()`` - Tag management
- ``favorite()`` / ``unfavorite()`` - VM favorites
- **Network Enhancements**
- ``NetworkMonitorStatsManager`` - Network performance monitoring
- ``NetworkDashboardManager`` - Network topology discovery
- ``IPSecActiveConnectionManager`` - IPSec connection tracking
- ``WireGuardPeerStatusManager`` - WireGuard peer status
- **Site Sync Enhancements**
- ``SiteSyncQueueManager`` - Sync queue management
- ``SiteSyncRemoteSnapManager`` - Remote snapshot visibility
- ``SiteSyncIncomingVerifiedManager`` - Verified incoming syncs
- ``SiteSyncStatsManager`` - Sync performance metrics
**Authentication & Security (Phase 5)**
- **Authentication Sources**
- ``AuthSourceManager`` - External auth providers (OAuth2, OIDC, Azure AD, Okta)
- ``AuthSourceStateManager`` - Auth source connection state
- **OIDC Applications**
- ``OidcApplicationManager`` - Use VergeOS as identity provider
- ``OidcApplicationUserManager`` - User ACLs for OIDC apps
- ``OidcApplicationGroupManager`` - Group ACLs for OIDC apps
- ``OidcApplicationLogManager`` - OIDC application logs
- **Update Management**
- ``UpdateSettingsManager`` - Update configuration
- ``UpdateSourceManager`` - Update source management
- ``UpdateBranchManager`` - Available update branches
- ``UpdatePackageManager`` - Available packages
- ``UpdateDashboardManager`` - Update status dashboard
- ``UpdateLogManager`` - Update history
**Documentation (Phase 6)**
- Sphinx documentation with autodoc API reference
- Tutorials for VM import/export, recipes, task scheduling, routing, GPU passthrough
- Migration guide from direct API calls
- Troubleshooting guide
- 25 example scripts covering major use cases
Changed
^^^^^^^
- Minimum VergeOS version requirement: 26.0+
- Test coverage increased to 83% (3,686+ tests)
- All resource managers now export type-safe model classes
- Improved error messages with actionable context
Fixed
^^^^^
- Consistent retry behavior across all HTTP methods
- Proper handling of 40-character hex string keys in recipes and catalogs
- Scoped managers correctly inherit parent context
[0.1.1] - 2026-01-29
--------------------
Added
^^^^^
- Configurable retry strategy for HTTP requests
- ``retry_total`` - Number of retry attempts (default: 3)
- ``retry_backoff_factor`` - Exponential backoff multiplier (default: 1)
- ``retry_status_codes`` - HTTP codes to retry (default: 429, 500, 502, 503, 504)
- System enhancements for diagnostics, certificates, and settings
- Unit tests for remaining resource managers
[0.1.0] - 2026-01-15
--------------------
Initial release.
Added
^^^^^
- Core client with username/password and token authentication
- Virtual machine management (CRUD, power operations, snapshots)
- Network management (CRUD, firewall rules, DNS)
- Tenant management
- NAS/storage management
- User and group management
- Task monitoring and waiting
- OData filter builder
- Automatic retry with exponential backoff
- Comprehensive exception hierarchy
- Full type annotations