This is an automated email from the ASF dual-hosted git repository.
winterhazel pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new 7900b2715a2 server: fix clone network offerings with detail
internetProtocol=IPv4 (#13615)
7900b2715a2 is described below
commit 7900b2715a2b79f41582a64a514f06000242d623
Author: Wei Zhou <[email protected]>
AuthorDate: Mon Jul 20 17:35:11 2026 +0200
server: fix clone network offerings with detail internetProtocol=IPv4
(#13615)
Co-authored-by: Copilot Autofix powered by AI
<[email protected]>
---
.../api/command/admin/network/NetworkOfferingBaseCmd.java | 5 +++--
.../java/com/cloud/configuration/ConfigurationManagerImpl.java | 7 +++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git
a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/NetworkOfferingBaseCmd.java
b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/NetworkOfferingBaseCmd.java
index 1c832b7217e..9b42be13731 100644
---
a/api/src/main/java/org/apache/cloudstack/api/command/admin/network/NetworkOfferingBaseCmd.java
+++
b/api/src/main/java/org/apache/cloudstack/api/command/admin/network/NetworkOfferingBaseCmd.java
@@ -216,6 +216,8 @@ public abstract class NetworkOfferingBaseCmd extends
BaseCmd {
description = "the routing mode for the network offering.
Supported types are: Static or Dynamic.")
private String routingMode;
+ private Map<String, String> sourceDetailsMap;
+
/////////////////////////////////////////////////////
/////////////////// Accessors ///////////////////////
/////////////////////////////////////////////////////
@@ -430,9 +432,8 @@ public abstract class NetworkOfferingBaseCmd extends
BaseCmd {
public Map<String, String> getDetails() {
if (details == null || details.isEmpty()) {
- return null;
+ return sourceDetailsMap;
}
-
Collection paramsCollection = details.values();
Object objlist[] = paramsCollection.toArray();
Map<String, String> params = (Map<String, String>) (objlist[0]);
diff --git
a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
index 164193beeda..837254ed8b3 100644
--- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -8486,8 +8486,11 @@ public class ConfigurationManagerImpl extends
ManagerBase implements Configurati
private Map<String, String> getSourceOfferingDetails(Long
sourceOfferingId) {
List<NetworkOfferingDetailsVO> sourceDetailsVOs =
networkOfferingDetailsDao.listDetails(sourceOfferingId);
Map<String, String> sourceDetailsMap = new HashMap<>();
+ Set<String> ignoredSourceDetails = new
HashSet<>(Arrays.asList(Detail.internetProtocol.name(), Detail.domainid.name(),
Detail.zoneid.name()));
for (NetworkOfferingDetailsVO detailVO : sourceDetailsVOs) {
- sourceDetailsMap.put(detailVO.getName(), detailVO.getValue());
+ if (!ignoredSourceDetails.contains(detailVO.getName())) {
+ sourceDetailsMap.put(detailVO.getName(), detailVO.getValue());
+ }
}
return sourceDetailsMap;
}
@@ -8635,7 +8638,7 @@ public class ConfigurationManagerImpl extends ManagerBase
implements Configurati
if (cmd.getDetails() == null || cmd.getDetails().isEmpty()) {
if (!sourceDetailsMap.isEmpty()) {
- setField(cmd, "details", sourceDetailsMap);
+ setField(cmd, "sourceDetailsMap", sourceDetailsMap);
}
}