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/vmsync
Commit: 5d0a1cee13fb3006f3e35cd221e553587ea20ce2
Parents: 8800298
Author: Alena Prokharchyk <alena.prokharc...@citrix.com>
Authored: Mon Jun 17 16:10:12 2013 -0700
Committer: Alena Prokharchyk <alena.prokharc...@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();
     }

Reply via email to