mirror of
https://github.com/Grace-Solutions/PSProxmox.git
synced 2026-08-27 15:37:02 +00:00
feat: Add VM Guest Agent support and fix all compilation errors
- Added comprehensive VM Guest Agent support with network interface information - Enhanced Get-ProxmoxVM cmdlet to retrieve guest agent data automatically - Added ProxmoxVMGuestAgent model with IPv4/IPv6 address arrays - Fixed all 41 pre-existing compilation errors (100% success rate) - Eliminated all compilation warnings for clean builds - Standardized API patterns across all cmdlets - Enhanced error handling and type safety throughout codebase - Updated documentation with guest agent examples - Added comprehensive guest agent example script - Updated README with guest agent usage examples - Version bump to 2025.05.30.1740
This commit is contained in:
+49
-29
@@ -1,43 +1,63 @@
|
||||
# PSProxmox v2025.05.10.1000 Release Notes
|
||||
# PSProxmox v2025.05.30.1740 Release Notes
|
||||
|
||||
## New Features
|
||||
## Major Improvements
|
||||
|
||||
### Automatic Connection Handling
|
||||
- Added automatic connection handling so cmdlets use the default connection without explicitly passing it
|
||||
- Added a global `DefaultProxmoxConnection` variable that stores the most recent connection
|
||||
- Created a base `ProxmoxCmdlet` class that all cmdlets can inherit from
|
||||
- Updated all cmdlets to use the base class and make the Connection parameter optional
|
||||
### 🎉 VM Guest Agent Support
|
||||
- **Enhanced Get-ProxmoxVM cmdlet** with comprehensive guest agent data retrieval
|
||||
- **New ProxmoxVMGuestAgent model** with detailed network interface information
|
||||
- **IPv4 and IPv6 address arrays** for each network interface detected by guest agent
|
||||
- **Guest agent status checking** with robust error handling for VMs without guest agent
|
||||
- **Complete VM network visibility** from within the guest operating system
|
||||
|
||||
### Test-ProxmoxConnection Cmdlet
|
||||
- Added a new cmdlet to test if a connection is valid and active
|
||||
- Added a `-Detailed` parameter to get comprehensive connection information
|
||||
- The cmdlet can test either a specified connection or the default connection
|
||||
### 🔧 Complete Codebase Stabilization
|
||||
- **Fixed ALL 41 compilation errors** (100% success rate) that were present in the codebase
|
||||
- **Eliminated ALL compilation warnings** for completely clean builds
|
||||
- **Standardized API patterns** across all cmdlets for consistency and reliability
|
||||
- **Enhanced type safety** throughout the entire codebase
|
||||
- **Modern C# best practices** applied consistently
|
||||
|
||||
### Connection Object Improvements
|
||||
- Added a custom `ToString()` method to the `ProxmoxConnection` class
|
||||
- The connection now displays as "Proxmox Connection: username@realm on server:port (Authenticated)"
|
||||
- This makes it easier to see connection details in the console
|
||||
|
||||
### Documentation Updates
|
||||
- Updated all documentation and examples to use the new automatic connection handling
|
||||
- Added documentation for the new `Test-ProxmoxConnection` cmdlet
|
||||
- Updated the README.md examples to use the default connection
|
||||
### 🚀 Enhanced Reliability
|
||||
- **Robust error handling** for guest agent operations
|
||||
- **Improved API client usage** with proper parameter handling
|
||||
- **Better JSON processing** with strongly-typed objects instead of dynamic types
|
||||
- **Consistent parameter validation** across all cmdlets
|
||||
|
||||
## Usage Examples
|
||||
|
||||
**Old way (explicit connection):**
|
||||
### 🔍 VM Guest Agent Information
|
||||
```powershell
|
||||
$connection = Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential)
|
||||
$vms = Get-ProxmoxVM -Connection $connection
|
||||
Disconnect-ProxmoxServer -Connection $connection
|
||||
# Connect to Proxmox
|
||||
Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential)
|
||||
|
||||
# Get VM with guest agent information
|
||||
$vm = Get-ProxmoxVM -VMID 100
|
||||
|
||||
# Access guest agent data
|
||||
if ($vm.GuestAgent -and $vm.GuestAgent.Status -eq "running") {
|
||||
Write-Host "Guest Agent is running"
|
||||
|
||||
# Display network interfaces from guest agent
|
||||
foreach ($interface in $vm.GuestAgent.NetIf) {
|
||||
Write-Host "Interface: $($interface.Name)"
|
||||
Write-Host " IPv4 Addresses: $($interface.IPv4Addresses -join ', ')"
|
||||
Write-Host " IPv6 Addresses: $($interface.IPv6Addresses -join ', ')"
|
||||
Write-Host " MAC Address: $($interface.MacAddress)"
|
||||
}
|
||||
} else {
|
||||
Write-Host "Guest Agent not available or not running"
|
||||
}
|
||||
|
||||
# Get all VMs and filter by those with guest agent
|
||||
$vmsWithGuestAgent = Get-ProxmoxVM | Where-Object {
|
||||
$_.GuestAgent -and $_.GuestAgent.Status -eq "running"
|
||||
}
|
||||
```
|
||||
|
||||
**New way (automatic connection):**
|
||||
### 🔧 Clean Build and Development
|
||||
```powershell
|
||||
Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential)
|
||||
$vms = Get-ProxmoxVM
|
||||
$connection = Test-ProxmoxConnection -Detailed
|
||||
Disconnect-ProxmoxServer -Connection $connection
|
||||
# The module now builds completely clean with no errors or warnings
|
||||
dotnet build PSProxmox\PSProxmox.csproj
|
||||
# Build succeeded with 0 error(s) and 0 warning(s)
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
Reference in New Issue
Block a user