using System;
using PSProxmoxVE.Core.Authentication;
namespace PSProxmoxVE.Core.Exceptions
{
/// Exception thrown when the connected Proxmox VE server does not meet the minimum version requirement for an operation.
public class PveVersionException : Exception
{
/// The minimum required major version number.
public int RequiredMajor { get; }
/// The minimum required minor version number.
public int RequiredMinor { get; }
/// The actual server version that did not meet the requirement.
public PveVersion ActualVersion { get; }
/// Initializes a new instance for a version requirement that was not met.
/// The minimum required major version.
/// The minimum required minor version.
/// The actual server version detected.
public PveVersionException(int requiredMajor, int requiredMinor, PveVersion actualVersion)
: base($"This operation requires Proxmox VE {requiredMajor}.{requiredMinor} or later. Connected server is version {actualVersion}.")
{
RequiredMajor = requiredMajor;
RequiredMinor = requiredMinor;
ActualVersion = actualVersion;
}
/// Initializes a new instance for a version requirement that was not met, with an inner exception.
/// The minimum required major version.
/// The minimum required minor version.
/// The actual server version detected.
/// The exception that caused this failure.
public PveVersionException(int requiredMajor, int requiredMinor, PveVersion actualVersion, Exception innerException)
: base($"This operation requires Proxmox VE {requiredMajor}.{requiredMinor} or later. Connected server is version {actualVersion}.", innerException)
{
RequiredMajor = requiredMajor;
RequiredMinor = requiredMinor;
ActualVersion = actualVersion;
}
}
}