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/04/17 02:11:25 UTC
[1/3] git commit: updated refs/heads/internallb to 501f2ff
Updated Branches:
refs/heads/internallb b7709b89f -> 501f2ffa0
Internal LB: added internal lb vm to the list of supported providers in VPC default offering
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8689bf9e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8689bf9e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8689bf9e
Branch: refs/heads/internallb
Commit: 8689bf9eb38a416997d5ae4d326c51b57b57553e
Parents: b7709b8
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Tue Apr 16 15:59:56 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Apr 16 15:59:56 2013 -0700
----------------------------------------------------------------------
.../ListInternalLoadBalancerElementsCmd.java | 3 +-
.../src/com/cloud/network/vpc/VpcManagerImpl.java | 1 +
.../src/com/cloud/upgrade/dao/Upgrade410to420.java | 44 +++++++++++++-
3 files changed, 42 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8689bf9e/api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java b/api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java
index 122c233..9ef15ff 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/internallb/ListInternalLoadBalancerElementsCmd.java
@@ -26,7 +26,6 @@ import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd;
import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.ProviderResponse;
import org.apache.cloudstack.api.response.VirtualRouterProviderResponse;
@@ -42,7 +41,7 @@ import com.cloud.network.VirtualRouterProvider;
@APICommand(name = "listInternalLoadBalancerElements", description="Lists all available Internal Load Balancer elements.",
responseObject=VirtualRouterProviderResponse.class, since="4.2.0")
public class ListInternalLoadBalancerElementsCmd extends BaseListCmd {
- public static final Logger s_logger = Logger.getLogger(ListNetworkOfferingsCmd.class.getName());
+ public static final Logger s_logger = Logger.getLogger(ListInternalLoadBalancerElementsCmd.class.getName());
private static final String _name = "listinternalloadbalancerelementsresponse";
@Inject
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8689bf9e/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index dbd36ae..06129e0 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -202,6 +202,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
if (svc == Service.Lb) {
Set<Provider> lbProviders = new HashSet<Provider>();
lbProviders.add(Provider.VPCVirtualRouter);
+ lbProviders.add(Provider.InternalLbVm);
svcProviderMap.put(svc, lbProviders);
} else {
svcProviderMap.put(svc, defaultProviders);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8689bf9e/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/upgrade/dao/Upgrade410to420.java b/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
index 05e2b49..7e07245 100644
--- a/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
+++ b/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
@@ -17,10 +17,6 @@
package com.cloud.upgrade.dao;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.script.Script;
-import org.apache.log4j.Logger;
-
import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -28,6 +24,11 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.UUID;
+import org.apache.log4j.Logger;
+
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.script.Script;
+
public class Upgrade410to420 implements DbUpgrade {
final static Logger s_logger = Logger.getLogger(Upgrade410to420.class);
@@ -66,6 +67,7 @@ public class Upgrade410to420 implements DbUpgrade {
updatePrimaryStore(conn);
addEgressFwRulesForSRXGuestNw(conn);
upgradeEIPNetworkOfferings(conn);
+ upgradeDefaultVpcOffering(conn);
}
private void updateSystemVmTemplates(Connection conn) {
@@ -399,4 +401,38 @@ public class Upgrade410to420 implements DbUpgrade {
}
}
}
+
+
+ private void upgradeDefaultVpcOffering(Connection conn) {
+
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+
+ try {
+ pstmt = conn.prepareStatement("select distinct map.vpc_offering_id from `cloud`.`vpc_offering_service_map` map, `cloud`.`vpc_offerings` off where off.id=map.vpc_offering_id AND service='Lb'");
+ rs = pstmt.executeQuery();
+ while (rs.next()) {
+ long id = rs.getLong(1);
+ //Add internal LB vm as a supported provider for the load balancer service
+ pstmt = conn.prepareStatement("INSERT INTO `cloud`.`vpc_offering_service_map` (vpc_offering_id, service, provider) VALUES (?,?,?)");
+ pstmt.setLong(1, id);
+ pstmt.setString(2, "Lb");
+ pstmt.setString(3, "InternalLbVm");
+ pstmt.executeUpdate();
+ }
+
+ } catch (SQLException e) {
+ throw new CloudRuntimeException("Unable update the default VPC offering with the internal lb service", e);
+ } finally {
+ try {
+ if (rs != null) {
+ rs.close();
+ }
+ if (pstmt != null) {
+ pstmt.close();
+ }
+ } catch (SQLException e) {
+ }
+ }
+ }
}
[2/3] git commit: updated refs/heads/internallb to 501f2ff
Posted by al...@apache.org.
InternalLB: in VPC, restrict public LB to one tier only. Internal LB can be supported on multiple tiers
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4d9a7dfd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4d9a7dfd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4d9a7dfd
Branch: refs/heads/internallb
Commit: 4d9a7dfd85f010918749dfe3166d75fe4db68d90
Parents: 8689bf9
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Tue Apr 16 16:03:32 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Apr 16 16:42:13 2013 -0700
----------------------------------------------------------------------
.../src/com/cloud/network/vpc/VpcManagerImpl.java | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4d9a7dfd/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index 06129e0..e38074d 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -115,7 +115,6 @@ import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
-import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.ReservationContext;
import com.cloud.vm.ReservationContextImpl;
import com.cloud.vm.dao.DomainRouterDao;
@@ -179,7 +178,7 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
private final ScheduledExecutorService _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("VpcChecker"));
private List<VpcProvider> vpcElements = null;
private final List<Service> nonSupportedServices = Arrays.asList(Service.SecurityGroup, Service.Firewall);
- private final List<Provider> supportedProviders = Arrays.asList(Provider.VPCVirtualRouter, Provider.NiciraNvp);
+ private final List<Provider> supportedProviders = Arrays.asList(Provider.VPCVirtualRouter, Provider.NiciraNvp, Provider.InternalLbVm);
int _cleanupInterval;
int _maxNetworks;
@@ -1034,16 +1033,17 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
}
}
- //4) Only one network in the VPC can support LB
- if (_ntwkModel.areServicesSupportedByNetworkOffering(guestNtwkOff.getId(), Service.Lb)) {
+ //4) Only one network in the VPC can support public LB inside the VPC. Internal LB can be supported on multiple VPC tiers
+ if (_ntwkModel.areServicesSupportedByNetworkOffering(guestNtwkOff.getId(), Service.Lb) && guestNtwkOff.getPublicLb()) {
List<? extends Network> networks = getVpcNetworks(vpc.getId());
for (Network network : networks) {
if (networkId != null && network.getId() == networkId.longValue()) {
//skip my own network
continue;
} else {
- if (_ntwkModel.areServicesSupportedInNetwork(network.getId(), Service.Lb)) {
- throw new InvalidParameterValueException("LB service is already supported " +
+ NetworkOffering otherOff = _configMgr.getNetworkOffering(network.getNetworkOfferingId());
+ if (_ntwkModel.areServicesSupportedInNetwork(network.getId(), Service.Lb) && otherOff.getPublicLb()) {
+ throw new InvalidParameterValueException("Public LB service is already supported " +
"by network " + network + " in VPC " + vpc);
}
}
[3/3] git commit: updated refs/heads/internallb to 501f2ff
Posted by al...@apache.org.
InternalLb: validate source ip network as a part of LB rule creation
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/501f2ffa
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/501f2ffa
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/501f2ffa
Branch: refs/heads/internallb
Commit: 501f2ffa0b07e80c17e4d6f7a73721d034c8e46a
Parents: 4d9a7df
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Tue Apr 16 17:03:50 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Apr 16 17:03:50 2013 -0700
----------------------------------------------------------------------
.../lb/ApplicationLoadBalancerManagerImpl.java | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/501f2ffa/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java b/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java
index ca7b851..65ce45e 100644
--- a/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java
+++ b/server/src/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java
@@ -129,13 +129,16 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
//2) verify that lb service is supported by the network
_lbMgr.isLbServiceSupportedInNetwork(guestNtwk.getId(), scheme);
- //3) Get source ip address
+ //3) Validate source network
+ validateSourceIpNtwkForLbRule(sourceIpNtwk, scheme);
+
+ //4) Get source ip address
sourceIp = getSourceIp(scheme, sourceIpNtwk, sourceIp);
ApplicationLoadBalancerRuleVO newRule = new ApplicationLoadBalancerRuleVO(name, description, sourcePort, instancePort, algorithm, guestNtwk.getId(),
lbOwner.getId(), lbOwner.getDomainId(), new Ip(sourceIp), sourceIpNtwk.getId(), scheme);
- //4) Validate Load Balancing rule on the providers
+ //5) Validate Load Balancing rule on the providers
LoadBalancingRule loadBalancing = new LoadBalancingRule(newRule, new ArrayList<LbDestination>(),
new ArrayList<LbStickinessPolicy>(), new ArrayList<LbHealthCheckPolicy>(), new Ip(sourceIp));
if (!_lbMgr.validateLbRule(loadBalancing)) {
@@ -303,7 +306,10 @@ public class ApplicationLoadBalancerManagerImpl extends ManagerBase implements A
* @param requestedSourceIp
*/
private void validateRequestedSourceIpForInternalLbRule(Network sourceIpNtwk, Ip requestedSourceIp) {
- //Check if the IP address used by the load balancer or other nics
+ //1) FIXME - Check if the IP is within the network cidr
+
+
+ //2) Check if the IP address used by the load balancer or other nics
if (_lbDao.countBySourceIp(requestedSourceIp, sourceIpNtwk.getId()) > 0) {
s_logger.debug("IP address " + requestedSourceIp.addr() + " is already used by existing LB rule, skipping the validation");
return;