From 622b0239b1a16152014ceb8a1e2cd559a213f8e9 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Thu, 1 Oct 2026 16:47:26 +0200 Subject: [PATCH 1/5] network: add default isolated offering with source NAT and egress allowed by default Adds a new default network offering, DefaultIsolatedNetworkOfferingWithSourceNatServiceEgressAllowed: an isolated offering with the SourceNat service whose default egress policy allows traffic, so VMs on it can reach outbound networks without an explicit egress rule. - NetworkOffering: declare the offering's unique name constant. - NetworkOrchestrator: create the offering (Availability.Optional, egressDefaultPolicy=true) on zones that do not have it yet. - ConfigurationServerImpl: create the offering, its service map, and set its state to Enabled with VM autoscaling and egress-default-policy support during first-time setup. - NetworkOfferingVO: rename the egressdefaultpolicy field to egressDefaultPolicy and add a setter so the policy can be set before the offering is persisted. --- .../com/cloud/offering/NetworkOffering.java | 1 + .../orchestration/NetworkOrchestrator.java | 8 ++++++++ .../cloud/offerings/NetworkOfferingVO.java | 14 +++++++++----- .../cloud/server/ConfigurationServerImpl.java | 19 ++++++++++++++++++- 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/api/src/main/java/com/cloud/offering/NetworkOffering.java b/api/src/main/java/com/cloud/offering/NetworkOffering.java index 5000a4f8c626..ef20e5e35331 100644 --- a/api/src/main/java/com/cloud/offering/NetworkOffering.java +++ b/api/src/main/java/com/cloud/offering/NetworkOffering.java @@ -70,6 +70,7 @@ enum RoutingMode { public static final String DEFAULT_ROUTED_NSX_OFFERING = "DefaultRoutedNSXNetworkOffering"; public final static String QuickCloudNoServices = "QuickCloudNoServices"; public final static String DefaultIsolatedNetworkOfferingWithSourceNatService = "DefaultIsolatedNetworkOfferingWithSourceNatService"; + public final static String DefaultIsolatedNetworkOfferingWithSourceNatServiceDefaultEgressAllowed = "DefaultIsolatedNetworkOfferingWithSourceNatServiceEgressAllowed"; public final static String OvsIsolatedNetworkOfferingWithSourceNatService = "OvsIsolatedNetworkOfferingWithSourceNatService"; public final static String DefaultSharedNetworkOffering = "DefaultSharedNetworkOffering"; public final static String DefaultIsolatedNetworkOffering = "DefaultIsolatedNetworkOffering"; diff --git a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java index 8af75562b31c..74e7fae2afd7 100644 --- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java +++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java @@ -636,6 +636,14 @@ public void doInTransactionWithoutResult(final TransactionStatus status) { true, false, false, false, false, null, null, null, true, null, null, false); } + //#4-2 - default isolated offering with Source nat service and egress traffic allowed by default + if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceDefaultEgressAllowed) == null) { + offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceDefaultEgressAllowed, + "Offering for Isolated networks with Source Nat service enabled and egress traffic allowed by default", TrafficType.Guest, null, false, Availability.Optional, null, + defaultIsolatedSourceNatEnabledNetworkOfferingProviders, true, Network.GuestType.Isolated, false, null, true, null, false, false, null, true, null, + true, false, false, false, false, null, null, null, true, null, null, false); + } + //#5 - default vpc offering with LB service if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworks) == null) { offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworks, diff --git a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java index fc22e68985d2..d8e941e3e21e 100644 --- a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java +++ b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java @@ -138,7 +138,7 @@ public class NetworkOfferingVO implements NetworkOffering { NetworkMode networkMode; @Column(name = "egress_default_policy") - boolean egressdefaultpolicy; + boolean egressDefaultPolicy; @Column(name = "concurrent_connections") Integer concurrentConnections; @@ -343,12 +343,16 @@ public void setRedundantRouter(boolean redundantRouter) { @Override public boolean isEgressDefaultPolicy() { - return egressdefaultpolicy; + return egressDefaultPolicy; + } + + public void setEgressDefaultPolicy(boolean egressDefaultPolicy) { + this.egressDefaultPolicy = egressDefaultPolicy; } public NetworkOfferingVO(String name, String displayText, TrafficType trafficType, boolean systemOnly, boolean specifyVlan, Integer rateMbps, - Integer multicastRateMbps, boolean isDefault, Availability availability, String tags, Network.GuestType guestType, boolean conserveMode, - boolean specifyIpRanges, boolean isPersistent, boolean internalLb, boolean publicLb, boolean isForVpc) { + Integer multicastRateMbps, boolean isDefault, Availability availability, String tags, Network.GuestType guestType, boolean conserveMode, + boolean specifyIpRanges, boolean isPersistent, boolean internalLb, boolean publicLb, boolean isForVpc) { this.name = name; this.displayText = displayText; this.rateMbps = rateMbps; @@ -404,7 +408,7 @@ public NetworkOfferingVO(String name, String displayText, TrafficType trafficTyp this.elasticLb = elasticLb; this.inline = inline; this.eipAssociatePublicIp = associatePublicIP; - this.egressdefaultpolicy = egressdefaultpolicy; + this.egressDefaultPolicy = egressdefaultpolicy; this.supportsStrechedL2 = supportsStrechedL2; this.supportsPublicAccess = supportsPublicAccess; } diff --git a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java index def564dfdc68..98095b6f188a 100644 --- a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java @@ -1070,12 +1070,29 @@ public void doInTransactionWithoutResult(TransactionStatus status) { defaultIsolatedSourceNatEnabledNetworkOffering.setSupportsVmAutoScaling(true); defaultIsolatedSourceNatEnabledNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(defaultIsolatedSourceNatEnabledNetworkOffering); + // Offering #3-2 + NetworkOfferingVO defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed = + new NetworkOfferingVO(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceDefaultEgressAllowed, + "Offering for Isolated networks with Source Nat service enabled and egress traffic allowed by default", TrafficType.Guest, false, false, null, null, true, Availability.Optional, null, + Network.GuestType.Isolated, true, false, false, false, true, false); + + defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed.setState(NetworkOffering.State.Enabled); + defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed.setSupportsVmAutoScaling(true); + defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed.setEgressDefaultPolicy(true); + defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed = _networkOfferingDao.persistDefaultNetworkOffering(defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed); + for (Service service : defaultIsolatedSourceNatEnabledNetworkOfferingProviders.keySet()) { NetworkOfferingServiceMapVO offService = new NetworkOfferingServiceMapVO(defaultIsolatedSourceNatEnabledNetworkOffering.getId(), service, defaultIsolatedSourceNatEnabledNetworkOfferingProviders.get(service)); _ntwkOfferingServiceMapDao.persist(offService); - logger.trace("Added service for the network offering: " + offService); + logger.trace("Added service {} for the network offering: {}", offService, defaultIsolatedSourceNatEnabledNetworkOffering.getUniqueName()); + + offService = + new NetworkOfferingServiceMapVO(defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed.getId(), service, + defaultIsolatedSourceNatEnabledNetworkOfferingProviders.get(service)); + _ntwkOfferingServiceMapDao.persist(offService); + logger.trace("Added service {} for the network offering: {}", offService, defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed.getUniqueName()); } // Offering #4 From 41a9378923921bc082b3994c96580efb9b348c7d Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Tue, 6 Oct 2026 12:29:04 +0200 Subject: [PATCH 2/5] network: align upgraded default egress-allowed offering with fresh install (PR 14286) The offering created at management server startup on upgraded setups used the capability-map defaults, so it had no dedicated LB, no associate public IP and no VM autoscaling support, and a multicast rate of 10. Set the same values as the fresh-install path in ConfigurationServerImpl. --- .../orchestration/NetworkOrchestrator.java | 32 +++++++++++-------- .../cloud/offerings/NetworkOfferingVO.java | 4 +++ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java index 74e7fae2afd7..486f7b1602ba 100644 --- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java +++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java @@ -581,19 +581,19 @@ public boolean configure(final String name, final Map params) th defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Vpn, defaultProviders); final Map> defaultVPCOffProviders = new HashMap<>(); - defaultProviders.clear(); - defaultProviders.add(Network.Provider.VPCVirtualRouter); - defaultVPCOffProviders.put(Service.Dhcp, defaultProviders); - defaultVPCOffProviders.put(Service.Dns, defaultProviders); - defaultVPCOffProviders.put(Service.UserData, defaultProviders); - defaultVPCOffProviders.put(Service.NetworkACL, defaultProviders); - defaultVPCOffProviders.put(Service.Gateway, defaultProviders); - defaultVPCOffProviders.put(Service.Lb, defaultProviders); - defaultVPCOffProviders.put(Service.SourceNat, defaultProviders); - defaultVPCOffProviders.put(Service.StaticNat, defaultProviders); - defaultVPCOffProviders.put(Service.PortForwarding, defaultProviders); - defaultVPCOffProviders.put(Service.Vpn, defaultProviders); - defaultVPCOffProviders.put(Service.Firewall, defaultProviders); + final Set defaultVpcProviders = new HashSet<>(); + defaultVpcProviders.add(Network.Provider.VPCVirtualRouter); + defaultVPCOffProviders.put(Service.Dhcp, defaultVpcProviders); + defaultVPCOffProviders.put(Service.Dns, defaultVpcProviders); + defaultVPCOffProviders.put(Service.UserData, defaultVpcProviders); + defaultVPCOffProviders.put(Service.NetworkACL, defaultVpcProviders); + defaultVPCOffProviders.put(Service.Gateway, defaultVpcProviders); + defaultVPCOffProviders.put(Service.Lb, defaultVpcProviders); + defaultVPCOffProviders.put(Service.SourceNat, defaultVpcProviders); + defaultVPCOffProviders.put(Service.StaticNat, defaultVpcProviders); + defaultVPCOffProviders.put(Service.PortForwarding, defaultVpcProviders); + defaultVPCOffProviders.put(Service.Vpn, defaultVpcProviders); + defaultVPCOffProviders.put(Service.Firewall, defaultVpcProviders); Transaction.execute(new TransactionCallbackNoReturn() { @Override @@ -642,6 +642,12 @@ public void doInTransactionWithoutResult(final TransactionStatus status) { "Offering for Isolated networks with Source Nat service enabled and egress traffic allowed by default", TrafficType.Guest, null, false, Availability.Optional, null, defaultIsolatedSourceNatEnabledNetworkOfferingProviders, true, Network.GuestType.Isolated, false, null, true, null, false, false, null, true, null, true, false, false, false, false, null, null, null, true, null, null, false); + // keep consistent with the offering created on fresh installation (ConfigurationServerImpl) + offering.setMulticastRateMbps(null); + offering.setDedicatedLB(true); + offering.setAssociatePublicIP(true); + offering.setSupportsVmAutoScaling(true); + _networkOfferingDao.update(offering.getId(), offering); } //#5 - default vpc offering with LB service diff --git a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java index d8e941e3e21e..114e4d582a5c 100644 --- a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java +++ b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java @@ -492,6 +492,10 @@ public boolean isAssociatePublicIP() { return eipAssociatePublicIp; } + public void setAssociatePublicIP(boolean associatePublicIP) { + this.eipAssociatePublicIp = associatePublicIP; + } + @Override public boolean isElasticLb() { return elasticLb; From 8b4b90fa1ff0aa65aab9a369ececd4832c9ce21f Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 12 Oct 2026 09:26:20 +0200 Subject: [PATCH 3/5] rename to setEipAssociatePublicIp (PR 14286) --- .../cloudstack/engine/orchestration/NetworkOrchestrator.java | 2 +- .../src/main/java/com/cloud/offerings/NetworkOfferingVO.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java index 486f7b1602ba..572aa8201846 100644 --- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java +++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java @@ -645,7 +645,7 @@ public void doInTransactionWithoutResult(final TransactionStatus status) { // keep consistent with the offering created on fresh installation (ConfigurationServerImpl) offering.setMulticastRateMbps(null); offering.setDedicatedLB(true); - offering.setAssociatePublicIP(true); + offering.setEipAssociatePublicIp(true); offering.setSupportsVmAutoScaling(true); _networkOfferingDao.update(offering.getId(), offering); } diff --git a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java index 114e4d582a5c..798415c9e866 100644 --- a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java +++ b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java @@ -492,8 +492,8 @@ public boolean isAssociatePublicIP() { return eipAssociatePublicIp; } - public void setAssociatePublicIP(boolean associatePublicIP) { - this.eipAssociatePublicIp = associatePublicIP; + public void setEipAssociatePublicIp(boolean eipAssociatePublicIp) { + this.eipAssociatePublicIp = eipAssociatePublicIp; } @Override From 229b48b5d4483265f7e13dbe210ae0798872bd99 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 12 Oct 2026 10:39:26 +0200 Subject: [PATCH 4/5] network: rename default egress allowed offering constant and disable keep-alive (PR 14286) Drop "Default" from the constant name so that it matches the offering name, and create the offering on upgraded setups with keep-alive disabled, like the other default offerings and the API default. --- api/src/main/java/com/cloud/offering/NetworkOffering.java | 2 +- .../engine/orchestration/NetworkOrchestrator.java | 6 ++++-- .../main/java/com/cloud/server/ConfigurationServerImpl.java | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/com/cloud/offering/NetworkOffering.java b/api/src/main/java/com/cloud/offering/NetworkOffering.java index ef20e5e35331..159c1e2fe319 100644 --- a/api/src/main/java/com/cloud/offering/NetworkOffering.java +++ b/api/src/main/java/com/cloud/offering/NetworkOffering.java @@ -70,7 +70,7 @@ enum RoutingMode { public static final String DEFAULT_ROUTED_NSX_OFFERING = "DefaultRoutedNSXNetworkOffering"; public final static String QuickCloudNoServices = "QuickCloudNoServices"; public final static String DefaultIsolatedNetworkOfferingWithSourceNatService = "DefaultIsolatedNetworkOfferingWithSourceNatService"; - public final static String DefaultIsolatedNetworkOfferingWithSourceNatServiceDefaultEgressAllowed = "DefaultIsolatedNetworkOfferingWithSourceNatServiceEgressAllowed"; + public final static String DefaultIsolatedNetworkOfferingWithSourceNatServiceEgressAllowed = "DefaultIsolatedNetworkOfferingWithSourceNatServiceEgressAllowed"; public final static String OvsIsolatedNetworkOfferingWithSourceNatService = "OvsIsolatedNetworkOfferingWithSourceNatService"; public final static String DefaultSharedNetworkOffering = "DefaultSharedNetworkOffering"; public final static String DefaultIsolatedNetworkOffering = "DefaultIsolatedNetworkOffering"; diff --git a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java index 572aa8201846..4ee574b3547e 100644 --- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java +++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java @@ -637,8 +637,8 @@ public void doInTransactionWithoutResult(final TransactionStatus status) { } //#4-2 - default isolated offering with Source nat service and egress traffic allowed by default - if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceDefaultEgressAllowed) == null) { - offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceDefaultEgressAllowed, + if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceEgressAllowed) == null) { + offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceEgressAllowed, "Offering for Isolated networks with Source Nat service enabled and egress traffic allowed by default", TrafficType.Guest, null, false, Availability.Optional, null, defaultIsolatedSourceNatEnabledNetworkOfferingProviders, true, Network.GuestType.Isolated, false, null, true, null, false, false, null, true, null, true, false, false, false, false, null, null, null, true, null, null, false); @@ -647,6 +647,8 @@ public void doInTransactionWithoutResult(final TransactionStatus status) { offering.setDedicatedLB(true); offering.setEipAssociatePublicIp(true); offering.setSupportsVmAutoScaling(true); + offering.setEgressDefaultPolicy(true); + offering.setKeepAliveEnabled(false); _networkOfferingDao.update(offering.getId(), offering); } diff --git a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java index 98095b6f188a..bf236e606d23 100644 --- a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java @@ -1072,7 +1072,7 @@ public void doInTransactionWithoutResult(TransactionStatus status) { // Offering #3-2 NetworkOfferingVO defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed = - new NetworkOfferingVO(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceDefaultEgressAllowed, + new NetworkOfferingVO(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatServiceEgressAllowed, "Offering for Isolated networks with Source Nat service enabled and egress traffic allowed by default", TrafficType.Guest, false, false, null, null, true, Availability.Optional, null, Network.GuestType.Isolated, true, false, false, false, true, false); From 5eca121d6857f031877b766fbfec7c5e7edd6fa5 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Tue, 20 Oct 2026 12:39:14 +0200 Subject: [PATCH 5/5] network: address review comments on the egress allowed offering (PR 14286) Rename the NetworkOfferingVO constructor parameter egressdefaultpolicy to egressDefaultPolicy to match the field, and log the service instead of the whole service map entry in the default offering trace messages. --- .../src/main/java/com/cloud/offerings/NetworkOfferingVO.java | 4 ++-- .../main/java/com/cloud/server/ConfigurationServerImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java index 798415c9e866..c9dc0723632f 100644 --- a/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java +++ b/engine/schema/src/main/java/com/cloud/offerings/NetworkOfferingVO.java @@ -384,7 +384,7 @@ public NetworkOfferingVO(String name, String displayText, TrafficType trafficTyp public NetworkOfferingVO(String name, String displayText, TrafficType trafficType, boolean systemOnly, boolean specifyVlan, Integer rateMbps, Integer multicastRateMbps, boolean isDefault, Availability availability, String tags, Network.GuestType guestType, boolean conserveMode, boolean dedicatedLb, boolean sharedSourceNat, boolean redundantRouter, boolean elasticIp, boolean elasticLb, boolean specifyIpRanges, boolean inline, boolean isPersistent, - boolean associatePublicIP, boolean publicLb, boolean internalLb, boolean isForVpc, boolean egressdefaultpolicy, boolean supportsStrechedL2, boolean supportsPublicAccess) { + boolean associatePublicIP, boolean publicLb, boolean internalLb, boolean isForVpc, boolean egressDefaultPolicy, boolean supportsStrechedL2, boolean supportsPublicAccess) { this(name, displayText, trafficType, @@ -408,7 +408,7 @@ public NetworkOfferingVO(String name, String displayText, TrafficType trafficTyp this.elasticLb = elasticLb; this.inline = inline; this.eipAssociatePublicIp = associatePublicIP; - this.egressDefaultPolicy = egressdefaultpolicy; + this.egressDefaultPolicy = egressDefaultPolicy; this.supportsStrechedL2 = supportsStrechedL2; this.supportsPublicAccess = supportsPublicAccess; } diff --git a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java index bf236e606d23..1f48967b253e 100644 --- a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java @@ -1086,13 +1086,13 @@ public void doInTransactionWithoutResult(TransactionStatus status) { new NetworkOfferingServiceMapVO(defaultIsolatedSourceNatEnabledNetworkOffering.getId(), service, defaultIsolatedSourceNatEnabledNetworkOfferingProviders.get(service)); _ntwkOfferingServiceMapDao.persist(offService); - logger.trace("Added service {} for the network offering: {}", offService, defaultIsolatedSourceNatEnabledNetworkOffering.getUniqueName()); + logger.trace("Added service {} for the network offering: {}", service, defaultIsolatedSourceNatEnabledNetworkOffering.getUniqueName()); offService = new NetworkOfferingServiceMapVO(defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed.getId(), service, defaultIsolatedSourceNatEnabledNetworkOfferingProviders.get(service)); _ntwkOfferingServiceMapDao.persist(offService); - logger.trace("Added service {} for the network offering: {}", offService, defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed.getUniqueName()); + logger.trace("Added service {} for the network offering: {}", service, defaultIsolatedSourceNatEnabledNetworkOfferingWithDefaultEgressAllowed.getUniqueName()); } // Offering #4