Unit test fixes
diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapper.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapper.java index 2b2e09d..ca85535 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapper.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapper.java
@@ -214,6 +214,13 @@ } } + executeMount(backupRepoAddress, backupRepoType, mountOptions, mountDirectory, mountTimeout); + + return mountDirectory; + } + + private void executeMount(String backupRepoAddress, String backupRepoType, String mountOptions, + String mountDirectory, Integer mountTimeout) { List<String[]> commands = new ArrayList<>(); List<String> cmd = new ArrayList<>(); cmd.add("sudo"); @@ -234,8 +241,6 @@ backupRepoAddress, backupRepoType, mountDirectory, result.second()); throw new CloudRuntimeException("Failed to mount the backup repository on the KVM host"); } - - return mountDirectory; } private void unmountBackupDirectory(String backupDirectory) {
diff --git a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapperTest.java b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapperTest.java index ef6b5c0..b956d3d 100644 --- a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapperTest.java +++ b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtRestoreBackupCommandWrapperTest.java
@@ -18,6 +18,7 @@ import com.cloud.agent.api.Answer; import com.cloud.hypervisor.kvm.resource.LibvirtComputingResource; +import com.cloud.utils.Pair; import com.cloud.storage.Storage; import com.cloud.utils.script.Script; import com.cloud.vm.VirtualMachine; @@ -83,6 +84,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) .thenReturn(0); // Mount success scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString())) @@ -126,6 +129,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) .thenReturn(0); // Mount success scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString())) @@ -165,6 +170,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) .thenReturn(0); // Mount success scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString())) @@ -207,6 +214,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) .thenReturn(0); // Mount success scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString())) @@ -251,8 +260,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { - scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) - .thenReturn(1); // Mount failure + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(1, "Failed")); Answer result = wrapper.execute(command, libvirtComputingResource); @@ -290,6 +299,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) .thenReturn(0); // Mount success scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString())) @@ -339,8 +350,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { - scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) - .thenReturn(0); // Mount success + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString())) .thenAnswer(invocation -> { String command = invocation.getArgument(0); @@ -390,6 +401,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) .thenAnswer(invocation -> { String command = invocation.getArgument(0); @@ -449,6 +462,8 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) .thenAnswer(invocation -> { String command = invocation.getArgument(0); @@ -551,6 +566,10 @@ filesMock.when(() -> Files.createTempDirectory(anyString())).thenReturn(tempPath); try (MockedStatic<Script> scriptMock = mockStatic(Script.class)) { + Mockito.when(Script.executePipedCommands(Mockito.anyList(), Mockito.anyLong())) + .thenReturn(new Pair<>(0, "success")); + scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class))) + .thenReturn(0); // Mount success scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString())) .thenReturn(0); // All commands success scriptMock.when(() -> Script.runSimpleBashScriptForExitValue(anyString(), anyInt(), any(Boolean.class)))