From ccb075de6fe4a6c63e1ac3b1f4774e421f75d2d7 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Tue, 26 Jun 2012 13:35:52 -0700 Subject: [PATCH] VPC: added vpcId to SetStaticNatRule and CreateLoadBalancerConfig commands --- .../agent/api/routing/LoadBalancerConfigCommand.java | 11 +++++++++-- .../agent/api/routing/SetStaticNatRulesCommand.java | 7 ++++++- .../network/ExternalFirewallDeviceManagerImpl.java | 2 +- .../ExternalLoadBalancerDeviceManagerImpl.java | 4 ++-- .../com/cloud/network/element/NetscalerElement.java | 4 ++-- .../network/lb/ElasticLoadBalancerManagerImpl.java | 2 +- .../router/VirtualNetworkApplianceManagerImpl.java | 10 ++++++---- 7 files changed, 27 insertions(+), 13 deletions(-) diff --git a/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java b/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java index bc3992c8365..266f3b0d3af 100644 --- a/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java +++ b/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java @@ -29,20 +29,23 @@ public class LoadBalancerConfigCommand extends NetworkElementCommand { public String lbStatsAuth = "admin1:AdMiN123"; public String lbStatsUri = "/admin?stats"; NicTO nic; + Long vpcId; protected LoadBalancerConfigCommand() { } - public LoadBalancerConfigCommand(LoadBalancerTO[] loadBalancers) { + public LoadBalancerConfigCommand(LoadBalancerTO[] loadBalancers, Long vpcId) { this.loadBalancers = loadBalancers; + this.vpcId = vpcId; } - public LoadBalancerConfigCommand(LoadBalancerTO[] loadBalancers,String PublicIp,String GuestIp,String PrivateIp, NicTO nic) { + public LoadBalancerConfigCommand(LoadBalancerTO[] loadBalancers,String PublicIp,String GuestIp,String PrivateIp, NicTO nic, Long vpcId) { this.loadBalancers = loadBalancers; this.lbStatsPublicIP = PublicIp; this.lbStatsPrivateIP = PrivateIp; this.lbStatsGuestIP = GuestIp; this.nic = nic; + this.vpcId = vpcId; } public NicTO getNic() { @@ -52,4 +55,8 @@ public class LoadBalancerConfigCommand extends NetworkElementCommand { public LoadBalancerTO[] getLoadBalancers() { return loadBalancers; } + + public Long getVpcId() { + return vpcId; + } } diff --git a/api/src/com/cloud/agent/api/routing/SetStaticNatRulesCommand.java b/api/src/com/cloud/agent/api/routing/SetStaticNatRulesCommand.java index 39485b806d5..a81a063a0a0 100644 --- a/api/src/com/cloud/agent/api/routing/SetStaticNatRulesCommand.java +++ b/api/src/com/cloud/agent/api/routing/SetStaticNatRulesCommand.java @@ -19,20 +19,25 @@ import com.cloud.agent.api.to.StaticNatRuleTO; public class SetStaticNatRulesCommand extends NetworkElementCommand{ StaticNatRuleTO[] rules; + Long vpcId; protected SetStaticNatRulesCommand() { } - public SetStaticNatRulesCommand(List staticNatRules) { + public SetStaticNatRulesCommand(List staticNatRules, Long vpcId) { rules = new StaticNatRuleTO[staticNatRules.size()]; int i = 0; for (StaticNatRuleTO rule : staticNatRules) { rules[i++] = rule; } + this.vpcId = vpcId; } public StaticNatRuleTO[] getRules() { return rules; } + public Long getVpcId() { + return vpcId; + } } diff --git a/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java b/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java index ad7372bbc35..932b17920bd 100644 --- a/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java +++ b/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java @@ -492,7 +492,7 @@ public abstract class ExternalFirewallDeviceManagerImpl extends AdapterBase impl protected void applyStaticNatRules(List staticNatRules, DataCenter zone, long externalFirewallId) throws ResourceUnavailableException { if (!staticNatRules.isEmpty()) { - SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(staticNatRules); + SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(staticNatRules, null); Answer answer = _agentMgr.easySend(externalFirewallId, cmd); if (answer == null || !answer.getResult()) { String details = (answer != null) ? answer.getDetails() : "details unavailable"; diff --git a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java index c91f4caff3a..409970d8d92 100644 --- a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java +++ b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java @@ -744,7 +744,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase protected void applyStaticNatRules(List staticNatRules, Network network, long firewallHostId) throws ResourceUnavailableException { if (!staticNatRules.isEmpty()) { - SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(staticNatRules); + SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(staticNatRules, null); Answer answer = _agentMgr.easySend(firewallHostId, cmd); if (answer == null || !answer.getResult()) { String details = (answer != null) ? answer.getDetails() : "details unavailable"; @@ -869,7 +869,7 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase if (loadBalancersToApply.size() > 0) { int numLoadBalancersForCommand = loadBalancersToApply.size(); LoadBalancerTO[] loadBalancersForCommand = loadBalancersToApply.toArray(new LoadBalancerTO[numLoadBalancersForCommand]); - LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(loadBalancersForCommand); + LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(loadBalancersForCommand, null); long guestVlanTag = Integer.parseInt(network.getBroadcastUri().getHost()); cmd.setAccessDetail(NetworkElementCommand.GUEST_VLAN_TAG, String.valueOf(guestVlanTag)); Answer answer = _agentMgr.easySend(externalLoadBalancer.getId(), cmd); diff --git a/server/src/com/cloud/network/element/NetscalerElement.java b/server/src/com/cloud/network/element/NetscalerElement.java index 33a82d479c6..e8ea3bcdbe6 100644 --- a/server/src/com/cloud/network/element/NetscalerElement.java +++ b/server/src/com/cloud/network/element/NetscalerElement.java @@ -608,7 +608,7 @@ public class NetscalerElement extends ExternalLoadBalancerDeviceManagerImpl impl if (loadBalancersToApply.size() > 0) { int numLoadBalancersForCommand = loadBalancersToApply.size(); LoadBalancerTO[] loadBalancersForCommand = loadBalancersToApply.toArray(new LoadBalancerTO[numLoadBalancersForCommand]); - LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(loadBalancersForCommand); + LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(loadBalancersForCommand, null); HostVO externalLoadBalancer = _hostDao.findById(lbDeviceVO.getHostId()); Answer answer = _agentMgr.easySend(externalLoadBalancer.getId(), cmd); @@ -660,7 +660,7 @@ public class NetscalerElement extends ExternalLoadBalancerDeviceManagerImpl impl } } - SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(rulesTO); + SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(rulesTO, null); answer = (SetStaticNatRulesAnswer) _agentMgr.send(lbDevice.getHostId(), cmd); if (answer == null) { return false; diff --git a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java index 5b0a19430a1..704d400a3fa 100644 --- a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java +++ b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java @@ -299,7 +299,7 @@ public class ElasticLoadBalancerManagerImpl implements } LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lbs,elbVm.getPublicIpAddress(), - _nicDao.getIpAddress(guestNetworkId, elbVm.getId()),elbVm.getPrivateIpAddress(), null); + _nicDao.getIpAddress(guestNetworkId, elbVm.getId()),elbVm.getPrivateIpAddress(), null, null); cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, elbVm.getPrivateIpAddress()); cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index d732fa0de81..8e550fe977c 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -2594,7 +2594,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian } } - SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(rulesTO); + SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(rulesTO, router.getVpcId()); cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId())); cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(guestNetworkId, router.getId())); cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); @@ -2634,7 +2634,8 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian _networkMgr.getNetworkTag(router.getHypervisorType(), guestNetwork)); LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lbs,RouterPublicIp, - getRouterIpInNetwork(guestNetworkId, router.getId()),router.getPrivateIpAddress(), _itMgr.toNicTO(nicProfile, router.getHypervisorType())); + getRouterIpInNetwork(guestNetworkId, router.getId()),router.getPrivateIpAddress(), + _itMgr.toNicTO(nicProfile, router.getHypervisorType()), router.getVpcId()); cmd.lbStatsVisibility = _configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key()); cmd.lbStatsUri = _configDao.getValue(Config.NetworkLBHaproxyStatsUri.key()); @@ -3073,7 +3074,8 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian return sendCommandsToRouter(router, cmds); } - private void createApplyStaticNatCommands(List rules, VirtualRouter router, Commands cmds, long guestNetworkId) { + private void createApplyStaticNatCommands(List rules, VirtualRouter router, Commands cmds, + long guestNetworkId) { List rulesTO = null; if (rules != null) { rulesTO = new ArrayList(); @@ -3085,7 +3087,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian } } - SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(rulesTO); + SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(rulesTO, router.getVpcId()); cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId())); cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(guestNetworkId, router.getId())); cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName());