mirror of
https://github.com/GoodOlClint/PSProxmoxVE.git
synced 2026-09-07 12:35:41 +00:00
fix: plumb skiplock parameter through Remove-PveVm and Remove-PveContainer
When -Force is specified, both cmdlets now pass skiplock=1 to PVE, which bypasses locks. PVE honours the skiplock parameter for root@pam only. Also updated help text on both cmdlets to clarify the limitation and behaviour. Fixes #136.
This commit is contained in:
committed by
GitHub
parent
68f953075d
commit
c12bfe9183
@@ -165,5 +165,57 @@ namespace PSProxmoxVE.Core.Tests.Services
|
||||
Assert.Empty(captured!);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RemoveVm_WithSkipLockTrue_IncludesSkiplockInQueryString()
|
||||
{
|
||||
string? resource = null;
|
||||
var mockClient = new Mock<IPveHttpClient>();
|
||||
mockClient
|
||||
.Setup(c => c.DeleteAsync(It.IsAny<string>()))
|
||||
.Callback<string>(r => resource = r)
|
||||
.ReturnsAsync("{\"data\":\"UPID:pve1:00001234:00005678:6A970AAB:qmremove:100:root@pam:\"}");
|
||||
|
||||
var service = new VmService(mockClient.Object);
|
||||
service.RemoveVm(CreateSession(), TestNode, TestVmId, purge: false, skipLock: true);
|
||||
|
||||
Assert.NotNull(resource);
|
||||
Assert.Contains("skiplock=1", resource!);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RemoveVm_WithSkipLockFalse_OmitsSkiplockFromQueryString()
|
||||
{
|
||||
string? resource = null;
|
||||
var mockClient = new Mock<IPveHttpClient>();
|
||||
mockClient
|
||||
.Setup(c => c.DeleteAsync(It.IsAny<string>()))
|
||||
.Callback<string>(r => resource = r)
|
||||
.ReturnsAsync("{\"data\":\"UPID:pve1:00001234:00005678:6A970AAB:qmremove:100:root@pam:\"}");
|
||||
|
||||
var service = new VmService(mockClient.Object);
|
||||
service.RemoveVm(CreateSession(), TestNode, TestVmId, purge: false, skipLock: false);
|
||||
|
||||
Assert.NotNull(resource);
|
||||
Assert.DoesNotContain("skiplock", resource!);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RemoveVm_WithPurgeAndSkipLock_IncludesBothInQueryString()
|
||||
{
|
||||
string? resource = null;
|
||||
var mockClient = new Mock<IPveHttpClient>();
|
||||
mockClient
|
||||
.Setup(c => c.DeleteAsync(It.IsAny<string>()))
|
||||
.Callback<string>(r => resource = r)
|
||||
.ReturnsAsync("{\"data\":\"UPID:pve1:00001234:00005678:6A970AAB:qmremove:100:root@pam:\"}");
|
||||
|
||||
var service = new VmService(mockClient.Object);
|
||||
service.RemoveVm(CreateSession(), TestNode, TestVmId, purge: true, skipLock: true);
|
||||
|
||||
Assert.NotNull(resource);
|
||||
Assert.Contains("purge=1", resource!);
|
||||
Assert.Contains("skiplock=1", resource!);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user