CLOUDSTACK-737,
allow to add security group enabled networks in security group enabled
zone
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit:
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/95aef332
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/95aef332
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/95aef332
Branch: refs/heads/ui-plugins
Commit: 95aef332cc851f91bafb9af7bf5f0f682bb566ce
Parents: 485761f
Author: anthony <[email protected]>
Authored: Wed Jan 23 11:08:24 2013 -0800
Committer: anthony <[email protected]>
Committed: Wed Jan 23 11:08:24 2013 -0800
----------------------------------------------------------------------
.../configuration/ConfigurationManagerImpl.java | 10 ++---
.../consoleproxy/ConsoleProxyManagerImpl.java | 29 +++++++++-----
.../secondary/SecondaryStorageManagerImpl.java | 32 +++++++++-----
3 files changed, 43 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/95aef332/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index df6642a..f976fd2 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -1526,13 +1526,11 @@ public class ConfigurationManagerImpl implements
ConfigurationManager, Configura
// check if zone has necessary trafficTypes before enabling
try {
PhysicalNetwork mgmtPhyNetwork;
- if (NetworkType.Advanced == zone.getNetworkType()) {
- // zone should have a physical network with public and
management traffiType
+ // zone should have a physical network with management
traffiType
+ mgmtPhyNetwork =
_networkModel.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId,
TrafficType.Management);
+ if (NetworkType.Advanced == zone.getNetworkType() && !
zone.isSecurityGroupEnabled() ) {
+ // advanced zone without SG should have a physical
network with public Thpe
_networkModel.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId,
TrafficType.Public);
- mgmtPhyNetwork =
_networkModel.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId,
TrafficType.Management);
- } else {
- // zone should have a physical network with management
traffiType
- mgmtPhyNetwork =
_networkModel.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId,
TrafficType.Management);
}
try {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/95aef332/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
index 6b2d8ad..2d10497 100755
--- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
+++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
@@ -756,19 +756,28 @@ public class ConsoleProxyManagerImpl implements
ConsoleProxyManager, ConsoleProx
DataCenterDeployment plan = new DataCenterDeployment(dataCenterId);
- TrafficType defaultTrafficType = TrafficType.Public;
- if (dc.getNetworkType() == NetworkType.Basic ||
dc.isSecurityGroupEnabled()) {
- defaultTrafficType = TrafficType.Guest;
- }
-
- List<NetworkVO> defaultNetworks =
_networkDao.listByZoneAndTrafficType(dataCenterId, defaultTrafficType);
+ NetworkVO defaultNetwork = null;
+ if (dc.getNetworkType() == NetworkType.Advanced &&
dc.isSecurityGroupEnabled()) {
+ List<NetworkVO> networks =
_networkDao.listByZoneSecurityGroup(dataCenterId);
+ if (networks == null || networks.size() == 0) {
+ throw new CloudRuntimeException("Can not found security
enabled network in SG Zone " + dc);
+ }
+ defaultNetwork = networks.get(0);
+ } else {
+ TrafficType defaultTrafficType = TrafficType.Public;
+ if (dc.getNetworkType() == NetworkType.Basic ||
dc.isSecurityGroupEnabled()) {
+ defaultTrafficType = TrafficType.Guest;
+ }
+ List<NetworkVO> defaultNetworks =
_networkDao.listByZoneAndTrafficType(dataCenterId, defaultTrafficType);
- if (defaultNetworks.size() != 1) {
- throw new CloudRuntimeException("Found " + defaultNetworks.size()
+ " networks of type " + defaultTrafficType + " when expect to find 1");
+ // api should never allow this situation to happen
+ if (defaultNetworks.size() != 1) {
+ throw new CloudRuntimeException("Found " +
defaultNetworks.size() + " networks of type "
+ + defaultTrafficType + " when expect to find 1");
+ }
+ defaultNetwork = defaultNetworks.get(0);
}
- NetworkVO defaultNetwork = defaultNetworks.get(0);
-
List<? extends NetworkOffering> offerings =
_networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork,
NetworkOffering.SystemManagementNetwork);
List<Pair<NetworkVO, NicProfile>> networks = new
ArrayList<Pair<NetworkVO, NicProfile>>(offerings.size() + 1);
NicProfile defaultNic = new NicProfile();
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/95aef332/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
----------------------------------------------------------------------
diff --git
a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
index e420881..b53ecd3 100755
--- a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
+++ b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
@@ -537,19 +537,27 @@ public class SecondaryStorageManagerImpl implements
SecondaryStorageVmManager, V
DataCenterDeployment plan = new DataCenterDeployment(dataCenterId);
DataCenter dc = _dcDao.findById(plan.getDataCenterId());
- TrafficType defaultTrafficType = TrafficType.Public;
- if (dc.getNetworkType() == NetworkType.Basic ||
dc.isSecurityGroupEnabled()) {
- defaultTrafficType = TrafficType.Guest;
- }
-
- List<NetworkVO> defaultNetworks =
_networkDao.listByZoneAndTrafficType(dataCenterId, defaultTrafficType);
-
- //api should never allow this situation to happen
- if (defaultNetworks.size() != 1) {
- throw new CloudRuntimeException("Found " +
defaultNetworks.size() + " networks of type " + defaultTrafficType + " when
expect to find 1");
+ NetworkVO defaultNetwork = null;
+ if (dc.getNetworkType() == NetworkType.Advanced &&
dc.isSecurityGroupEnabled()) {
+ List<NetworkVO> networks =
_networkDao.listByZoneSecurityGroup(dataCenterId);
+ if (networks == null || networks.size() == 0) {
+ throw new CloudRuntimeException("Can not found security
enabled network in SG Zone " + dc);
+ }
+ defaultNetwork = networks.get(0);
+ } else {
+ TrafficType defaultTrafficType = TrafficType.Public;
+
+ if (dc.getNetworkType() == NetworkType.Basic ||
dc.isSecurityGroupEnabled()) {
+ defaultTrafficType = TrafficType.Guest;
+ }
+ List<NetworkVO> defaultNetworks =
_networkDao.listByZoneAndTrafficType(dataCenterId, defaultTrafficType);
+ // api should never allow this situation to happen
+ if (defaultNetworks.size() != 1) {
+ throw new CloudRuntimeException("Found " +
defaultNetworks.size() + " networks of type "
+ + defaultTrafficType + " when expect to find
1");
+ }
+ defaultNetwork = defaultNetworks.get(0);
}
-
- NetworkVO defaultNetwork = defaultNetworks.get(0);
List<? extends NetworkOffering> offerings =
_networkModel.getSystemAccountNetworkOfferings(NetworkOfferingVO.SystemControlNetwork,
NetworkOfferingVO.SystemManagementNetwork,
NetworkOfferingVO.SystemStorageNetwork);
List<Pair<NetworkVO, NicProfile>> networks = new
ArrayList<Pair<NetworkVO, NicProfile>>(offerings.size() + 1);