Skip to content

Commit fb66a5d

Browse files
committed
server: fix clone network offerings with detail internetProtocol=IPv4
1 parent 0e43c6a commit fb66a5d

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

api/src/main/java/org/apache/cloudstack/api/command/admin/network/NetworkOfferingBaseCmd.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ public abstract class NetworkOfferingBaseCmd extends BaseCmd {
216216
description = "the routing mode for the network offering. Supported types are: Static or Dynamic.")
217217
private String routingMode;
218218

219+
private Map<String, String> sourceDetailsMap;
220+
219221
/////////////////////////////////////////////////////
220222
/////////////////// Accessors ///////////////////////
221223
/////////////////////////////////////////////////////
@@ -430,9 +432,8 @@ public Map<Network.Capability, String> getServiceCapabilities(Network.Service se
430432

431433
public Map<String, String> getDetails() {
432434
if (details == null || details.isEmpty()) {
433-
return null;
435+
return sourceDetailsMap;
434436
}
435-
436437
Collection paramsCollection = details.values();
437438
Object objlist[] = paramsCollection.toArray();
438439
Map<String, String> params = (Map<String, String>) (objlist[0]);

server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8486,8 +8486,11 @@ private void applySourceOfferingValuesToCloneCmd(CloneNetworkOfferingCmd cmd,
84868486
private Map<String, String> getSourceOfferingDetails(Long sourceOfferingId) {
84878487
List<NetworkOfferingDetailsVO> sourceDetailsVOs = networkOfferingDetailsDao.listDetails(sourceOfferingId);
84888488
Map<String, String> sourceDetailsMap = new HashMap<>();
8489+
List<String> ignoredSourceDetails = Arrays.asList(Detail.internetProtocol.name(), Detail.domainid.name(), Detail.zoneid.name());
84898490
for (NetworkOfferingDetailsVO detailVO : sourceDetailsVOs) {
8490-
sourceDetailsMap.put(detailVO.getName(), detailVO.getValue());
8491+
if (!ignoredSourceDetails.contains(detailVO.getName())) {
8492+
sourceDetailsMap.put(detailVO.getName(), detailVO.getValue());
8493+
}
84918494
}
84928495
return sourceDetailsMap;
84938496
}
@@ -8635,7 +8638,7 @@ private void applyResolvedValuesToCommand(CloneNetworkOfferingCmd cmd, NetworkOf
86358638

86368639
if (cmd.getDetails() == null || cmd.getDetails().isEmpty()) {
86378640
if (!sourceDetailsMap.isEmpty()) {
8638-
setField(cmd, "details", sourceDetailsMap);
8641+
setField(cmd, "sourceDetailsMap", sourceDetailsMap);
86398642
}
86408643
}
86418644

0 commit comments

Comments
 (0)