mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-2883: create default network offering with internal lb support (if doesn't exist already)
This commit is contained in:
parent
880029844b
commit
5d0a1cee13
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -414,4 +414,8 @@ public class NetworkOfferingVO implements NetworkOffering {
|
|||
return publicLb;
|
||||
}
|
||||
|
||||
public void setInternalLb(boolean internalLb) {
|
||||
this.internalLb = internalLb;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue