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)