weizhouapache commented on PR #13922:
URL: https://github.com/apache/cloudstack/pull/13922#issuecomment-5764314509

   @calvix 
   can you please solve the build failure ?
   
   ```
   16:42:04 14:42:04.490 [main] ERROR 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper - 
Failed to mount repository 192.168.1.100:/backup of type nfs to the directory 
/tmp/csbackup.abc123, mount exited with 1
   16:42:04 14:42:04.556 [main] ERROR 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper - 
Failed to create the tmp mount directory csbackup.dLVBH for restore
   16:42:04 java.io.IOException: Failed to create temp directory
   16:42:04     at java.nio.file.Files.createTempDirectory(Files.java:1006) 
~[?:?]
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.mountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:234)
 ~[classes/:?]
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.execute(LibvirtRestoreBackupCommandWrapper.java:101)
 ~[classes/:?]
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest.testExecuteWithTempDirectoryCreationFailure(LibvirtRestoreBackupCommandWrapperTest.java:531)
 ~[test-classes/:?]
   16:42:04     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method) ~[?:?]
   16:42:04     at 
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 ~[?:?]
   16:42:04     at 
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:?]
   16:42:04     at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
   16:42:04     at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
 ~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 ~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
 ~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
 ~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.mockito.internal.runners.DefaultInternalRunner$1$1.evaluate(DefaultInternalRunner.java:55)
 ~[mockito-core-5.16.1.jar:?]
   16:42:04     at 
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
 ~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
 ~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
 ~[junit-4.13.2.jar:4.13.2]
   16:42:04     at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at org.junit.runners.ParentRunner.run(ParentRunner.java:413) 
~[junit-4.13.2.jar:4.13.2]
   16:42:04     at 
org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:100)
 ~[mockito-core-5.16.1.jar:?]
   16:42:04     at 
org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:107)
 ~[mockito-core-5.16.1.jar:?]
   16:42:04     at 
org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:42) 
~[mockito-core-5.16.1.jar:?]
   16:42:04     at 
org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:163) 
~[mockito-core-5.16.1.jar:?]
   16:42:04     at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
 ~[surefire-junit4-2.22.2.jar:2.22.2]
   16:42:04     at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
 ~[surefire-junit4-2.22.2.jar:2.22.2]
   16:42:04     at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
 ~[surefire-junit4-2.22.2.jar:2.22.2]
   16:42:04     at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) 
~[surefire-junit4-2.22.2.jar:2.22.2]
   16:42:04     at 
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
 ~[surefire-booter-2.22.2.jar:2.22.2]
   16:42:04     at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
 ~[surefire-booter-2.22.2.jar:2.22.2]
   16:42:04     at 
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126) 
~[surefire-booter-2.22.2.jar:2.22.2]
   16:42:04     at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418) 
~[surefire-booter-2.22.2.jar:2.22.2]
   16:42:04 14:42:04.566 [main] ERROR 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper - 
Failed to mount repository 192.168.1.100:/backup of type nfs to the directory 
/tmp/csbackup.abc123, mount exited with 1
   16:42:04 14:42:04.612 [main] ERROR 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper - 
Failed to mount repository 192.168.1.100:/backup of type nfs to the directory 
/tmp/csbackup.abc123, mount exited with 1
   16:42:04 [ERROR] Tests run: 23, Failures: 0, Errors: 2, Skipped: 0, Time 
elapsed: 0.485 s <<< FAILURE! - in 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest
   16:42:04 [ERROR] 
testRestoreOfExistingVmMapsBackupsToVolumesByUuid(com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest)
  Time elapsed: 0.028 s  <<< ERROR!
   16:42:04 org.mockito.exceptions.base.MockitoException: 
   16:42:04 
   16:42:04 An unexpected error occurred while verifying a static stub
   16:42:04 
   16:42:04 To correctly verify a stub, invoke a single static method of 
com.cloud.utils.script.Script in the provided lambda.
   16:42:04 For example, if a method 'sample' was defined, provide a lambda or 
anonymous class containing the code
   16:42:04 
   16:42:04 () -> Script.sample()
   16:42:04 or
   16:42:04 Script::sample
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest.testRestoreOfExistingVmMapsBackupsToVolumesByUuid(LibvirtRestoreBackupCommandWrapperTest.java:637)
   16:42:04 Caused by: 
org.mockito.exceptions.verification.junit.ArgumentsAreDifferent: 
   16:42:04 
   16:42:04 Argument(s) are different! Wanted:
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     <any long>,
   16:42:04     ["rsync", "-az", 
"/tmp/csbackup.abc123/backup/path/root.root-vol.qcow2", 
"/var/lib/libvirt/images/root-vol"]
   16:42:04 );
   16:42:04 -> at 
com.cloud.utils.script.Script.executeCommandForExitValue(Script.java:766)
   16:42:04 Actual invocations have different arguments:
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "mount"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.mountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:241)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     30000L,
   16:42:04     "sudo",
   16:42:04     "mount",
   16:42:04     "-t",
   16:42:04     "nfs",
   16:42:04     "192.168.1.100:/backup",
   16:42:04     "/tmp/csbackup.abc123",
   16:42:04     "-o",
   16:42:04     "rw"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.mountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:260)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "ls /tmp/csbackup.abc123/backup/path/root.root-vol.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupPathExists(LibvirtRestoreBackupCommandWrapper.java:320)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img check 
/tmp/csbackup.abc123/backup/path/root.root-vol.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupFileImage(LibvirtRestoreBackupCommandWrapper.java:315)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img info --output=json 
/tmp/csbackup.abc123/backup/path/root.root-vol.qcow2 2>/dev/null | grep -q 
'"backing-filename"'"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.hasBackingChain(LibvirtRestoreBackupCommandWrapper.java:351)
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "qemu-img"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:340)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     "qemu-img",
   16:42:04     "convert",
   16:42:04     "-O",
   16:42:04     "qcow2",
   16:42:04     "/tmp/csbackup.abc123/backup/path/root.root-vol.qcow2",
   16:42:04     "/var/lib/libvirt/images/root-vol"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:341)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "ls /tmp/csbackup.abc123/backup/path/datadisk.data-vol-a.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupPathExists(LibvirtRestoreBackupCommandWrapper.java:320)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img check 
/tmp/csbackup.abc123/backup/path/datadisk.data-vol-a.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupFileImage(LibvirtRestoreBackupCommandWrapper.java:315)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img info --output=json 
/tmp/csbackup.abc123/backup/path/datadisk.data-vol-a.qcow2 2>/dev/null | grep 
-q '"backing-filename"'"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.hasBackingChain(LibvirtRestoreBackupCommandWrapper.java:351)
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "qemu-img"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:340)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     "qemu-img",
   16:42:04     "convert",
   16:42:04     "-O",
   16:42:04     "qcow2",
   16:42:04     "/tmp/csbackup.abc123/backup/path/datadisk.data-vol-a.qcow2",
   16:42:04     "/var/lib/libvirt/images/data-vol-a"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:341)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "ls /tmp/csbackup.abc123/backup/path/datadisk.data-vol-b.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupPathExists(LibvirtRestoreBackupCommandWrapper.java:320)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img check 
/tmp/csbackup.abc123/backup/path/datadisk.data-vol-b.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupFileImage(LibvirtRestoreBackupCommandWrapper.java:315)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img info --output=json 
/tmp/csbackup.abc123/backup/path/datadisk.data-vol-b.qcow2 2>/dev/null | grep 
-q '"backing-filename"'"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.hasBackingChain(LibvirtRestoreBackupCommandWrapper.java:351)
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "qemu-img"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:340)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     "qemu-img",
   16:42:04     "convert",
   16:42:04     "-O",
   16:42:04     "qcow2",
   16:42:04     "/tmp/csbackup.abc123/backup/path/datadisk.data-vol-b.qcow2",
   16:42:04     "/var/lib/libvirt/images/data-vol-b"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:341)
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "umount"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.unmountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:277)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     30000L,
   16:42:04     "sudo",
   16:42:04     "umount",
   16:42:04     "/tmp/csbackup.abc123"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.unmountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:279)
   16:42:04 
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest.lambda$testRestoreOfExistingVmMapsBackupsToVolumesByUuid$66(LibvirtRestoreBackupCommandWrapperTest.java:637)
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest.testRestoreOfExistingVmMapsBackupsToVolumesByUuid(LibvirtRestoreBackupCommandWrapperTest.java:637)
   16:42:04 
   16:42:04 [ERROR] 
testRestoreIntoNewVolumesFallsBackToDeviceIdOrder(com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest)
  Time elapsed: 0.006 s  <<< ERROR!
   16:42:04 org.mockito.exceptions.base.MockitoException: 
   16:42:04 
   16:42:04 An unexpected error occurred while verifying a static stub
   16:42:04 
   16:42:04 To correctly verify a stub, invoke a single static method of 
com.cloud.utils.script.Script in the provided lambda.
   16:42:04 For example, if a method 'sample' was defined, provide a lambda or 
anonymous class containing the code
   16:42:04 
   16:42:04 () -> Script.sample()
   16:42:04 or
   16:42:04 Script::sample
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest.testRestoreIntoNewVolumesFallsBackToDeviceIdOrder(LibvirtRestoreBackupCommandWrapperTest.java:748)
   16:42:04 Caused by: 
org.mockito.exceptions.verification.junit.ArgumentsAreDifferent: 
   16:42:04 
   16:42:04 Argument(s) are different! Wanted:
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     <any long>,
   16:42:04     ["rsync", "-az", 
"/tmp/csbackup.abc123/backup/path/root.old-root-vol.qcow2", 
"/var/lib/libvirt/images/new-root-vol"]
   16:42:04 );
   16:42:04 -> at 
com.cloud.utils.script.Script.executeCommandForExitValue(Script.java:766)
   16:42:04 Actual invocations have different arguments:
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "mount"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.mountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:241)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     30000L,
   16:42:04     "sudo",
   16:42:04     "mount",
   16:42:04     "-t",
   16:42:04     "nfs",
   16:42:04     "192.168.1.100:/backup",
   16:42:04     "/tmp/csbackup.abc123",
   16:42:04     "-o",
   16:42:04     "rw"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.mountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:260)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "ls /tmp/csbackup.abc123/backup/path/root.old-root-vol.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupPathExists(LibvirtRestoreBackupCommandWrapper.java:320)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img check 
/tmp/csbackup.abc123/backup/path/root.old-root-vol.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupFileImage(LibvirtRestoreBackupCommandWrapper.java:315)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img info --output=json 
/tmp/csbackup.abc123/backup/path/root.old-root-vol.qcow2 2>/dev/null | grep -q 
'"backing-filename"'"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.hasBackingChain(LibvirtRestoreBackupCommandWrapper.java:351)
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "qemu-img"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:340)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     "qemu-img",
   16:42:04     "convert",
   16:42:04     "-O",
   16:42:04     "qcow2",
   16:42:04     "/tmp/csbackup.abc123/backup/path/root.old-root-vol.qcow2",
   16:42:04     "/var/lib/libvirt/images/new-root-vol"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:341)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "ls 
/tmp/csbackup.abc123/backup/path/datadisk.old-data-vol.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupPathExists(LibvirtRestoreBackupCommandWrapper.java:320)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img check 
/tmp/csbackup.abc123/backup/path/datadisk.old-data-vol.qcow2"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.checkBackupFileImage(LibvirtRestoreBackupCommandWrapper.java:315)
   16:42:04 Script.class.runSimpleBashScriptForExitValue(
   16:42:04     "qemu-img info --output=json 
/tmp/csbackup.abc123/backup/path/datadisk.old-data-vol.qcow2 2>/dev/null | grep 
-q '"backing-filename"'"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.hasBackingChain(LibvirtRestoreBackupCommandWrapper.java:351)
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "qemu-img"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:340)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     "qemu-img",
   16:42:04     "convert",
   16:42:04     "-O",
   16:42:04     "qcow2",
   16:42:04     "/tmp/csbackup.abc123/backup/path/datadisk.old-data-vol.qcow2",
   16:42:04     "/var/lib/libvirt/images/new-data-vol"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.replaceVolumeWithBackup(LibvirtRestoreBackupCommandWrapper.java:341)
   16:42:04 Script.class.getExecutableAbsolutePath(
   16:42:04     "umount"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.unmountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:277)
   16:42:04 Script.class.executeCommandForExitValue(
   16:42:04     30000L,
   16:42:04     "sudo",
   16:42:04     "umount",
   16:42:04     "/tmp/csbackup.abc123"
   16:42:04 );
   16:42:04 -> at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapper.unmountBackupDirectory(LibvirtRestoreBackupCommandWrapper.java:279)
   16:42:04 
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest.lambda$testRestoreIntoNewVolumesFallsBackToDeviceIdOrder$84(LibvirtRestoreBackupCommandWrapperTest.java:748)
   16:42:04     at 
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRestoreBackupCommandWrapperTest.testRestoreIntoNewVolumesFallsBackToDeviceIdOrder(LibvirtRestoreBackupCommandWrapperTest.java:748)
   16:42:04 
   
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to