diff --git a/src/PSProxmoxVE.Core/Errors/PveErrorMapper.cs b/src/PSProxmoxVE.Core/Errors/PveErrorMapper.cs
new file mode 100644
index 0000000..2cf00f8
--- /dev/null
+++ b/src/PSProxmoxVE.Core/Errors/PveErrorMapper.cs
@@ -0,0 +1,166 @@
+using System;
+using System.Globalization;
+using System.Net;
+using PSProxmoxVE.Core.Exceptions;
+
+namespace PSProxmoxVE.Core.Errors
+{
+ ///
+ /// The error classifications this module reports. Every member name is also the name of a
+ /// System.Management.Automation.ErrorCategory member, so the cmdlet layer can
+ /// translate a kind without inventing a second vocabulary.
+ ///
+ public enum PveErrorKind
+ {
+ /// The failure was not recognised and carries no classification.
+ NotSpecified,
+
+ /// The caller lacks the privilege or the credential the operation needs.
+ PermissionDenied,
+
+ /// The credential was rejected because the session is no longer valid.
+ AuthenticationError,
+
+ /// The addressed object does not exist on the server.
+ ObjectNotFound,
+
+ /// The server rejected the request payload or a parameter value.
+ InvalidArgument,
+
+ /// The operation did not complete inside its time budget.
+ OperationTimeout,
+
+ /// The server could not be reached, or no session is established.
+ ConnectionError,
+
+ /// The server was reached but cannot service the request.
+ ResourceUnavailable,
+
+ /// The operation is not valid for the server or object in its current state.
+ InvalidOperation,
+
+ /// The operation started and then stopped without completing.
+ OperationStopped,
+ }
+
+ /// The classification and error identifier derived from a failure.
+ public sealed class PveErrorDescriptor
+ {
+ /// Initializes a new descriptor.
+ /// The classification of the failure.
+ /// The stable identifier a script can match on.
+ /// The object the failure is about, or null when none is known.
+ public PveErrorDescriptor(PveErrorKind kind, string errorId, object? target)
+ {
+ Kind = kind;
+ ErrorId = errorId;
+ Target = target;
+ }
+
+ /// The classification of the failure.
+ public PveErrorKind Kind { get; }
+
+ /// The stable identifier a script can match on, for example PveApi.404.nodes/pve1/qemu/100.
+ public string ErrorId { get; }
+
+ /// The object the failure is about, derived from the exception when the caller supplied none.
+ public object? Target { get; }
+ }
+
+ /// Maps a module exception to the classification and identifier reported to PowerShell.
+ public static class PveErrorMapper
+ {
+ private const string ApiErrorIdPrefix = "PveApi";
+
+ ///
+ /// Reports whether is one this module classifies. An
+ /// exception that is not recognised must reach the PowerShell engine untouched: it may
+ /// carry its own error record, or be a flow-control or fatal exception.
+ ///
+ /// The failure to test.
+ /// True when classifies the exception.
+ public static bool IsRecognized(Exception exception)
+ => exception is PveApiException
+ or PveNotConnectedException
+ or PveSessionExpiredException
+ or PveTaskFailedException
+ or PveTaskTimeoutException
+ or PveVersionException;
+
+ /// Classifies and derives its error identifier and target.
+ /// The failure to classify.
+ /// The classification, error identifier and derived target.
+ public static PveErrorDescriptor Describe(Exception exception)
+ {
+ if (exception is null) throw new ArgumentNullException(nameof(exception));
+
+ switch (exception)
+ {
+ case PveApiException api:
+ return new PveErrorDescriptor(KindForStatus(api.StatusCode), ApiErrorId(api), NullIfBlank(api.Resource));
+
+ case PveNotConnectedException:
+ return new PveErrorDescriptor(PveErrorKind.ConnectionError, "PveNotConnected", null);
+
+ case PveSessionExpiredException:
+ return new PveErrorDescriptor(PveErrorKind.AuthenticationError, "PveSessionExpired", null);
+
+ case PveTaskFailedException taskFailed:
+ return new PveErrorDescriptor(PveErrorKind.OperationStopped, "PveTaskFailed", NullIfBlank(taskFailed.Upid));
+
+ case PveTaskTimeoutException taskTimeout:
+ return new PveErrorDescriptor(PveErrorKind.OperationTimeout, "PveTaskTimeout", NullIfBlank(taskTimeout.Upid));
+
+ case PveVersionException:
+ return new PveErrorDescriptor(PveErrorKind.InvalidOperation, "PveVersionTooOld", null);
+
+ default:
+ return new PveErrorDescriptor(PveErrorKind.NotSpecified, exception.GetType().Name, null);
+ }
+ }
+
+ private static PveErrorKind KindForStatus(HttpStatusCode status)
+ {
+ switch (status)
+ {
+ case HttpStatusCode.BadRequest:
+ return PveErrorKind.InvalidArgument;
+
+ // 401 is a rejected or expired ticket, which the module also reports as
+ // PveSessionExpiredException; 403 is a privilege the ticket does not carry.
+ case HttpStatusCode.Unauthorized:
+ return PveErrorKind.AuthenticationError;
+
+ case HttpStatusCode.Forbidden:
+ return PveErrorKind.PermissionDenied;
+
+ case HttpStatusCode.NotFound:
+ return PveErrorKind.ObjectNotFound;
+
+ case HttpStatusCode.RequestTimeout:
+ case HttpStatusCode.GatewayTimeout:
+ return PveErrorKind.OperationTimeout;
+
+ // PveHttpClient reports a failed connection as 503, so 503 is a reachability
+ // failure here and not the server's own "try again later".
+ case HttpStatusCode.ServiceUnavailable:
+ return PveErrorKind.ConnectionError;
+ }
+
+ var code = (int)status;
+ if (code >= 500 && code <= 599) return PveErrorKind.ResourceUnavailable;
+ return PveErrorKind.InvalidOperation;
+ }
+
+ private static string ApiErrorId(PveApiException exception)
+ {
+ var status = ((int)exception.StatusCode).ToString(CultureInfo.InvariantCulture);
+ return string.IsNullOrWhiteSpace(exception.Resource)
+ ? $"{ApiErrorIdPrefix}.{status}"
+ : $"{ApiErrorIdPrefix}.{status}.{exception.Resource}";
+ }
+
+ private static object? NullIfBlank(string? value)
+ => string.IsNullOrWhiteSpace(value) ? null : value;
+ }
+}
diff --git a/src/PSProxmoxVE/Cmdlets/Backup/GetPveBackupInfoCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Backup/GetPveBackupInfoCmdlet.cs
index a1e4835..99d68a9 100644
--- a/src/PSProxmoxVE/Cmdlets/Backup/GetPveBackupInfoCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Backup/GetPveBackupInfoCmdlet.cs
@@ -15,7 +15,7 @@ namespace PSProxmoxVE.Cmdlets.Backup
[OutputType(typeof(PSObject))]
public sealed class GetPveBackupInfoCmdlet : PveCmdletBase
{
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "Backup compliance info", 7, 0);
diff --git a/src/PSProxmoxVE/Cmdlets/Backup/GetPveBackupJobCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Backup/GetPveBackupJobCmdlet.cs
index 183e8b1..c14d4ae 100644
--- a/src/PSProxmoxVE/Cmdlets/Backup/GetPveBackupJobCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Backup/GetPveBackupJobCmdlet.cs
@@ -21,7 +21,7 @@ namespace PSProxmoxVE.Cmdlets.Backup
[Parameter(Mandatory = false, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The backup job ID.")]
public string? Id { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new BackupService();
diff --git a/src/PSProxmoxVE/Cmdlets/Backup/NewPveBackupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Backup/NewPveBackupCmdlet.cs
index 50c98b3..3c9cb1a 100644
--- a/src/PSProxmoxVE/Cmdlets/Backup/NewPveBackupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Backup/NewPveBackupCmdlet.cs
@@ -63,7 +63,7 @@ namespace PSProxmoxVE.Cmdlets.Backup
[Parameter(Mandatory = false, HelpMessage = "Timeout in seconds for -Wait (default 3600).")]
public int Timeout { get; set; } = 3600;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "New-PveBackup"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Backup/NewPveBackupJobCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Backup/NewPveBackupJobCmdlet.cs
index 5daf7c5..dca3929 100644
--- a/src/PSProxmoxVE/Cmdlets/Backup/NewPveBackupJobCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Backup/NewPveBackupJobCmdlet.cs
@@ -91,7 +91,7 @@ namespace PSProxmoxVE.Cmdlets.Backup
[Parameter(Mandatory = false, HelpMessage = "Prune-backups configuration string.")]
public string? PruneBackups { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess("cluster backup configuration", "New-PveBackupJob"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Backup/RemovePveBackupJobCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Backup/RemovePveBackupJobCmdlet.cs
index 4a93da0..85acfe6 100644
--- a/src/PSProxmoxVE/Cmdlets/Backup/RemovePveBackupJobCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Backup/RemovePveBackupJobCmdlet.cs
@@ -22,7 +22,7 @@ namespace PSProxmoxVE.Cmdlets.Backup
[Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The backup job ID.")]
public string Id { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"backup job '{Id}'", "Remove-PveBackupJob"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Backup/SetPveBackupJobCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Backup/SetPveBackupJobCmdlet.cs
index 0d710d1..2bacf7b 100644
--- a/src/PSProxmoxVE/Cmdlets/Backup/SetPveBackupJobCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Backup/SetPveBackupJobCmdlet.cs
@@ -96,7 +96,7 @@ namespace PSProxmoxVE.Cmdlets.Backup
[Parameter(Mandatory = false, HelpMessage = "Prune-backups configuration string.")]
public string? PruneBackups { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"backup job '{Id}'", "Set-PveBackupJob"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/CloudInit/GetPveCloudInitConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/CloudInit/GetPveCloudInitConfigCmdlet.cs
index 7d74299..a217351 100644
--- a/src/PSProxmoxVE/Cmdlets/CloudInit/GetPveCloudInitConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/CloudInit/GetPveCloudInitConfigCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.CloudInit
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "Cloud-Init management", 7, 2);
diff --git a/src/PSProxmoxVE/Cmdlets/CloudInit/InvokePveCloudInitRegenerateCmdlet.cs b/src/PSProxmoxVE/Cmdlets/CloudInit/InvokePveCloudInitRegenerateCmdlet.cs
index 6a6da6b..e511d1c 100644
--- a/src/PSProxmoxVE/Cmdlets/CloudInit/InvokePveCloudInitRegenerateCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/CloudInit/InvokePveCloudInitRegenerateCmdlet.cs
@@ -30,7 +30,7 @@ namespace PSProxmoxVE.Cmdlets.CloudInit
[Parameter(HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on {Node}", "Regenerate PVE Cloud-Init Drive"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/CloudInit/SetPveCloudInitConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/CloudInit/SetPveCloudInitConfigCmdlet.cs
index 889880f..0e3482e 100644
--- a/src/PSProxmoxVE/Cmdlets/CloudInit/SetPveCloudInitConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/CloudInit/SetPveCloudInitConfigCmdlet.cs
@@ -65,7 +65,7 @@ namespace PSProxmoxVE.Cmdlets.CloudInit
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "Cloud-Init management", 7, 2);
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/AddPveClusterConfigNodeCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/AddPveClusterConfigNodeCmdlet.cs
index d073237..08d1b60 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/AddPveClusterConfigNodeCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/AddPveClusterConfigNodeCmdlet.cs
@@ -51,7 +51,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"node '{Node}'", "Add to cluster configuration"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/AddPveClusterMemberCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/AddPveClusterMemberCmdlet.cs
index a8735b6..25fe5fc 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/AddPveClusterMemberCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/AddPveClusterMemberCmdlet.cs
@@ -61,7 +61,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
private const int ReauthMaxAttempts = 10;
private const int ReauthDelayMs = 3000;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"this node to cluster via '{Hostname}'", "Join cluster"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterConfigCmdlet.cs
index 63daee8..21e0c6f 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterConfigCmdlet.cs
@@ -15,7 +15,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[OutputType(typeof(Dictionary))]
public sealed class GetPveClusterConfigCmdlet : PveCmdletBase
{
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new ClusterConfigService();
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterConfigNodeCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterConfigNodeCmdlet.cs
index b89be61..0de32c2 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterConfigNodeCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterConfigNodeCmdlet.cs
@@ -15,7 +15,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[OutputType(typeof(PveClusterConfigNode))]
public sealed class GetPveClusterConfigNodeCmdlet : PveCmdletBase
{
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new ClusterConfigService();
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterJoinInfoCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterJoinInfoCmdlet.cs
index a4a1dcb..6cca588 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterJoinInfoCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterJoinInfoCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[Parameter(Mandatory = false, Position = 0, HelpMessage = "Node to get join info for (defaults to current).")]
public string? Node { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new ClusterConfigService();
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterNextIdCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterNextIdCmdlet.cs
index 413da3f..98eac68 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterNextIdCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterNextIdCmdlet.cs
@@ -19,7 +19,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[ValidateRange(100, 999999999)]
public int? VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new ClusterConfigService();
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterOptionCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterOptionCmdlet.cs
index 66e4f48..94e20e5 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterOptionCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterOptionCmdlet.cs
@@ -15,7 +15,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[OutputType(typeof(PveClusterOptions))]
public sealed class GetPveClusterOptionCmdlet : PveCmdletBase
{
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new ClusterConfigService();
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterResourceCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterResourceCmdlet.cs
index f2ef8ff..b1a657e 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterResourceCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterResourceCmdlet.cs
@@ -29,7 +29,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[Parameter(Mandatory = false, HelpMessage = "Filter results to a specific node name.")]
public string? Node { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new ClusterService();
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterStatusCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterStatusCmdlet.cs
index c9dbb7a..b5c3663 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterStatusCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/GetPveClusterStatusCmdlet.cs
@@ -15,7 +15,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[OutputType(typeof(PveClusterStatus))]
public sealed class GetPveClusterStatusCmdlet : PveCmdletBase
{
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new ClusterService();
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/NewPveClusterCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/NewPveClusterCmdlet.cs
index 4a485a9..35c2b86 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/NewPveClusterCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/NewPveClusterCmdlet.cs
@@ -46,7 +46,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"cluster '{ClusterName}'", "Create new cluster"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/RemovePveClusterConfigNodeCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/RemovePveClusterConfigNodeCmdlet.cs
index 675f86e..f887e9f 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/RemovePveClusterConfigNodeCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/RemovePveClusterConfigNodeCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[Parameter(Mandatory = true, Position = 0, HelpMessage = "The cluster node name to remove.")]
public string Node { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"node '{Node}'", "Remove from cluster configuration"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Cluster/SetPveClusterOptionCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Cluster/SetPveClusterOptionCmdlet.cs
index 5d47e7b..405a263 100644
--- a/src/PSProxmoxVE/Cmdlets/Cluster/SetPveClusterOptionCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Cluster/SetPveClusterOptionCmdlet.cs
@@ -65,7 +65,7 @@ namespace PSProxmoxVE.Cmdlets.Cluster
[Parameter(Mandatory = false, HelpMessage = "Comma-separated list of settings to delete/reset.")]
public string? Delete { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess("cluster options", "Set"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Connection/DisconnectPveServerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Connection/DisconnectPveServerCmdlet.cs
index b31af64..1b9185b 100644
--- a/src/PSProxmoxVE/Cmdlets/Connection/DisconnectPveServerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Connection/DisconnectPveServerCmdlet.cs
@@ -16,7 +16,7 @@ namespace PSProxmoxVE.Cmdlets.Connection
[Alias("dpve")]
public sealed class DisconnectPveServerCmdlet : PveCmdletBase
{
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
bool explicitSessionSupplied = MyInvocation.BoundParameters.ContainsKey(nameof(Session));
var sessionToDisconnect = explicitSessionSupplied ? Session : ModuleState.ActiveSession;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/CopyPveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/CopyPveContainerCmdlet.cs
index 54f2394..1bece33 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/CopyPveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/CopyPveContainerCmdlet.cs
@@ -70,7 +70,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var target = TargetNode ?? SourceNode;
if (!ShouldProcess($"Container {VmId} on node '{SourceNode}' to new container on node '{target}'", "Copy-PveContainer"))
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerCmdlet.cs
index 6c7e5b4..a2808ea 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerCmdlet.cs
@@ -52,7 +52,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Filter by tag.")]
public string? Tag { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerConfigCmdlet.cs
index de3d263..44b4c83 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerConfigCmdlet.cs
@@ -30,7 +30,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var containerService = new ContainerService();
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerInterfaceCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerInterfaceCmdlet.cs
index 965f4b0..090122a 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerInterfaceCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerInterfaceCmdlet.cs
@@ -24,7 +24,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "Container interface listing", 8, 1);
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerSnapshotCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerSnapshotCmdlet.cs
index d8cf495..5a1a8a8 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerSnapshotCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/GetPveContainerSnapshotCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Filter by snapshot name.")]
public string? Name { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/MovePveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/MovePveContainerCmdlet.cs
index f7ce0f0..26f3675 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/MovePveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/MovePveContainerCmdlet.cs
@@ -40,7 +40,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} from node '{Node}' to node '{TargetNode}'", "Move-PveContainer"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/MovePveContainerVolumeCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/MovePveContainerVolumeCmdlet.cs
index 3ed2ec3..1f4b455 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/MovePveContainerVolumeCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/MovePveContainerVolumeCmdlet.cs
@@ -53,7 +53,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Volume '{Volume}' on container {VmId} (node '{Node}') to storage '{Storage}'", "Move-PveContainerVolume"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerCmdlet.cs
index aef0360..f14fc30 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerCmdlet.cs
@@ -125,7 +125,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
// Validate -RootFsSize before ShouldProcess so typos like "512M" are rejected
// even with -WhatIf, and so the error is raised regardless of whether
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerSnapshotCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerSnapshotCmdlet.cs
index 433eb2c..233f115 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerSnapshotCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerSnapshotCmdlet.cs
@@ -36,7 +36,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on {Node}", $"Create snapshot '{Name}'"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerTemplateCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerTemplateCmdlet.cs
index 5c60e6c..0abdf94 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerTemplateCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/NewPveContainerTemplateCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on node '{Node}'", "New-PveContainerTemplate"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/RemovePveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/RemovePveContainerCmdlet.cs
index e45a4de..a8b120d 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/RemovePveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/RemovePveContainerCmdlet.cs
@@ -54,7 +54,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on node '{Node}'", "Remove-PveContainer"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/RemovePveContainerSnapshotCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/RemovePveContainerSnapshotCmdlet.cs
index 68f9e3e..b736298 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/RemovePveContainerSnapshotCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/RemovePveContainerSnapshotCmdlet.cs
@@ -34,7 +34,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/ResizePveContainerDiskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/ResizePveContainerDiskCmdlet.cs
index 0571b55..a545f83 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/ResizePveContainerDiskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/ResizePveContainerDiskCmdlet.cs
@@ -44,7 +44,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = true, HelpMessage = "New disk size (e.g. 50G or +5G to grow).")]
public string Size { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Disk '{Disk}' on container {VmId} (node '{Node}') to size '{Size}'", "Resize-PveContainerDisk"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/RestartPveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/RestartPveContainerCmdlet.cs
index 48a5040..3970f81 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/RestartPveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/RestartPveContainerCmdlet.cs
@@ -46,7 +46,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on node '{Node}'", "Restart-PveContainer"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/RestorePveContainerSnapshotCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/RestorePveContainerSnapshotCmdlet.cs
index 9873027..30ea5e0 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/RestorePveContainerSnapshotCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/RestorePveContainerSnapshotCmdlet.cs
@@ -37,7 +37,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/ResumePveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/ResumePveContainerCmdlet.cs
index ccc814c..52b1aa4 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/ResumePveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/ResumePveContainerCmdlet.cs
@@ -39,7 +39,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on node '{Node}'", "Resume-PveContainer"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/SetPveContainerConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/SetPveContainerConfigCmdlet.cs
index cfdb66a..7cc6887 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/SetPveContainerConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/SetPveContainerConfigCmdlet.cs
@@ -99,7 +99,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[Parameter(Mandatory = false, HelpMessage = "Comma-separated config keys to delete.")]
public string? Delete { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on node '{Node}'", "Set-PveContainerConfig"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/StartPveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/StartPveContainerCmdlet.cs
index 86bdf1d..277e671 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/StartPveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/StartPveContainerCmdlet.cs
@@ -41,7 +41,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on node '{Node}'", "Start-PveContainer"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/StopPveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/StopPveContainerCmdlet.cs
index 1729594..facb539 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/StopPveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/StopPveContainerCmdlet.cs
@@ -43,7 +43,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on node '{Node}'", "Stop-PveContainer"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Containers/SuspendPveContainerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Containers/SuspendPveContainerCmdlet.cs
index 97e74da..dba35bc 100644
--- a/src/PSProxmoxVE/Cmdlets/Containers/SuspendPveContainerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Containers/SuspendPveContainerCmdlet.cs
@@ -39,7 +39,7 @@ namespace PSProxmoxVE.Cmdlets.Containers
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Container {VmId} on node '{Node}'", "Suspend-PveContainer"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallAliasCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallAliasCmdlet.cs
index 5812cfe..9db2c8c 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallAliasCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallAliasCmdlet.cs
@@ -24,7 +24,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Optional alias name to filter by.")]
public string? Name { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallGroupCmdlet.cs
index cf65456..8d8283c 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallGroupCmdlet.cs
@@ -12,7 +12,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, Position = 0, HelpMessage = "The security group name. If specified, returns rules within the group.")]
public string? Group { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new FirewallService();
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallIpSetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallIpSetCmdlet.cs
index ad92a53..2d6105f 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallIpSetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallIpSetCmdlet.cs
@@ -24,7 +24,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Optional IP set name to filter by.")]
public string? Name { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallIpSetEntryCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallIpSetEntryCmdlet.cs
index 6b7d860..c9879d8 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallIpSetEntryCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallIpSetEntryCmdlet.cs
@@ -22,7 +22,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = true, HelpMessage = "The IP set name.")]
public string Name { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallOptionsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallOptionsCmdlet.cs
index ea7b238..fde5e07 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallOptionsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallOptionsCmdlet.cs
@@ -19,7 +19,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[ValidateRange(100, 999999999)]
public int? VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallRefCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallRefCmdlet.cs
index 55ab7b0..1ee269c 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallRefCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallRefCmdlet.cs
@@ -22,7 +22,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Optional type filter for references.")]
public string? Type { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallRuleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallRuleCmdlet.cs
index 0d822c5..1405495 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallRuleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/GetPveFirewallRuleCmdlet.cs
@@ -27,7 +27,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Optional rule position to filter by.")]
public int? Position { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, Group, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallAliasCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallAliasCmdlet.cs
index 220baac..6d91108 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallAliasCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallAliasCmdlet.cs
@@ -28,7 +28,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Optional comment for the alias.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallGroupCmdlet.cs
index 47d76ff..cab42f8 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallGroupCmdlet.cs
@@ -15,7 +15,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Optional comment for the security group.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"firewall security group '{Group}'", "Create"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallIpSetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallIpSetCmdlet.cs
index 0556ff5..a6c639f 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallIpSetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallIpSetCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Optional comment for the IP set.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallIpSetEntryCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallIpSetEntryCmdlet.cs
index 0e0f20e..ef50d54 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallIpSetEntryCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallIpSetEntryCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Optional comment for the entry.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallRuleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallRuleCmdlet.cs
index 3d321f1..6348be7 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallRuleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/NewPveFirewallRuleCmdlet.cs
@@ -62,7 +62,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Network interface.")]
public string? Iface { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, Group, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallAliasCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallAliasCmdlet.cs
index 5591ad2..c6f119d 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallAliasCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallAliasCmdlet.cs
@@ -22,7 +22,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = true, HelpMessage = "The alias name to remove.")]
public string Name { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallGroupCmdlet.cs
index 9b0413f..1e396ac 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallGroupCmdlet.cs
@@ -12,7 +12,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = true, Position = 0, HelpMessage = "The security group name to remove.")]
public string Group { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"firewall security group '{Group}'", "Remove"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallIpSetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallIpSetCmdlet.cs
index e2af61e..45e4d75 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallIpSetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallIpSetCmdlet.cs
@@ -22,7 +22,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = true, HelpMessage = "The IP set name to remove.")]
public string Name { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallIpSetEntryCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallIpSetEntryCmdlet.cs
index a2e95a9..17cfbde 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallIpSetEntryCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallIpSetEntryCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = true, HelpMessage = "The CIDR network address to remove.")]
public string Cidr { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallRuleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallRuleCmdlet.cs
index 3c289e4..ce76d37 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallRuleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/RemovePveFirewallRuleCmdlet.cs
@@ -26,7 +26,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = true, HelpMessage = "The rule position to remove.")]
public int Position { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, Group, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallAliasCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallAliasCmdlet.cs
index 582f79c..d9e1413 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallAliasCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallAliasCmdlet.cs
@@ -28,7 +28,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Updated comment for the alias.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallIpSetEntryCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallIpSetEntryCmdlet.cs
index 504e15b..8afa2dc 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallIpSetEntryCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallIpSetEntryCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Updated comment for the entry.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallOptionsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallOptionsCmdlet.cs
index 947ad9d..617ed70 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallOptionsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallOptionsCmdlet.cs
@@ -49,7 +49,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Enable IP filter.")]
public SwitchParameter IpFilter { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, null, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallRuleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallRuleCmdlet.cs
index de2e880..45374d7 100644
--- a/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallRuleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Firewall/SetPveFirewallRuleCmdlet.cs
@@ -65,7 +65,7 @@ namespace PSProxmoxVE.Cmdlets.Firewall
[Parameter(Mandatory = false, HelpMessage = "Network interface.")]
public string? Iface { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var level = Level;
if (!FirewallScope.TryValidate(level, Node, VmId, Group, out var scopeErrorId, out var scopeMessage))
diff --git a/src/PSProxmoxVE/Cmdlets/HA/GetPveHaGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/GetPveHaGroupCmdlet.cs
index eab7fab..c981feb 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/GetPveHaGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/GetPveHaGroupCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.HA
HelpMessage = "HA group name. Omit to list all groups.")]
public string? Group { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new HaService();
diff --git a/src/PSProxmoxVE/Cmdlets/HA/GetPveHaResourceCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/GetPveHaResourceCmdlet.cs
index 9318125..6f35531 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/GetPveHaResourceCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/GetPveHaResourceCmdlet.cs
@@ -21,7 +21,7 @@ namespace PSProxmoxVE.Cmdlets.HA
HelpMessage = "Service ID (e.g. 'vm:100', 'ct:200'). Omit to list all.")]
public string? Sid { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new HaService();
diff --git a/src/PSProxmoxVE/Cmdlets/HA/GetPveHaRuleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/GetPveHaRuleCmdlet.cs
index a7395ed..d188bfb 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/GetPveHaRuleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/GetPveHaRuleCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.HA
HelpMessage = "HA rule ID. Omit to list all rules.")]
public string? Rule { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "HA Rules", 9, 0);
diff --git a/src/PSProxmoxVE/Cmdlets/HA/GetPveHaStatusCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/GetPveHaStatusCmdlet.cs
index 586b302..3e30f51 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/GetPveHaStatusCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/GetPveHaStatusCmdlet.cs
@@ -15,7 +15,7 @@ namespace PSProxmoxVE.Cmdlets.HA
[OutputType(typeof(PveHaStatus))]
public sealed class GetPveHaStatusCmdlet : PveCmdletBase
{
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new HaService();
diff --git a/src/PSProxmoxVE/Cmdlets/HA/MovePveHaResourceCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/MovePveHaResourceCmdlet.cs
index 413fb39..7f4bff7 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/MovePveHaResourceCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/MovePveHaResourceCmdlet.cs
@@ -30,7 +30,7 @@ namespace PSProxmoxVE.Cmdlets.HA
[ValidateSet("Migrate", "Relocate")]
public string Mode { get; set; } = "Migrate";
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"HA resource '{Sid}' to node '{Node}'", $"{Mode}"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/HA/NewPveHaGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/NewPveHaGroupCmdlet.cs
index 21dd425..5dbde1c 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/NewPveHaGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/NewPveHaGroupCmdlet.cs
@@ -35,7 +35,7 @@ namespace PSProxmoxVE.Cmdlets.HA
[Parameter(Mandatory = false, HelpMessage = "Description or comment.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"HA group '{Group}'", "Create"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/HA/NewPveHaResourceCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/NewPveHaResourceCmdlet.cs
index a20781d..ae8f7f9 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/NewPveHaResourceCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/NewPveHaResourceCmdlet.cs
@@ -42,7 +42,7 @@ namespace PSProxmoxVE.Cmdlets.HA
[Parameter(Mandatory = false, HelpMessage = "Description or comment.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"HA resource '{Sid}'", "Create"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/HA/NewPveHaRuleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/NewPveHaRuleCmdlet.cs
index ad53281..221d290 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/NewPveHaRuleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/NewPveHaRuleCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.HA
[Parameter(Mandatory = false, HelpMessage = "Additional rule properties.")]
public System.Collections.Hashtable? Properties { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "HA Rules", 9, 0);
diff --git a/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaGroupCmdlet.cs
index 121b70b..d028993 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaGroupCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.HA
HelpMessage = "HA group name to delete.")]
public string Group { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"HA group '{Group}'", "Delete"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaResourceCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaResourceCmdlet.cs
index c6897de..53b3e4b 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaResourceCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaResourceCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.HA
HelpMessage = "Service ID (e.g. 'vm:100', 'ct:200').")]
public string Sid { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"HA resource '{Sid}'", "Remove from HA management"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaRuleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaRuleCmdlet.cs
index c722297..b1fbe2f 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaRuleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/RemovePveHaRuleCmdlet.cs
@@ -19,7 +19,7 @@ namespace PSProxmoxVE.Cmdlets.HA
HelpMessage = "HA rule ID to delete.")]
public string Rule { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "HA Rules", 9, 0);
diff --git a/src/PSProxmoxVE/Cmdlets/HA/SetPveHaGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/SetPveHaGroupCmdlet.cs
index 69ac363..e79fa52 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/SetPveHaGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/SetPveHaGroupCmdlet.cs
@@ -37,7 +37,7 @@ namespace PSProxmoxVE.Cmdlets.HA
[Parameter(Mandatory = false, HelpMessage = "Description or comment.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"HA group '{Group}'", "Update"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/HA/SetPveHaResourceCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/SetPveHaResourceCmdlet.cs
index 9c3b0a5..df804b2 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/SetPveHaResourceCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/SetPveHaResourceCmdlet.cs
@@ -43,7 +43,7 @@ namespace PSProxmoxVE.Cmdlets.HA
[Parameter(Mandatory = false, HelpMessage = "Description or comment.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"HA resource '{Sid}'", "Update"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/HA/SetPveHaRuleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/HA/SetPveHaRuleCmdlet.cs
index 4f6f181..f4b9658 100644
--- a/src/PSProxmoxVE/Cmdlets/HA/SetPveHaRuleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/HA/SetPveHaRuleCmdlet.cs
@@ -36,7 +36,7 @@ namespace PSProxmoxVE.Cmdlets.HA
[Parameter(Mandatory = false, HelpMessage = "Additional rule properties.")]
public System.Collections.Hashtable? Properties { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "HA Rules", 9, 0);
diff --git a/src/PSProxmoxVE/Cmdlets/Network/GetPveNetworkCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/GetPveNetworkCmdlet.cs
index 4ad82a2..2c5a720 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/GetPveNetworkCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/GetPveNetworkCmdlet.cs
@@ -32,7 +32,7 @@ namespace PSProxmoxVE.Cmdlets.Network
"OVSPort", "OVSIntPort", "any_bridge", "any_local_bridge", IgnoreCase = true)]
public string? Type { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnControllerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnControllerCmdlet.cs
index 12b689f..668adda 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnControllerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnControllerCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, Position = 0, HelpMessage = "Filter by controller identifier.")]
public string? Controller { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "SDN IPAM/DNS/Controller", 6, 2, 8, 1);
diff --git a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnDnsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnDnsCmdlet.cs
index 0404e3d..6e03c94 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnDnsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnDnsCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, Position = 0, HelpMessage = "Filter by DNS plugin identifier.")]
public string? Dns { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "SDN IPAM/DNS/Controller", 6, 2, 8, 1);
diff --git a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnIpamCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnIpamCmdlet.cs
index eaef110..0b566f6 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnIpamCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnIpamCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, Position = 0, HelpMessage = "Filter by IPAM plugin identifier.")]
public string? Ipam { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "SDN IPAM/DNS/Controller", 6, 2, 8, 1);
diff --git a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnSubnetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnSubnetCmdlet.cs
index 6186720..c43a242 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnSubnetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnSubnetCmdlet.cs
@@ -23,7 +23,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "Filter by subnet CIDR (e.g. 10.0.0.0/24).")]
public string? Subnet { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "SDN", 6, 2, 8, 0);
diff --git a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnVnetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnVnetCmdlet.cs
index ebc9995..c018b59 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnVnetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnVnetCmdlet.cs
@@ -23,7 +23,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "The SDN VNet name.")]
public string? Vnet { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "SDN", 6, 2, 8, 0);
diff --git a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnZoneCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnZoneCmdlet.cs
index 625080d..2b7bcb8 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnZoneCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/GetPveSdnZoneCmdlet.cs
@@ -18,7 +18,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, Position = 0, HelpMessage = "The SDN zone name.")]
public string? Zone { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
RequireVersion(session, "SDN", 6, 2, 8, 0);
diff --git a/src/PSProxmoxVE/Cmdlets/Network/InvokePveNetworkApplyCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/InvokePveNetworkApplyCmdlet.cs
index 60ce305..44d2203 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/InvokePveNetworkApplyCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/InvokePveNetworkApplyCmdlet.cs
@@ -24,7 +24,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Node, "Apply PVE Network Configuration"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/InvokePveSdnApplyCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/InvokePveSdnApplyCmdlet.cs
index 981e2cb..07c956d 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/InvokePveSdnApplyCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/InvokePveSdnApplyCmdlet.cs
@@ -14,7 +14,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[OutputType(typeof(void))]
public sealed class InvokePveSdnApplyCmdlet : PveCmdletBase
{
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess("SDN configuration", "Apply pending changes"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/NewPveNetworkCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/NewPveNetworkCmdlet.cs
index 2696158..2a05cbe 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/NewPveNetworkCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/NewPveNetworkCmdlet.cs
@@ -69,7 +69,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "Comments or notes for this interface.")]
public string? Comments { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"{Iface} on {Node}", "Create PVE Network Iface"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnControllerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnControllerCmdlet.cs
index 76f4cf9..12aab7a 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnControllerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnControllerCmdlet.cs
@@ -36,7 +36,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "The node this controller is configured on.")]
public string? Node { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"SDN Controller '{Controller}'", "Create PVE SDN Controller"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnDnsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnDnsCmdlet.cs
index 143f73d..b7c7579 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnDnsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnDnsCmdlet.cs
@@ -40,7 +40,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "The TTL (time-to-live) for DNS records.")]
public int? Ttl { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"SDN DNS '{Dns}'", "Create PVE SDN DNS"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnIpamCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnIpamCmdlet.cs
index 9d2fd75..c74d9b1 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnIpamCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnIpamCmdlet.cs
@@ -36,7 +36,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "The configuration section identifier.")]
public int? Section { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"SDN IPAM '{Ipam}'", "Create PVE SDN IPAM"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnSubnetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnSubnetCmdlet.cs
index aa4bbd7..be52ccf 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnSubnetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnSubnetCmdlet.cs
@@ -40,7 +40,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "DHCP range for automatic IP assignment.")]
public string? DhcpRange { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Subnet {Subnet} on VNet {Vnet}", "Create PVE SDN Subnet"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnVnetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnVnetCmdlet.cs
index df17a9d..b5f9e31 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnVnetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnVnetCmdlet.cs
@@ -36,7 +36,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "Enable VLAN awareness on this VNet.")]
public SwitchParameter VlanAware { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"{Vnet} in zone {Zone}", "Create PVE SDN VNet"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnZoneCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnZoneCmdlet.cs
index bc1429c..7108bdb 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnZoneCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/NewPveSdnZoneCmdlet.cs
@@ -52,7 +52,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "IPAM plugin to use.")]
public string? Ipam { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Zone, "Create PVE SDN Zone"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/RemovePveNetworkCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/RemovePveNetworkCmdlet.cs
index 0b484d1..8db2b7b 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/RemovePveNetworkCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/RemovePveNetworkCmdlet.cs
@@ -22,7 +22,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = true, Position = 1, HelpMessage = "The network interface name.")]
public string Iface { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"{Iface} on {Node}", "Remove PVE Network Iface"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnControllerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnControllerCmdlet.cs
index 0705468..a30b416 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnControllerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnControllerCmdlet.cs
@@ -18,7 +18,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The controller identifier to remove.")]
public string Controller { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"SDN Controller '{Controller}'", "Remove PVE SDN Controller"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnDnsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnDnsCmdlet.cs
index 33233be..7e12d74 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnDnsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnDnsCmdlet.cs
@@ -18,7 +18,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The DNS plugin identifier to remove.")]
public string Dns { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"SDN DNS '{Dns}'", "Remove PVE SDN DNS"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnIpamCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnIpamCmdlet.cs
index f56a766..df99ea5 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnIpamCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnIpamCmdlet.cs
@@ -18,7 +18,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The IPAM plugin identifier to remove.")]
public string Ipam { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"SDN IPAM '{Ipam}'", "Remove PVE SDN IPAM"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnSubnetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnSubnetCmdlet.cs
index 226b28e..1a3ca49 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnSubnetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnSubnetCmdlet.cs
@@ -23,7 +23,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = true, Position = 1, ValueFromPipelineByPropertyName = true, HelpMessage = "The subnet CIDR to remove.")]
public string Subnet { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Subnet {Subnet} on VNet {Vnet}", "Remove PVE SDN Subnet"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnVnetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnVnetCmdlet.cs
index 82092b8..e85194c 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnVnetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnVnetCmdlet.cs
@@ -18,7 +18,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[ValidatePattern(@"\A[A-Za-z0-9][A-Za-z0-9._-]*\z")]
public string Vnet { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Vnet, "Remove PVE SDN VNet"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnZoneCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnZoneCmdlet.cs
index 785277c..42bd472 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnZoneCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/RemovePveSdnZoneCmdlet.cs
@@ -19,7 +19,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[ValidatePattern(@"\A[A-Za-z0-9][A-Za-z0-9._-]*\z")]
public string Zone { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Zone, "Remove PVE SDN Zone"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/SetPveNetworkCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/SetPveNetworkCmdlet.cs
index 097c90c..b3c20cb 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/SetPveNetworkCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/SetPveNetworkCmdlet.cs
@@ -75,7 +75,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "Comments or notes for this interface.")]
public string? Comments { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"{Iface} on {Node}", "Set PVE Network Iface"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnControllerCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnControllerCmdlet.cs
index 41b905b..de6ef5b 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnControllerCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnControllerCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "The node this controller is configured on.")]
public string? Node { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Controller, "Set PVE SDN Controller"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnDnsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnDnsCmdlet.cs
index d7d06e4..ebe5c1f 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnDnsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnDnsCmdlet.cs
@@ -35,7 +35,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "The TTL for DNS records.")]
public int? Ttl { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Dns, "Set PVE SDN DNS"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnIpamCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnIpamCmdlet.cs
index a5ce42f..75cd420 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnIpamCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnIpamCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "The section ID in the IPAM server.")]
public int? Section { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Ipam, "Set PVE SDN IPAM"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnSubnetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnSubnetCmdlet.cs
index 4e15119..40af57e 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnSubnetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnSubnetCmdlet.cs
@@ -39,7 +39,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "DHCP range for this subnet.")]
public string? DhcpRange { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Subnet, "Set PVE SDN Subnet"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnVnetCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnVnetCmdlet.cs
index 1c5ca21..44c390d 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnVnetCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnVnetCmdlet.cs
@@ -35,7 +35,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "Enable VLAN-aware bridging.")]
public SwitchParameter VlanAware { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Vnet, "Set PVE SDN VNet"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnZoneCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnZoneCmdlet.cs
index 74a1469..79f7429 100644
--- a/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnZoneCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Network/SetPveSdnZoneCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Network
[Parameter(Mandatory = false, HelpMessage = "DNS zone name for registration.")]
public string? DnsZone { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Zone, "Set PVE SDN Zone"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeCmdlet.cs
index 5953116..89345ef 100644
--- a/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeCmdlet.cs
@@ -22,7 +22,7 @@ namespace PSProxmoxVE.Cmdlets.Nodes
[ValidateNotNullOrEmpty]
public string? Name { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeConfigCmdlet.cs
index 856d05b..89be9ef 100644
--- a/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeConfigCmdlet.cs
@@ -19,7 +19,7 @@ namespace PSProxmoxVE.Cmdlets.Nodes
[ValidateNotNullOrEmpty]
public string Node { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new NodeService();
diff --git a/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeDnsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeDnsCmdlet.cs
index f5857d8..a3d2ba3 100644
--- a/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeDnsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeDnsCmdlet.cs
@@ -19,7 +19,7 @@ namespace PSProxmoxVE.Cmdlets.Nodes
[ValidateNotNullOrEmpty]
public string Node { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new NodeService();
diff --git a/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeStatusCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeStatusCmdlet.cs
index 7fc73d9..fc44a22 100644
--- a/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeStatusCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Nodes/GetPveNodeStatusCmdlet.cs
@@ -24,7 +24,7 @@ namespace PSProxmoxVE.Cmdlets.Nodes
[ValidateNotNullOrEmpty]
public string Node { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Nodes/SetPveNodeConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Nodes/SetPveNodeConfigCmdlet.cs
index 14961d4..09f04b8 100644
--- a/src/PSProxmoxVE/Cmdlets/Nodes/SetPveNodeConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Nodes/SetPveNodeConfigCmdlet.cs
@@ -28,7 +28,7 @@ namespace PSProxmoxVE.Cmdlets.Nodes
[Parameter(Mandatory = false, HelpMessage = "Wake-on-LAN configuration.")]
public string? Wakeonlan { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Node, "Set PVE Node Config"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Nodes/SetPveNodeDnsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Nodes/SetPveNodeDnsCmdlet.cs
index 05edd06..9b5e660 100644
--- a/src/PSProxmoxVE/Cmdlets/Nodes/SetPveNodeDnsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Nodes/SetPveNodeDnsCmdlet.cs
@@ -37,7 +37,7 @@ namespace PSProxmoxVE.Cmdlets.Nodes
[Parameter(Mandatory = false, HelpMessage = "Tertiary DNS server address.")]
public string? Dns3 { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Node, "Set PVE Node DNS"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Nodes/StartPveNodeVmsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Nodes/StartPveNodeVmsCmdlet.cs
index 35df044..80d584b 100644
--- a/src/PSProxmoxVE/Cmdlets/Nodes/StartPveNodeVmsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Nodes/StartPveNodeVmsCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Nodes
[Parameter(Mandatory = false, HelpMessage = "Comma-separated list of VM IDs to start.")]
public string? VmIds { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Node, "Start all VMs"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Nodes/StopPveNodeVmsCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Nodes/StopPveNodeVmsCmdlet.cs
index 6e32fc8..7b531a8 100644
--- a/src/PSProxmoxVE/Cmdlets/Nodes/StopPveNodeVmsCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Nodes/StopPveNodeVmsCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Nodes
[Parameter(Mandatory = false, HelpMessage = "Force stop VMs without waiting for graceful shutdown.")]
public SwitchParameter ForceStop { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Node, "Stop all VMs"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Pools/GetPvePoolCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Pools/GetPvePoolCmdlet.cs
index ddaf285..fdb36ec 100644
--- a/src/PSProxmoxVE/Cmdlets/Pools/GetPvePoolCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Pools/GetPvePoolCmdlet.cs
@@ -21,7 +21,7 @@ namespace PSProxmoxVE.Cmdlets.Pools
[Parameter(Mandatory = false, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The pool ID to retrieve.")]
public string? PoolId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new PoolService();
diff --git a/src/PSProxmoxVE/Cmdlets/Pools/NewPvePoolCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Pools/NewPvePoolCmdlet.cs
index a85f88a..f18812f 100644
--- a/src/PSProxmoxVE/Cmdlets/Pools/NewPvePoolCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Pools/NewPvePoolCmdlet.cs
@@ -26,7 +26,7 @@ namespace PSProxmoxVE.Cmdlets.Pools
[Parameter(Mandatory = false, HelpMessage = "An optional comment or description for the pool.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"pool '{PoolId}'", "New-PvePool"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Pools/RemovePvePoolCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Pools/RemovePvePoolCmdlet.cs
index 5f7fa99..559a772 100644
--- a/src/PSProxmoxVE/Cmdlets/Pools/RemovePvePoolCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Pools/RemovePvePoolCmdlet.cs
@@ -22,7 +22,7 @@ namespace PSProxmoxVE.Cmdlets.Pools
[Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The pool ID to remove.")]
public string PoolId { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"pool '{PoolId}'", "Remove-PvePool"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Pools/SetPvePoolCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Pools/SetPvePoolCmdlet.cs
index cbc5dfd..865d818 100644
--- a/src/PSProxmoxVE/Cmdlets/Pools/SetPvePoolCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Pools/SetPvePoolCmdlet.cs
@@ -39,7 +39,7 @@ namespace PSProxmoxVE.Cmdlets.Pools
[Parameter(Mandatory = false, HelpMessage = "Comma-separated list of members to remove.")]
public string? Delete { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"pool '{PoolId}'", "Set-PvePool"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/PveCmdletBase.cs b/src/PSProxmoxVE/Cmdlets/PveCmdletBase.cs
index 7e2fd63..ec14290 100644
--- a/src/PSProxmoxVE/Cmdlets/PveCmdletBase.cs
+++ b/src/PSProxmoxVE/Cmdlets/PveCmdletBase.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Management.Automation;
using PSProxmoxVE.Core.Authentication;
using PSProxmoxVE.Core.Client;
+using PSProxmoxVE.Core.Errors;
using PSProxmoxVE.Core.Exceptions;
using PSProxmoxVE.Core.Models.Vms;
using PSProxmoxVE.Core.Services;
@@ -23,6 +24,60 @@ namespace PSProxmoxVE.Cmdlets
[Parameter(Mandatory = false)]
public PveSession? Session { get; set; }
+ ///
+ /// Runs and reports any module exception that escapes it
+ /// as a mapped terminating error, so a 403, a 404 and an unreachable server are
+ /// distinguishable by $_.CategoryInfo and $_.FullyQualifiedErrorId.
+ ///
+ protected sealed override void ProcessRecord()
+ {
+ try
+ {
+ ProcessPveRecord();
+ }
+ catch (Exception ex) when (PveErrorMapper.IsRecognized(ex))
+ {
+ ThrowTerminatingError(ToPveErrorRecord(ex, null));
+ }
+ }
+
+ /// The cmdlet's per-record work. Overrides 's body.
+ protected abstract void ProcessPveRecord();
+
+ ///
+ /// Builds the for , classifying it
+ /// with .
+ ///
+ /// The failure to report.
+ ///
+ /// The object the failure is about. When null, the target is derived from the exception
+ /// (the API resource, or the task UPID).
+ ///
+ /// The error record to write or throw.
+ protected ErrorRecord ToPveErrorRecord(Exception exception, object? target)
+ {
+ var descriptor = PveErrorMapper.Describe(exception);
+ return new ErrorRecord(
+ exception,
+ descriptor.ErrorId,
+ ToErrorCategory(descriptor.Kind),
+ target ?? descriptor.Target);
+ }
+
+ private static ErrorCategory ToErrorCategory(PveErrorKind kind) => kind switch
+ {
+ PveErrorKind.PermissionDenied => ErrorCategory.PermissionDenied,
+ PveErrorKind.AuthenticationError => ErrorCategory.AuthenticationError,
+ PveErrorKind.ObjectNotFound => ErrorCategory.ObjectNotFound,
+ PveErrorKind.InvalidArgument => ErrorCategory.InvalidArgument,
+ PveErrorKind.OperationTimeout => ErrorCategory.OperationTimeout,
+ PveErrorKind.ConnectionError => ErrorCategory.ConnectionError,
+ PveErrorKind.ResourceUnavailable => ErrorCategory.ResourceUnavailable,
+ PveErrorKind.InvalidOperation => ErrorCategory.InvalidOperation,
+ PveErrorKind.OperationStopped => ErrorCategory.OperationStopped,
+ _ => ErrorCategory.NotSpecified,
+ };
+
///
/// Returns the session to use for this cmdlet.
/// Resolution order: -Session parameter → ModuleState.ActiveSession.
@@ -74,10 +129,8 @@ namespace PSProxmoxVE.Cmdlets
// Hard fail: endpoint does not exist
if (!version.IsAtLeast(introducedMajor, introducedMinor))
{
- ThrowTerminatingError(new ErrorRecord(
+ ThrowTerminatingError(ToPveErrorRecord(
new PveVersionException(introducedMajor, introducedMinor, version),
- "PveVersionTooOld",
- ErrorCategory.InvalidOperation,
null));
return;
}
diff --git a/src/PSProxmoxVE/Cmdlets/Snapshots/GetPveSnapshotCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Snapshots/GetPveSnapshotCmdlet.cs
index 6619870..aef1ff5 100644
--- a/src/PSProxmoxVE/Cmdlets/Snapshots/GetPveSnapshotCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Snapshots/GetPveSnapshotCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Snapshots
[Parameter(Mandatory = false, HelpMessage = "Filter by snapshot name.")]
public string? Name { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Snapshots/NewPveSnapshotCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Snapshots/NewPveSnapshotCmdlet.cs
index 6dc0345..9e34488 100644
--- a/src/PSProxmoxVE/Cmdlets/Snapshots/NewPveSnapshotCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Snapshots/NewPveSnapshotCmdlet.cs
@@ -40,7 +40,7 @@ namespace PSProxmoxVE.Cmdlets.Snapshots
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on {Node}", $"Create snapshot '{Name}'"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Snapshots/RemovePveSnapshotCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Snapshots/RemovePveSnapshotCmdlet.cs
index 1ed5146..a7d05fc 100644
--- a/src/PSProxmoxVE/Cmdlets/Snapshots/RemovePveSnapshotCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Snapshots/RemovePveSnapshotCmdlet.cs
@@ -34,7 +34,7 @@ namespace PSProxmoxVE.Cmdlets.Snapshots
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Snapshots/RestorePveSnapshotCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Snapshots/RestorePveSnapshotCmdlet.cs
index 480c168..6967f8a 100644
--- a/src/PSProxmoxVE/Cmdlets/Snapshots/RestorePveSnapshotCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Snapshots/RestorePveSnapshotCmdlet.cs
@@ -37,7 +37,7 @@ namespace PSProxmoxVE.Cmdlets.Snapshots
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageCmdlet.cs
index df2260e..2ee9e07 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageCmdlet.cs
@@ -37,7 +37,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[Parameter(Mandatory = false, HelpMessage = "Filter by content type (e.g. iso, backup).")]
public string? ContentType { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageContentCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageContentCmdlet.cs
index a0ee963..c4d10ef 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageContentCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageContentCmdlet.cs
@@ -29,7 +29,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[Parameter(Mandatory = false, HelpMessage = "Filter by content type (e.g. iso, vztmpl, backup).")]
public string? ContentType { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageStatusCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageStatusCmdlet.cs
index e05ea60..bb644ac 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageStatusCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/GetPveStorageStatusCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[ValidateNotNullOrEmpty]
public string Storage { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new StorageService();
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/InvokePveStorageDownloadCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/InvokePveStorageDownloadCmdlet.cs
index 0cc524a..43c0653 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/InvokePveStorageDownloadCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/InvokePveStorageDownloadCmdlet.cs
@@ -51,7 +51,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[ValidateRange(0, int.MaxValue)]
public int? TimeoutSeconds { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"{Node}/{Storage}/{Filename}", $"Download from {Url}"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/NewPveStorageCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/NewPveStorageCmdlet.cs
index 1ef8335..6ba2edc 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/NewPveStorageCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/NewPveStorageCmdlet.cs
@@ -89,7 +89,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
data[key] = value!;
}
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Storage, "Create PVE Storage"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/NewPveStorageDiskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/NewPveStorageDiskCmdlet.cs
index 99468da..ae3d1c3 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/NewPveStorageDiskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/NewPveStorageDiskCmdlet.cs
@@ -41,7 +41,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[ValidateSet("raw", "qcow2", "vmdk", IgnoreCase = true)]
public string? Format { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"{Filename} ({Size})", "New PVE Storage Disk"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/RemovePveStorageCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/RemovePveStorageCmdlet.cs
index 6e347cf..23a1630 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/RemovePveStorageCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/RemovePveStorageCmdlet.cs
@@ -21,7 +21,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[ValidatePattern(@"\A[A-Za-z0-9][A-Za-z0-9._-]*\z")]
public string Storage { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Storage, "Remove PVE Storage"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/RemovePveStorageContentCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/RemovePveStorageContentCmdlet.cs
index 79525d8..a9bef59 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/RemovePveStorageContentCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/RemovePveStorageContentCmdlet.cs
@@ -31,7 +31,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[ValidateNotNullOrEmpty]
public string Volume { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Volume, "Remove PVE Storage Content"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/SendPveFileCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/SendPveFileCmdlet.cs
index b4173bd..9d4349c 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/SendPveFileCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/SendPveFileCmdlet.cs
@@ -67,7 +67,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[ValidateRange(0, int.MaxValue)]
public int? TimeoutSeconds { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var fileName = System.IO.Path.GetFileName(Path);
if (!ShouldProcess($"{Node}/{Storage}/{fileName}", $"Upload file (content={ContentType})"))
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/SetPveStorageCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/SetPveStorageCmdlet.cs
index 19c3c67..14c7474 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/SetPveStorageCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/SetPveStorageCmdlet.cs
@@ -38,7 +38,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[Parameter(Mandatory = false, HelpMessage = "Additional configuration parameters as a hashtable.")]
public System.Collections.Hashtable? AdditionalConfig { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"storage '{Storage}'", "Set"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Storage/SetPveStorageContentCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Storage/SetPveStorageContentCmdlet.cs
index 5d8c71a..b8be510 100644
--- a/src/PSProxmoxVE/Cmdlets/Storage/SetPveStorageContentCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Storage/SetPveStorageContentCmdlet.cs
@@ -34,7 +34,7 @@ namespace PSProxmoxVE.Cmdlets.Storage
[Parameter(Mandatory = false, HelpMessage = "Notes or description for the volume.")]
public string? Notes { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Volume, "Set PVE Storage Content"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Tasks/GetPveTaskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Tasks/GetPveTaskCmdlet.cs
index a2968d8..763fa8d 100644
--- a/src/PSProxmoxVE/Cmdlets/Tasks/GetPveTaskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Tasks/GetPveTaskCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Tasks
[Parameter(Mandatory = true, Position = 1, ValueFromPipelineByPropertyName = true, HelpMessage = "The task UPID.")]
public string Upid { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Tasks/GetPveTaskListCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Tasks/GetPveTaskListCmdlet.cs
index 5c7562a..ff8f9ce 100644
--- a/src/PSProxmoxVE/Cmdlets/Tasks/GetPveTaskListCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Tasks/GetPveTaskListCmdlet.cs
@@ -49,7 +49,7 @@ namespace PSProxmoxVE.Cmdlets.Tasks
[ValidateRange(1, 10000)]
public int Limit { get; set; } = 50;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new TaskService();
diff --git a/src/PSProxmoxVE/Cmdlets/Tasks/StopPveTaskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Tasks/StopPveTaskCmdlet.cs
index ab61379..8d8719b 100644
--- a/src/PSProxmoxVE/Cmdlets/Tasks/StopPveTaskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Tasks/StopPveTaskCmdlet.cs
@@ -28,7 +28,7 @@ namespace PSProxmoxVE.Cmdlets.Tasks
[Parameter(Mandatory = true, Position = 1, ValueFromPipelineByPropertyName = true, HelpMessage = "The task UPID.")]
public string Upid { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"task '{Upid}' on node '{Node}'", "Stop-PveTask"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Tasks/WaitPveTaskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Tasks/WaitPveTaskCmdlet.cs
index 37c4570..b371175 100644
--- a/src/PSProxmoxVE/Cmdlets/Tasks/WaitPveTaskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Tasks/WaitPveTaskCmdlet.cs
@@ -52,7 +52,7 @@ namespace PSProxmoxVE.Cmdlets.Tasks
[Parameter(Mandatory = false, HelpMessage = "How often to poll task status.")]
public TimeSpan? PollInterval { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
using var client = new PveHttpClient(session);
diff --git a/src/PSProxmoxVE/Cmdlets/Templates/GetPveTemplateCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Templates/GetPveTemplateCmdlet.cs
index ec406b2..5121b88 100644
--- a/src/PSProxmoxVE/Cmdlets/Templates/GetPveTemplateCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Templates/GetPveTemplateCmdlet.cs
@@ -23,7 +23,7 @@ namespace PSProxmoxVE.Cmdlets.Templates
[Parameter(Mandatory = false, HelpMessage = "Filter by template name (supports wildcards).")]
public string? Name { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new TemplateService();
diff --git a/src/PSProxmoxVE/Cmdlets/Templates/NewPveTemplateCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Templates/NewPveTemplateCmdlet.cs
index 9bc6a45..eddae57 100644
--- a/src/PSProxmoxVE/Cmdlets/Templates/NewPveTemplateCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Templates/NewPveTemplateCmdlet.cs
@@ -29,7 +29,7 @@ namespace PSProxmoxVE.Cmdlets.Templates
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Templates/NewPveVmFromTemplateCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Templates/NewPveVmFromTemplateCmdlet.cs
index f808f76..09d4043 100644
--- a/src/PSProxmoxVE/Cmdlets/Templates/NewPveVmFromTemplateCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Templates/NewPveVmFromTemplateCmdlet.cs
@@ -55,7 +55,7 @@ namespace PSProxmoxVE.Cmdlets.Templates
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Template {VmId} -> new VM {NewVmId}", "Clone PVE VM from Template"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Templates/RemovePveTemplateCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Templates/RemovePveTemplateCmdlet.cs
index f63a07d..f9a4d2b 100644
--- a/src/PSProxmoxVE/Cmdlets/Templates/RemovePveTemplateCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Templates/RemovePveTemplateCmdlet.cs
@@ -34,7 +34,7 @@ namespace PSProxmoxVE.Cmdlets.Templates
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Template {VmId} on {Node}", "Remove PVE Template (all disks will be deleted)"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/GetPveApiTokenCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/GetPveApiTokenCmdlet.cs
index 966b3a9..bb6a3a0 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/GetPveApiTokenCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/GetPveApiTokenCmdlet.cs
@@ -28,7 +28,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, Position = 1, HelpMessage = "The API token identifier.")]
public string? TokenId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Users/GetPveDomainCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/GetPveDomainCmdlet.cs
index a7a05d4..fb3b727 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/GetPveDomainCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/GetPveDomainCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "Optional realm name to filter results.")]
public string? Realm { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new UserService();
diff --git a/src/PSProxmoxVE/Cmdlets/Users/GetPveGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/GetPveGroupCmdlet.cs
index e0e5849..0ee6fe7 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/GetPveGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/GetPveGroupCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "Optional group ID to filter results.")]
public string? GroupId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var service = new UserService();
diff --git a/src/PSProxmoxVE/Cmdlets/Users/GetPvePermissionCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/GetPvePermissionCmdlet.cs
index 6630dbe..198ff97 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/GetPvePermissionCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/GetPvePermissionCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "The user ID in user@realm format.")]
public string? UserId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Users/GetPveRoleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/GetPveRoleCmdlet.cs
index 1a0fb65..4f4d6ec 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/GetPveRoleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/GetPveRoleCmdlet.cs
@@ -19,7 +19,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, Position = 0, HelpMessage = "The role identifier.")]
public string? RoleId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Users/GetPveUserCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/GetPveUserCmdlet.cs
index 0fe34ba..51f0a58 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/GetPveUserCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/GetPveUserCmdlet.cs
@@ -27,7 +27,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Alias("EnabledOnly")]
public SwitchParameter Enabled { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Users/NewPveApiTokenCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/NewPveApiTokenCmdlet.cs
index f574388..da73e39 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/NewPveApiTokenCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/NewPveApiTokenCmdlet.cs
@@ -46,7 +46,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Enable token privilege separation.")]
public SwitchParameter PrivilegeSeparation { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var fullTokenId = $"{UserId}!{TokenId}";
if (!ShouldProcess(fullTokenId, "Create PVE API Token"))
diff --git a/src/PSProxmoxVE/Cmdlets/Users/NewPveDomainCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/NewPveDomainCmdlet.cs
index 8231c31..dad91e1 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/NewPveDomainCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/NewPveDomainCmdlet.cs
@@ -33,7 +33,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Set as the default authentication domain.")]
public SwitchParameter Default { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Realm, "Create PVE Domain"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/NewPveGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/NewPveGroupCmdlet.cs
index c7fcb6e..db4cdee 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/NewPveGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/NewPveGroupCmdlet.cs
@@ -23,7 +23,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Comment or description for the group.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(GroupId, "Create PVE Group"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/NewPveRoleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/NewPveRoleCmdlet.cs
index 81bad71..b305143 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/NewPveRoleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/NewPveRoleCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, Position = 1, HelpMessage = "Comma-separated list of privileges.")]
public string? Privileges { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(RoleId, "Create PVE Role"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/NewPveUserCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/NewPveUserCmdlet.cs
index 3b59dc0..f51b1a4 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/NewPveUserCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/NewPveUserCmdlet.cs
@@ -49,7 +49,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Account expiry as a Unix timestamp.")]
public long? Expire { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(UserId, "Create PVE User"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/RemovePveApiTokenCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/RemovePveApiTokenCmdlet.cs
index ebccc4c..cf3f287 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/RemovePveApiTokenCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/RemovePveApiTokenCmdlet.cs
@@ -29,7 +29,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = true, Position = 1, ValueFromPipelineByPropertyName = true, HelpMessage = "The API token identifier.")]
public string TokenId { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Users/RemovePveDomainCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/RemovePveDomainCmdlet.cs
index b5c606c..6e6825f 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/RemovePveDomainCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/RemovePveDomainCmdlet.cs
@@ -21,7 +21,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[ValidateNotNullOrEmpty]
public string Realm { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Realm, "Remove PVE Domain"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/RemovePveGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/RemovePveGroupCmdlet.cs
index 817d227..e7a7d43 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/RemovePveGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/RemovePveGroupCmdlet.cs
@@ -20,7 +20,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[ValidateNotNullOrEmpty]
public string GroupId { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(GroupId, "Remove PVE Group"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/RemovePveRoleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/RemovePveRoleCmdlet.cs
index e7080b1..9fe9531 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/RemovePveRoleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/RemovePveRoleCmdlet.cs
@@ -18,7 +18,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The role identifier.")]
public string RoleId { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(RoleId, "Remove PVE Role"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/RemovePveUserCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/RemovePveUserCmdlet.cs
index f3a4a8a..e39f8ed 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/RemovePveUserCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/RemovePveUserCmdlet.cs
@@ -17,7 +17,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true, HelpMessage = "The user ID in user@realm format.")]
public string UserId { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(UserId, "Remove PVE User"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/SetPveApiTokenCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/SetPveApiTokenCmdlet.cs
index fedc502..05842ae 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/SetPveApiTokenCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/SetPveApiTokenCmdlet.cs
@@ -35,7 +35,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Whether the token uses privilege separation.")]
public SwitchParameter PrivilegeSeparation { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"API token '{UserId}!{TokenId}'", "Set"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/SetPveDomainCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/SetPveDomainCmdlet.cs
index 2876eb5..121f437 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/SetPveDomainCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/SetPveDomainCmdlet.cs
@@ -28,7 +28,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Set as the default authentication domain.")]
public SwitchParameter Default { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(Realm, "Set PVE Domain"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/SetPveGroupCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/SetPveGroupCmdlet.cs
index 7cd0517..30a88f7 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/SetPveGroupCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/SetPveGroupCmdlet.cs
@@ -23,7 +23,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Updated comment or description for the group.")]
public string? Comment { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(GroupId, "Set PVE Group"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/SetPvePasswordCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/SetPvePasswordCmdlet.cs
index 738e813..eb26cb4 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/SetPvePasswordCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/SetPvePasswordCmdlet.cs
@@ -24,7 +24,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = true, Position = 1, HelpMessage = "The new password for the user.")]
public System.Security.SecureString Password { get; set; } = new System.Security.SecureString();
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(UserId, "Set PVE Password"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/SetPvePermissionCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/SetPvePermissionCmdlet.cs
index df21ffe..f195270 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/SetPvePermissionCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/SetPvePermissionCmdlet.cs
@@ -40,7 +40,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Remove the ACL entry instead of adding it.")]
public SwitchParameter Delete { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var action = Delete.IsPresent ? "Remove" : "Set";
if (!ShouldProcess($"{Type} '{UgId}' at '{Path}'", $"{action} PVE Permission ({Role})"))
diff --git a/src/PSProxmoxVE/Cmdlets/Users/SetPveRoleCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/SetPveRoleCmdlet.cs
index 20dd445..c60bbad 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/SetPveRoleCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/SetPveRoleCmdlet.cs
@@ -21,7 +21,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = true, Position = 1, HelpMessage = "Comma-separated list of privileges (e.g. 'VM.Audit,VM.Console').")]
public string Privileges { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"role '{RoleId}'", "Set"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Users/SetPveUserCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Users/SetPveUserCmdlet.cs
index 7ae19ee..b7b154b 100644
--- a/src/PSProxmoxVE/Cmdlets/Users/SetPveUserCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Users/SetPveUserCmdlet.cs
@@ -52,7 +52,7 @@ namespace PSProxmoxVE.Cmdlets.Users
[Parameter(Mandatory = false, HelpMessage = "Enable or disable the user account.")]
public bool? Enable { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess(UserId, "Set PVE User"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/CopyPveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/CopyPveVmCmdlet.cs
index 4180937..25475d9 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/CopyPveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/CopyPveVmCmdlet.cs
@@ -70,7 +70,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var target = TargetNode ?? SourceNode;
if (!ShouldProcess($"VM {VmId} on node '{SourceNode}' to new VM on node '{target}'", "Copy-PveVm"))
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmCmdlet.cs
index 7e1a325..6efa60f 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmCmdlet.cs
@@ -68,7 +68,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Include detailed status (QmpStatus) via per-VM API call.")]
public SwitchParameter Detailed { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmConfigCmdlet.cs
index 3adfe85..32ac87e 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmConfigCmdlet.cs
@@ -30,7 +30,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
var vmService = new VmService();
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestFsInfoCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestFsInfoCmdlet.cs
index 00c21ad..477b067 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestFsInfoCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestFsInfoCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestNetworkCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestNetworkCmdlet.cs
index 229b1fd..7701d30 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestNetworkCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestNetworkCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestOsInfoCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestOsInfoCmdlet.cs
index 7c557e6..7e61b2d 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestOsInfoCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/GetPveVmGuestOsInfoCmdlet.cs
@@ -25,7 +25,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/ImportPveOvaCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/ImportPveOvaCmdlet.cs
index 10898fa..6c9ca18 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/ImportPveOvaCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/ImportPveOvaCmdlet.cs
@@ -90,7 +90,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(0, int.MaxValue)]
public int? TimeoutSeconds { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
// Validate the OVA file exists
if (!File.Exists(Path))
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/ImportPveVmDiskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/ImportPveVmDiskCmdlet.cs
index 82b5854..6ff574f 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/ImportPveVmDiskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/ImportPveVmDiskCmdlet.cs
@@ -70,7 +70,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Wait for the import task to complete.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} disk {Disk} on node '{Node}'", $"Import disk from '{Source}' to '{TargetStorage}'"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/InvokePveVmGuestExecCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/InvokePveVmGuestExecCmdlet.cs
index 1c1d523..a0510f0 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/InvokePveVmGuestExecCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/InvokePveVmGuestExecCmdlet.cs
@@ -40,7 +40,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 300;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", $"Execute guest command: {Command}"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/InvokePveVmGuestFsTrimCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/InvokePveVmGuestFsTrimCmdlet.cs
index cadfc1b..c5cc4cb 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/InvokePveVmGuestFsTrimCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/InvokePveVmGuestFsTrimCmdlet.cs
@@ -24,7 +24,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Invoke-PveVmGuestFsTrim"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/MovePveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/MovePveVmCmdlet.cs
index 383efe5..773324c 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/MovePveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/MovePveVmCmdlet.cs
@@ -52,7 +52,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} from node '{Node}' to node '{TargetNode}'", "Move-PveVm"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/MovePveVmDiskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/MovePveVmDiskCmdlet.cs
index 70c63e4..f72347f 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/MovePveVmDiskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/MovePveVmDiskCmdlet.cs
@@ -60,7 +60,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Disk '{Disk}' on VM {VmId} (node '{Node}') to storage '{Storage}'", "Move-PveVmDisk"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/NewPveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/NewPveVmCmdlet.cs
index e898dbb..525c359 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/NewPveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/NewPveVmCmdlet.cs
@@ -185,7 +185,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
// Validate -DiskSize and disk-option combinations before ShouldProcess so
// typos and invalid combos are rejected even with -WhatIf, and so the error
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/ReadPveVmGuestFileCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/ReadPveVmGuestFileCmdlet.cs
index 775c128..19f7b90 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/ReadPveVmGuestFileCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/ReadPveVmGuestFileCmdlet.cs
@@ -30,7 +30,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = true, HelpMessage = "The file path inside the guest to read.")]
public string File { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/RemovePveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/RemovePveVmCmdlet.cs
index 63a9bc7..a05e5dc 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/RemovePveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/RemovePveVmCmdlet.cs
@@ -54,7 +54,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Remove-PveVm"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/RemovePveVmDiskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/RemovePveVmDiskCmdlet.cs
index 2a7cc00..29097f9 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/RemovePveVmDiskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/RemovePveVmDiskCmdlet.cs
@@ -41,7 +41,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Force removal of disk images from storage.")]
public SwitchParameter Force { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Disks '{IdList}' on VM {VmId} (node '{Node}')", "Remove-PveVmDisk"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/ResetPveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/ResetPveVmCmdlet.cs
index e736006..b0f01bc 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/ResetPveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/ResetPveVmCmdlet.cs
@@ -43,7 +43,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Reset-PveVm"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/ResizePveVmDiskCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/ResizePveVmDiskCmdlet.cs
index 99e1b54..afa489c 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/ResizePveVmDiskCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/ResizePveVmDiskCmdlet.cs
@@ -56,7 +56,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"Disk '{Disk}' on VM {VmId} (node '{Node}') to size '{Size}'", "Resize-PveVmDisk"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/RestartPveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/RestartPveVmCmdlet.cs
index 2f19fcd..7a5ea1a 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/RestartPveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/RestartPveVmCmdlet.cs
@@ -47,7 +47,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Wait for the task to complete before returning.")]
public SwitchParameter Wait { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Restart-PveVm"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/ResumePveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/ResumePveVmCmdlet.cs
index 60a63c9..84220cd 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/ResumePveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/ResumePveVmCmdlet.cs
@@ -41,7 +41,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Resume-PveVm"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/SetPveVmConfigCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/SetPveVmConfigCmdlet.cs
index 050aa5a..77f462e 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/SetPveVmConfigCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/SetPveVmConfigCmdlet.cs
@@ -105,7 +105,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Comma-separated config keys to delete.")]
public string? Delete { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Set-PveVmConfig"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/SetPveVmGuestPasswordCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/SetPveVmGuestPasswordCmdlet.cs
index 656eada..7ca8494 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/SetPveVmGuestPasswordCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/SetPveVmGuestPasswordCmdlet.cs
@@ -44,7 +44,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = false, HelpMessage = "Indicates the password is already crypted/hashed.")]
public SwitchParameter Crypted { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"User '{Username}' on VM {VmId} (node '{Node}')", "Set-PveVmGuestPassword"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/StartPveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/StartPveVmCmdlet.cs
index 9a7b8e3..0c4af20 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/StartPveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/StartPveVmCmdlet.cs
@@ -41,7 +41,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Start-PveVm"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/StopPveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/StopPveVmCmdlet.cs
index bf43145..ac06e0f 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/StopPveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/StopPveVmCmdlet.cs
@@ -43,7 +43,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Stop-PveVm"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/SuspendPveVmCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/SuspendPveVmCmdlet.cs
index 522567c..bb9c643 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/SuspendPveVmCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/SuspendPveVmCmdlet.cs
@@ -42,7 +42,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(1, 3600)]
public int Timeout { get; set; } = 60;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"VM {VmId} on node '{Node}'", "Suspend-PveVm"))
return;
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/TestPveVmGuestAgentCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/TestPveVmGuestAgentCmdlet.cs
index 2cd69b9..52ab8aa 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/TestPveVmGuestAgentCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/TestPveVmGuestAgentCmdlet.cs
@@ -23,7 +23,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[ValidateRange(100, 999999999)]
public int VmId { get; set; }
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
var session = GetSession();
diff --git a/src/PSProxmoxVE/Cmdlets/Vms/WritePveVmGuestFileCmdlet.cs b/src/PSProxmoxVE/Cmdlets/Vms/WritePveVmGuestFileCmdlet.cs
index 8c1748d..687518f 100644
--- a/src/PSProxmoxVE/Cmdlets/Vms/WritePveVmGuestFileCmdlet.cs
+++ b/src/PSProxmoxVE/Cmdlets/Vms/WritePveVmGuestFileCmdlet.cs
@@ -35,7 +35,7 @@ namespace PSProxmoxVE.Cmdlets.Vms
[Parameter(Mandatory = true, HelpMessage = "The content to write to the file.")]
public string Content { get; set; } = string.Empty;
- protected override void ProcessRecord()
+ protected override void ProcessPveRecord()
{
if (!ShouldProcess($"File '{File}' on VM {VmId} (node '{Node}')", "Write-PveVmGuestFile"))
return;
diff --git a/tests/PSProxmoxVE.Core.Tests/Errors/PveErrorMapperTests.cs b/tests/PSProxmoxVE.Core.Tests/Errors/PveErrorMapperTests.cs
new file mode 100644
index 0000000..c52ba91
--- /dev/null
+++ b/tests/PSProxmoxVE.Core.Tests/Errors/PveErrorMapperTests.cs
@@ -0,0 +1,142 @@
+using System;
+using System.Net;
+using PSProxmoxVE.Core.Authentication;
+using PSProxmoxVE.Core.Errors;
+using PSProxmoxVE.Core.Exceptions;
+using Xunit;
+
+namespace PSProxmoxVE.Core.Tests.Errors
+{
+ public class PveErrorMapperTests
+ {
+ private static PveApiException Api(HttpStatusCode status, string resource = "nodes/pve1/qemu/100")
+ => new PveApiException(status, "denied", resource, "GET");
+
+ [Theory]
+ [InlineData(HttpStatusCode.BadRequest, PveErrorKind.InvalidArgument)]
+ [InlineData(HttpStatusCode.Unauthorized, PveErrorKind.AuthenticationError)]
+ [InlineData(HttpStatusCode.Forbidden, PveErrorKind.PermissionDenied)]
+ [InlineData(HttpStatusCode.NotFound, PveErrorKind.ObjectNotFound)]
+ [InlineData(HttpStatusCode.RequestTimeout, PveErrorKind.OperationTimeout)]
+ [InlineData(HttpStatusCode.GatewayTimeout, PveErrorKind.OperationTimeout)]
+ [InlineData(HttpStatusCode.ServiceUnavailable, PveErrorKind.ConnectionError)]
+ [InlineData(HttpStatusCode.InternalServerError, PveErrorKind.ResourceUnavailable)]
+ [InlineData(HttpStatusCode.BadGateway, PveErrorKind.ResourceUnavailable)]
+ [InlineData(HttpStatusCode.Conflict, PveErrorKind.InvalidOperation)]
+ [InlineData(HttpStatusCode.MethodNotAllowed, PveErrorKind.InvalidOperation)]
+ [InlineData((HttpStatusCode)599, PveErrorKind.ResourceUnavailable)]
+ [InlineData((HttpStatusCode)418, PveErrorKind.InvalidOperation)]
+ [InlineData((HttpStatusCode)600, PveErrorKind.InvalidOperation)]
+ public void Describe_MapsApiStatusToKind(HttpStatusCode status, PveErrorKind expected)
+ {
+ Assert.Equal(expected, PveErrorMapper.Describe(Api(status)).Kind);
+ }
+
+ [Fact]
+ public void Describe_ApiErrorIdCarriesStatusAndResource()
+ {
+ var descriptor = PveErrorMapper.Describe(Api(HttpStatusCode.NotFound));
+
+ Assert.Equal("PveApi.404.nodes/pve1/qemu/100", descriptor.ErrorId);
+ Assert.Equal("nodes/pve1/qemu/100", descriptor.Target);
+ }
+
+ [Theory]
+ [InlineData("")]
+ [InlineData(" ")]
+ public void Describe_ApiErrorIdOmitsBlankResource(string resource)
+ {
+ var descriptor = PveErrorMapper.Describe(Api(HttpStatusCode.Forbidden, resource));
+
+ Assert.Equal("PveApi.403", descriptor.ErrorId);
+ Assert.Null(descriptor.Target);
+ }
+
+ [Fact]
+ public void Describe_MapsNotConnectedToConnectionError()
+ {
+ var descriptor = PveErrorMapper.Describe(new PveNotConnectedException());
+
+ Assert.Equal(PveErrorKind.ConnectionError, descriptor.Kind);
+ Assert.Equal("PveNotConnected", descriptor.ErrorId);
+ Assert.Null(descriptor.Target);
+ }
+
+ [Fact]
+ public void Describe_MapsSessionExpiredToAuthenticationError()
+ {
+ var descriptor = PveErrorMapper.Describe(new PveSessionExpiredException());
+
+ Assert.Equal(PveErrorKind.AuthenticationError, descriptor.Kind);
+ Assert.Equal("PveSessionExpired", descriptor.ErrorId);
+ Assert.Null(descriptor.Target);
+ }
+
+ [Fact]
+ public void Describe_MapsTaskFailedToOperationStoppedWithUpidTarget()
+ {
+ var descriptor = PveErrorMapper.Describe(new PveTaskFailedException("UPID:pve1:1", "boom"));
+
+ Assert.Equal(PveErrorKind.OperationStopped, descriptor.Kind);
+ Assert.Equal("PveTaskFailed", descriptor.ErrorId);
+ Assert.Equal("UPID:pve1:1", descriptor.Target);
+ }
+
+ [Fact]
+ public void Describe_MapsTaskTimeoutToOperationTimeoutWithUpidTarget()
+ {
+ var descriptor = PveErrorMapper.Describe(
+ new PveTaskTimeoutException("UPID:pve1:2", TimeSpan.FromSeconds(5)));
+
+ Assert.Equal(PveErrorKind.OperationTimeout, descriptor.Kind);
+ Assert.Equal("PveTaskTimeout", descriptor.ErrorId);
+ Assert.Equal("UPID:pve1:2", descriptor.Target);
+ }
+
+ [Fact]
+ public void Describe_MapsVersionExceptionToInvalidOperation()
+ {
+ var descriptor = PveErrorMapper.Describe(
+ new PveVersionException(9, 0, new PveVersion(8, 4)));
+
+ Assert.Equal(PveErrorKind.InvalidOperation, descriptor.Kind);
+ Assert.Equal("PveVersionTooOld", descriptor.ErrorId);
+ Assert.Null(descriptor.Target);
+ }
+
+ [Fact]
+ public void Describe_LeavesUnrecognisedExceptionUnclassified()
+ {
+ var descriptor = PveErrorMapper.Describe(new InvalidOperationException("x"));
+
+ Assert.Equal(PveErrorKind.NotSpecified, descriptor.Kind);
+ Assert.Equal("InvalidOperationException", descriptor.ErrorId);
+ Assert.Null(descriptor.Target);
+ }
+
+ [Fact]
+ public void IsRecognized_AcceptsEveryModuleException()
+ {
+ Assert.True(PveErrorMapper.IsRecognized(Api(HttpStatusCode.NotFound)));
+ Assert.True(PveErrorMapper.IsRecognized(new PveNotConnectedException()));
+ Assert.True(PveErrorMapper.IsRecognized(new PveSessionExpiredException()));
+ Assert.True(PveErrorMapper.IsRecognized(new PveTaskFailedException("u", "boom")));
+ Assert.True(PveErrorMapper.IsRecognized(new PveTaskTimeoutException("u", TimeSpan.Zero)));
+ Assert.True(PveErrorMapper.IsRecognized(new PveVersionException(9, 0, new PveVersion(8, 4))));
+ }
+
+ [Fact]
+ public void IsRecognized_RejectsExceptionsTheModuleDoesNotClassify()
+ {
+ Assert.False(PveErrorMapper.IsRecognized(new ArgumentException("x")));
+ Assert.False(PveErrorMapper.IsRecognized(new TimeoutException("x")));
+ Assert.False(PveErrorMapper.IsRecognized(new InvalidOperationException("x")));
+ }
+
+ [Fact]
+ public void Describe_RejectsNull()
+ {
+ Assert.Throws(() => PveErrorMapper.Describe(null!));
+ }
+ }
+}
diff --git a/tests/PSProxmoxVE.Tests/Errors/ErrorRecordMapping.Tests.ps1 b/tests/PSProxmoxVE.Tests/Errors/ErrorRecordMapping.Tests.ps1
new file mode 100644
index 0000000..5f14ee2
--- /dev/null
+++ b/tests/PSProxmoxVE.Tests/Errors/ErrorRecordMapping.Tests.ps1
@@ -0,0 +1,42 @@
+#Requires -Module Pester
+<#
+.SYNOPSIS
+ Pester 5 tests for the cmdlet-level PVE error record mapping.
+ Fully offline — the failure under test is raised before any request is sent.
+#>
+
+BeforeAll {
+ . $PSScriptRoot/../_TestHelper.ps1
+}
+
+Describe 'PVE error record mapping' {
+ Context 'Without an active session' {
+ It 'Reports the missing session as ConnectionError' {
+ $record = $null
+ try { Get-PveNode -ErrorAction Stop } catch { $record = $_ }
+
+ $record | Should -Not -BeNullOrEmpty
+ $record.CategoryInfo.Category | Should -Be 'ConnectionError'
+ }
+
+ It 'Reports the missing session with the PveNotConnected error id' {
+ $record = $null
+ try { Get-PveVm -ErrorAction Stop } catch { $record = $_ }
+
+ $record | Should -Not -BeNullOrEmpty
+ $record.FullyQualifiedErrorId | Should -BeLike 'PveNotConnected,*'
+ }
+ }
+
+ Context 'Error kind vocabulary' {
+ It 'Every PveErrorKind name is also an ErrorCategory name' {
+ $kinds = [enum]::GetNames([PSProxmoxVE.Core.Errors.PveErrorKind])
+ $categories = [enum]::GetNames([System.Management.Automation.ErrorCategory])
+
+ $kinds | Should -Not -BeNullOrEmpty
+ foreach ($kind in $kinds) {
+ $categories | Should -Contain $kind
+ }
+ }
+ }
+}