From 7fcfcdf91e49d64375171c9ae7fe61067aa59b6e Mon Sep 17 00:00:00 2001 From: Murali Reddy Date: Thu, 6 Dec 2012 13:06:18 +0530 Subject: [PATCH] Summary: check-in for L4-L7 network services in the shared network in the advanced zone Details: 1). Added validation to check the Vlan Id specified in the createNetwork() does not overlap with any of the vlan's used by isolated networks or shared networks in the zone. 2). state change for shared network with services to go to 'Setup' state on network shutdown instead of 'Allocated' Bug ID:CLOUDSTACK-312 enable L4-L7 network services in the shared network in the advanced zone --- .../com/cloud/network/NetworkManagerImpl.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 39d7f54bd0c..b3fdf32aa7f 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -2911,10 +2911,11 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag throw new InvalidParameterValueException("Network with vlan " + vlanId + " already exists in zone " + zoneId); } } else { - //don't allow to create Shared network with Vlan that already exists in the zone for Isolated networks - if (_networksDao.countByZoneUriAndGuestType(zoneId, uri, GuestType.Isolated) > 0) { - throw new InvalidParameterValueException("Isolated network with vlan " + vlanId + " already exists " + - "in zone " + zoneId); + //don't allow to creating shared network with given Vlan ID, if there already exists a isolated network or + //shared network with same Vlan ID in the zone + if (_networksDao.countByZoneUriAndGuestType(zoneId, uri, GuestType.Isolated) > 0 || + _networksDao.countByZoneUriAndGuestType(zoneId, uri, GuestType.Shared) > 0) { + throw new InvalidParameterValueException("There is a isolated/shared network with vlan id: " + vlanId + " already exists " + "in zone " + zoneId); } } } @@ -3502,7 +3503,13 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag applyProfileToNetwork(network, profile); - network.setState(Network.State.Allocated); + DataCenterVO zone = _dcDao.findById(network.getDataCenterId()); + if (isSharedNetworkOfferingWithServices(network.getNetworkOfferingId()) && (zone.getNetworkType() == NetworkType.Advanced)) { + network.setState(Network.State.Setup); + } else { + network.setState(Network.State.Allocated); + } + network.setRestartRequired(false); _networksDao.update(network.getId(), network); _networksDao.clearCheckForGc(networkId);