CS-16187: don't allow vpc offering creation with unsupported services (Firewall, SecurityGroup)
Conflicts: server/src/com/cloud/network/vpc/VpcManagerImpl.java Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/f5c93973 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/f5c93973 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/f5c93973 Branch: refs/heads/4.0 Commit: f5c939732706228ca6044b561d4a4d6eb994b340 Parents: d0c526f Author: Alena Prokharchyk <alena.prokharc...@citrix.com> Authored: Tue Sep 11 16:59:43 2012 -0700 Committer: Alena Prokharchyk <alena.prokharc...@citrix.com> Committed: Tue Sep 11 17:05:04 2012 -0700 ---------------------------------------------------------------------- .../src/com/cloud/network/vpc/VpcManagerImpl.java | 13 +++++-------- 1 files changed, 5 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f5c93973/server/src/com/cloud/network/vpc/VpcManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index 08a03b1..675ae59 100644 --- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java @@ -17,6 +17,7 @@ package com.cloud.network.vpc; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -53,7 +54,6 @@ import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.exception.UnsupportedServiceException; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.network.IPAddressVO; import com.cloud.network.IpAddress; @@ -167,7 +167,8 @@ public class VpcManagerImpl implements VpcManager, Manager{ private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("VpcChecker")); private VpcProvider vpcElement = null; - + private final List<Service> nonSupportedServices = Arrays.asList(Service.SecurityGroup, Service.Firewall); + String _name; int _cleanupInterval; int _maxNetworks; @@ -265,14 +266,10 @@ public class VpcManagerImpl implements VpcManager, Manager{ for (String serviceName : supportedServices) { // validate if the service is supported Service service = Network.Service.getService(serviceName); - if (service == null || service == Service.Gateway) { - throw new InvalidParameterValueException("Invalid service " + serviceName); + if (service == null || nonSupportedServices.contains(service)) { + throw new InvalidParameterValueException("Service " + serviceName + " is not supported in VPC"); } - //don't allow security group service for vpc - if (service == Service.SecurityGroup) { - throw new UnsupportedServiceException("Service " + Service.SecurityGroup.getName() + " is not supported by VPC"); - } svcProviderMap.put(service, defaultProviders); if (service == Service.NetworkACL) { firewallSvs = true;