You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2013/06/18 01:19:23 UTC
git commit: updated refs/heads/master to 5d0a1ce
Updated Branches:
refs/heads/master 880029844 -> 5d0a1cee1
CLOUDSTACK-2883: create default network offering with internal lb support (if doesn't exist already)
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5d0a1cee
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5d0a1cee
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5d0a1cee
Branch: refs/heads/master
Commit: 5d0a1cee13fb3006f3e35cd221e553587ea20ce2
Parents: 8800298
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Mon Jun 17 16:10:12 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Mon Jun 17 16:13:19 2013 -0700
----------------------------------------------------------------------
api/src/com/cloud/offering/NetworkOffering.java | 4 +-
.../com/cloud/offerings/NetworkOfferingVO.java | 4 ++
.../configuration/ConfigurationManagerImpl.java | 3 +-
.../com/cloud/network/NetworkManagerImpl.java | 65 ++++++++++++++------
.../cloud/server/ConfigurationServerImpl.java | 25 ++++++++
5 files changed, 78 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d0a1cee/api/src/com/cloud/offering/NetworkOffering.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/offering/NetworkOffering.java b/api/src/com/cloud/offering/NetworkOffering.java
index 72e2a2b..5f522eb 100644
--- a/api/src/com/cloud/offering/NetworkOffering.java
+++ b/api/src/com/cloud/offering/NetworkOffering.java
@@ -16,8 +16,6 @@
// under the License.
package com.cloud.offering;
-import java.util.Map;
-
import org.apache.cloudstack.acl.InfrastructureEntity;
import org.apache.cloudstack.api.Identity;
import org.apache.cloudstack.api.InternalIdentity;
@@ -61,6 +59,8 @@ public interface NetworkOffering extends InfrastructureEntity, InternalIdentity,
public final static String DefaultSharedEIPandELBNetworkOffering = "DefaultSharedNetscalerEIPandELBNetworkOffering";
public final static String DefaultIsolatedNetworkOfferingForVpcNetworks = "DefaultIsolatedNetworkOfferingForVpcNetworks";
public final static String DefaultIsolatedNetworkOfferingForVpcNetworksNoLB = "DefaultIsolatedNetworkOfferingForVpcNetworksNoLB";
+ public final static String DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB = "DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB";
+
/**
* @return name for the network offering.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d0a1cee/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java b/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java
index 3ae0bf3..fae315b 100755
--- a/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java
+++ b/engine/schema/src/com/cloud/offerings/NetworkOfferingVO.java
@@ -414,4 +414,8 @@ public class NetworkOfferingVO implements NetworkOffering {
return publicLb;
}
+ public void setInternalLb(boolean internalLb) {
+ this.internalLb = internalLb;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d0a1cee/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 12164a2..6dac26c 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -39,7 +39,6 @@ import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
-import com.cloud.utils.Pair;
import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.api.ApiConstants.LDAPParams;
import org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd;
@@ -125,7 +124,6 @@ import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.MissingParameterValueException;
import com.cloud.exception.PermissionDeniedException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
@@ -193,6 +191,7 @@ import com.cloud.user.User;
import com.cloud.user.UserContext;
import com.cloud.user.dao.AccountDao;
import com.cloud.utils.NumbersUtil;
+import com.cloud.utils.Pair;
import com.cloud.utils.StringUtils;
import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.crypt.DBEncryptionUtil;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d0a1cee/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index f563335..274e794 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -1239,9 +1239,6 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
_networkLockTimeout = NumbersUtil.parseInt(_configs.get(Config.NetworkLockTimeout.key()), 600);
-
-
-
// populate providers
Map<Network.Service, Set<Network.Provider>> defaultSharedNetworkOfferingProviders = new HashMap<Network.Service, Set<Network.Provider>>();
Set<Network.Provider> defaultProviders = new HashSet<Network.Provider>();
@@ -1252,6 +1249,15 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
defaultSharedNetworkOfferingProviders.put(Service.UserData, defaultProviders);
Map<Network.Service, Set<Network.Provider>> defaultIsolatedNetworkOfferingProviders = defaultSharedNetworkOfferingProviders;
+ defaultIsolatedNetworkOfferingProviders.put(Service.Dhcp, defaultProviders);
+ defaultIsolatedNetworkOfferingProviders.put(Service.Dns, defaultProviders);
+ defaultIsolatedNetworkOfferingProviders.put(Service.UserData, defaultProviders);
+ defaultIsolatedNetworkOfferingProviders.put(Service.Firewall, defaultProviders);
+ defaultIsolatedNetworkOfferingProviders.put(Service.Gateway, defaultProviders);
+ defaultIsolatedNetworkOfferingProviders.put(Service.Lb, defaultProviders);
+ defaultIsolatedNetworkOfferingProviders.put(Service.StaticNat, defaultProviders);
+ defaultIsolatedNetworkOfferingProviders.put(Service.PortForwarding, defaultProviders);
+ defaultIsolatedNetworkOfferingProviders.put(Service.Vpn, defaultProviders);
Map<Network.Service, Set<Network.Provider>> defaultSharedSGEnabledNetworkOfferingProviders = new HashMap<Network.Service, Set<Network.Provider>>();
defaultSharedSGEnabledNetworkOfferingProviders.put(Service.Dhcp, defaultProviders);
@@ -1294,9 +1300,9 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
Transaction txn = Transaction.currentTxn();
txn.start();
- // diff between offering #1 and #2 - securityGroup is enabled for the first, and disabled for the third
NetworkOfferingVO offering = null;
+ //#1 - quick cloud network offering
if (_networkOfferingDao.findByUniqueName(NetworkOffering.QuickCloudNoServices) == null) {
offering =
_configMgr.createNetworkOffering(NetworkOffering.QuickCloudNoServices,
@@ -1306,6 +1312,8 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
offering.setState(NetworkOffering.State.Enabled);
_networkOfferingDao.update(offering.getId(), offering);
}
+
+ //#2 - SG enabled network offering
if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultSharedNetworkOfferingWithSGService) == null) {
offering =
_configMgr.createNetworkOffering(NetworkOffering.DefaultSharedNetworkOfferingWithSGService,
@@ -1316,36 +1324,26 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
_networkOfferingDao.update(offering.getId(), offering);
}
+ //#3 - shared network offering with no SG service
if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultSharedNetworkOffering) == null) {
offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultSharedNetworkOffering, "Offering for Shared networks", TrafficType.Guest, null, true, Availability.Optional, null,
defaultSharedNetworkOfferingProviders, true, Network.GuestType.Shared, false, null, true, null, true, false, null);
offering.setState(NetworkOffering.State.Enabled);
_networkOfferingDao.update(offering.getId(), offering);
}
+
- Map<Network.Service, Set<Network.Provider>> defaultINetworkOfferingProvidersForVpcNetwork = new HashMap<Network.Service, Set<Network.Provider>>();
- defaultProviders.clear();
- defaultProviders.add(Network.Provider.VPCVirtualRouter);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.Dhcp, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.Dns, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.UserData, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.Firewall, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.Gateway, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.Lb, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.SourceNat, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.StaticNat, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.PortForwarding, defaultProviders);
- defaultINetworkOfferingProvidersForVpcNetwork.put(Service.Vpn, defaultProviders);
-
+ //#4 - default isolated offering with Source nat service
if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatService) == null) {
offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingWithSourceNatService,
"Offering for Isolated networks with Source Nat service enabled", TrafficType.Guest,
- null, false, Availability.Required, null, defaultINetworkOfferingProvidersForVpcNetwork,
+ null, false, Availability.Required, null, defaultIsolatedSourceNatEnabledNetworkOfferingProviders,
true, Network.GuestType.Isolated, false, null, true, null, false, false, null);
offering.setState(NetworkOffering.State.Enabled);
_networkOfferingDao.update(offering.getId(), offering);
}
+ //#5 - default vpc offering with LB service
if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworks) == null) {
offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworks,
"Offering for Isolated VPC networks with Source Nat service enabled", TrafficType.Guest,
@@ -1355,6 +1353,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
_networkOfferingDao.update(offering.getId(), offering);
}
+ //#6 - default vpc offering with no LB service
if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworksNoLB) == null) {
//remove LB service
defaultVPCOffProviders.remove(Service.Lb);
@@ -1366,6 +1365,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
_networkOfferingDao.update(offering.getId(), offering);
}
+ //#7 - isolated offering with source nat disabled
if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOffering) == null) {
offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOffering,
"Offering for Isolated networks with no Source Nat service", TrafficType.Guest, null, true,
@@ -1374,6 +1374,33 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
offering.setState(NetworkOffering.State.Enabled);
_networkOfferingDao.update(offering.getId(), offering);
}
+
+ //#8 - network offering with internal lb service
+ Map<Network.Service, Set<Network.Provider>> internalLbOffProviders =
+ new HashMap<Network.Service, Set<Network.Provider>>();
+ Set<Network.Provider> defaultVpcProvider = new HashSet<Network.Provider>();
+ defaultVpcProvider.add(Network.Provider.VPCVirtualRouter);
+
+ Set<Network.Provider> defaultInternalLbProvider = new HashSet<Network.Provider>();
+ defaultInternalLbProvider.add(Network.Provider.InternalLbVm);
+
+ internalLbOffProviders.put(Service.Dhcp, defaultVpcProvider);
+ internalLbOffProviders.put(Service.Dns, defaultVpcProvider);
+ internalLbOffProviders.put(Service.UserData, defaultVpcProvider);
+ internalLbOffProviders.put(Service.NetworkACL, defaultVpcProvider);
+ internalLbOffProviders.put(Service.Gateway, defaultVpcProvider);
+ internalLbOffProviders.put(Service.Lb, defaultInternalLbProvider);
+ internalLbOffProviders.put(Service.SourceNat, defaultVpcProvider);
+
+ if (_networkOfferingDao.findByUniqueName(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB) == null) {
+ offering = _configMgr.createNetworkOffering(NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB,
+ "Offering for Isolated VPC networks with Internal Lb support", TrafficType.Guest,
+ null, false, Availability.Optional, null, internalLbOffProviders,
+ true, Network.GuestType.Isolated, false, null, false, null, false, false, null);
+ offering.setState(NetworkOffering.State.Enabled);
+ offering.setInternalLb(true);
+ _networkOfferingDao.update(offering.getId(), offering);
+ }
Map<Network.Service, Set<Network.Provider>> netscalerServiceProviders = new HashMap<Network.Service, Set<Network.Provider>>();
Set<Network.Provider> vrProvider = new HashSet<Network.Provider>();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d0a1cee/server/src/com/cloud/server/ConfigurationServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java
index d334d7e..510455b 100755
--- a/server/src/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/com/cloud/server/ConfigurationServerImpl.java
@@ -1151,8 +1151,33 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
_ntwkOfferingServiceMapDao.persist(offService);
s_logger.trace("Added service for the network offering: " + offService);
}
+
+ //offering #8 - network offering with internal lb service
+ NetworkOfferingVO internalLbOff = new NetworkOfferingVO(
+ NetworkOffering.DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB,
+ "Offering for Isolated Vpc networks with Internal LB support",
+ TrafficType.Guest,
+ false, false, null, null, true, Availability.Optional,
+ null, Network.GuestType.Isolated, false, false, false, true, false);
+ internalLbOff.setState(NetworkOffering.State.Enabled);
+ internalLbOff = _networkOfferingDao.persistDefaultNetworkOffering(internalLbOff);
+ Map<Network.Service, Network.Provider> internalLbOffProviders = new HashMap<Network.Service, Network.Provider>();
+ internalLbOffProviders.put(Service.Dhcp, Provider.VPCVirtualRouter);
+ internalLbOffProviders.put(Service.Dns, Provider.VPCVirtualRouter);
+ internalLbOffProviders.put(Service.UserData, Provider.VPCVirtualRouter);
+ internalLbOffProviders.put(Service.NetworkACL, Provider.VPCVirtualRouter);
+ internalLbOffProviders.put(Service.Gateway, Provider.VPCVirtualRouter);
+ internalLbOffProviders.put(Service.Lb, Provider.InternalLbVm);
+ internalLbOffProviders.put(Service.SourceNat, Provider.VPCVirtualRouter);
+
+ for (Service service : internalLbOffProviders.keySet()) {
+ NetworkOfferingServiceMapVO offService = new NetworkOfferingServiceMapVO
+ (internalLbOff.getId(), service, internalLbOffProviders.get(service));
+ _ntwkOfferingServiceMapDao.persist(offService);
+ s_logger.trace("Added service for the network offering: " + offService);
+ }
txn.commit();
}