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
This commit is contained in:
Murali Reddy 2012-12-06 13:06:18 +05:30
parent d4c604cfd8
commit 7fcfcdf91e
1 changed files with 12 additions and 5 deletions

View File

@ -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);