This is an automated email from the ASF dual-hosted git repository.

bstoyanov pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.20 by this push:
     new 097c3a018ba ConfigDrive: use file absolute path instead of canonical 
path to create ISO (#11623)
097c3a018ba is described below

commit 097c3a018bae6faf6cdac2db09c56507b980fa4f
Author: Wei Zhou <[email protected]>
AuthorDate: Mon Jan 26 11:56:14 2026 +0100

    ConfigDrive: use file absolute path instead of canonical path to create ISO 
(#11623)
    
    * ConfigDrive: use file absolute path instead of canonical path to create 
ISO
    
    * el8: add xorrisofs as option
---
 .../cloudstack/storage/configdrive/ConfigDriveBuilder.java   |  4 ++--
 .../storage/configdrive/ConfigDriveBuilderTest.java          | 12 ++++++------
 packaging/el8/cloud.spec                                     |  2 +-
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git 
a/engine/storage/configdrive/src/main/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilder.java
 
b/engine/storage/configdrive/src/main/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilder.java
index 0b81a25b1cd..15febbe972c 100644
--- 
a/engine/storage/configdrive/src/main/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilder.java
+++ 
b/engine/storage/configdrive/src/main/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilder.java
@@ -231,9 +231,9 @@ public class ConfigDriveBuilder {
             throw new CloudRuntimeException("Cannot create ISO for config 
drive using any know tool. Known paths [/usr/bin/genisoimage, /usr/bin/mkisofs, 
/usr/local/bin/mkisofs]");
         }
         if (!isoCreator.canExecute()) {
-            throw new CloudRuntimeException("Cannot create ISO for config 
drive using: " + isoCreator.getCanonicalPath());
+            throw new CloudRuntimeException("Cannot create ISO for config 
drive using: " + isoCreator.getAbsolutePath());
         }
-        return isoCreator.getCanonicalPath();
+        return isoCreator.getAbsolutePath();
     }
 
     /**
diff --git 
a/engine/storage/configdrive/src/test/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilderTest.java
 
b/engine/storage/configdrive/src/test/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilderTest.java
index c04ff0a1601..03ceac84399 100644
--- 
a/engine/storage/configdrive/src/test/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilderTest.java
+++ 
b/engine/storage/configdrive/src/test/java/org/apache/cloudstack/storage/configdrive/ConfigDriveBuilderTest.java
@@ -435,7 +435,7 @@ public class ConfigDriveBuilderTest {
 
             Mockito.verify(genIsoFileMock, Mockito.times(2)).exists();
             Mockito.verify(genIsoFileMock).canExecute();
-            Mockito.verify(genIsoFileMock).getCanonicalPath();
+            Mockito.verify(genIsoFileMock).getAbsolutePath();
         }
     }
 
@@ -475,11 +475,11 @@ public class ConfigDriveBuilderTest {
 
             Mockito.verify(genIsoFileMock, Mockito.times(1)).exists();
             Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute();
-            Mockito.verify(genIsoFileMock, 
Mockito.times(0)).getCanonicalPath();
+            Mockito.verify(genIsoFileMock, Mockito.times(0)).getAbsolutePath();
 
             Mockito.verify(mkIsoProgramInLinuxFileMock, 
Mockito.times(2)).exists();
             Mockito.verify(mkIsoProgramInLinuxFileMock, 
Mockito.times(1)).canExecute();
-            Mockito.verify(mkIsoProgramInLinuxFileMock, 
Mockito.times(1)).getCanonicalPath();
+            Mockito.verify(mkIsoProgramInLinuxFileMock, 
Mockito.times(1)).getAbsolutePath();
         }
     }
 
@@ -509,15 +509,15 @@ public class ConfigDriveBuilderTest {
 
             Mockito.verify(genIsoFileMock, Mockito.times(1)).exists();
             Mockito.verify(genIsoFileMock, Mockito.times(0)).canExecute();
-            Mockito.verify(genIsoFileMock, 
Mockito.times(0)).getCanonicalPath();
+            Mockito.verify(genIsoFileMock, Mockito.times(0)).getAbsolutePath();
 
             Mockito.verify(mkIsoProgramInLinuxFileMock, 
Mockito.times(1)).exists();
             Mockito.verify(mkIsoProgramInLinuxFileMock, 
Mockito.times(0)).canExecute();
-            Mockito.verify(mkIsoProgramInLinuxFileMock, 
Mockito.times(0)).getCanonicalPath();
+            Mockito.verify(mkIsoProgramInLinuxFileMock, 
Mockito.times(0)).getAbsolutePath();
 
             Mockito.verify(mkIsoProgramInMacOsFileMock, 
Mockito.times(1)).exists();
             Mockito.verify(mkIsoProgramInMacOsFileMock, 
Mockito.times(1)).canExecute();
-            Mockito.verify(mkIsoProgramInMacOsFileMock, 
Mockito.times(1)).getCanonicalPath();
+            Mockito.verify(mkIsoProgramInMacOsFileMock, 
Mockito.times(1)).getAbsolutePath();
         }
     }
 
diff --git a/packaging/el8/cloud.spec b/packaging/el8/cloud.spec
index 3d485112266..507a6e64173 100644
--- a/packaging/el8/cloud.spec
+++ b/packaging/el8/cloud.spec
@@ -76,7 +76,7 @@ Requires: sudo
 Requires: /sbin/service
 Requires: /sbin/chkconfig
 Requires: /usr/bin/ssh-keygen
-Requires: (genisoimage or mkisofs)
+Requires: (genisoimage or mkisofs or xorrisofs)
 Requires: ipmitool
 Requires: %{name}-common = %{_ver}
 Requires: (iptables-services or iptables)

Reply via email to