Clone services map when do provider/service verification during network offering addition.

Reviewed-by: Prachi Damle
This commit is contained in:
Alena Prokharchyk 2012-02-24 15:31:17 -08:00
parent 01a3a6ba58
commit 1b16ad0f93
1 changed files with 7 additions and 5 deletions

View File

@ -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<Service> enabledServices = providersMap.get(provider);
Set<Service> enabledServices = new HashSet<Service>();
enabledServices.addAll(providersMap.get(provider));
if (enabledServices != null && !enabledServices.isEmpty()) {
if (!element.canEnableIndividualServices()) {
Set<Network.Service> requiredServices = element.getCapabilities().keySet();
Set<Service> requiredServices = new HashSet<Service>();
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);
}