From 1b16ad0f93e48e5b7b58f5af69f7b8c6b3d127be Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Fri, 24 Feb 2012 15:31:17 -0800 Subject: [PATCH] Clone services map when do provider/service verification during network offering addition. Reviewed-by: Prachi Damle --- server/src/com/cloud/network/NetworkManagerImpl.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 80e3820cc4b..9c8547a032a 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -5977,20 +5977,22 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag throw new InvalidParameterValueException("Unable to find the Network Element implementing the Service Provider '" + provider.getName() + "'"); } - Set enabledServices = providersMap.get(provider); + Set enabledServices = new HashSet(); + enabledServices.addAll(providersMap.get(provider)); if (enabledServices != null && !enabledServices.isEmpty()) { if (!element.canEnableIndividualServices()) { - Set requiredServices = element.getCapabilities().keySet(); + Set requiredServices = new HashSet(); + requiredServices.addAll(element.getCapabilities().keySet()); + if (requiredServices.contains(Network.Service.Gateway)) { requiredServices.remove(Network.Service.Gateway); } - - // Remove firewall from the list of services-to-compare + if (requiredServices.contains(Network.Service.Firewall)) { requiredServices.remove(Network.Service.Firewall); } - + if (enabledServices.contains(Network.Service.Firewall)) { enabledServices.remove(Network.Service.Firewall); }