Added NicTO to SetSourceNat command, CreateLoadBalancerConfigCommand, SetNetworkACLCommand
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/88797069 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/88797069 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/88797069 Branch: refs/heads/vpc Commit: 887970690bbb52aed5331c59dd7b0fcf6fe52b00 Parents: ccec919 Author: Alena Prokharchyk <[email protected]> Authored: Thu Jun 21 10:02:33 2012 -0700 Committer: Alena Prokharchyk <[email protected]> Committed: Thu Jun 21 10:02:33 2012 -0700 ---------------------------------------------------------------------- .../api/routing/LoadBalancerConfigCommand.java | 8 +++++- .../agent/api/routing/SetNetworkACLCommand.java | 9 +++++- .../agent/api/routing/SetSourceNatCommand.java | 10 +++++- .../src/com/cloud/network/NetworkManagerImpl.java | 1 + .../network/lb/ElasticLoadBalancerManagerImpl.java | 2 +- .../router/VirtualNetworkApplianceManagerImpl.java | 12 +++++++- .../VpcVirtualNetworkApplianceManagerImpl.java | 22 +++++++++++--- 7 files changed, 52 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/88797069/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java b/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java index f327248..8d3bf68 100644 --- a/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java +++ b/api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java @@ -17,6 +17,7 @@ package com.cloud.agent.api.routing; import com.cloud.agent.api.to.LoadBalancerTO; +import com.cloud.agent.api.to.NicTO; /** * LoadBalancerConfigCommand sends the load balancer configuration @@ -31,6 +32,7 @@ public class LoadBalancerConfigCommand extends NetworkElementCommand { public String lbStatsSrcCidrs = "0/0" ; /* TODO : currently there is no filtering based on the source ip */ public String lbStatsAuth = "admin1:AdMiN123"; public String lbStatsUri = "/admin?stats"; + NicTO nic; protected LoadBalancerConfigCommand() { } @@ -39,13 +41,17 @@ public class LoadBalancerConfigCommand extends NetworkElementCommand { this.loadBalancers = loadBalancers; } - public LoadBalancerConfigCommand(LoadBalancerTO[] loadBalancers,String PublicIp,String GuestIp,String PrivateIp) { + public LoadBalancerConfigCommand(LoadBalancerTO[] loadBalancers,String PublicIp,String GuestIp,String PrivateIp, NicTO nic) { this.loadBalancers = loadBalancers; this.lbStatsPublicIP = PublicIp; this.lbStatsPrivateIP = PrivateIp; this.lbStatsGuestIP = GuestIp; + this.nic = nic; } + public NicTO getNic() { + return nic; + } public LoadBalancerTO[] getLoadBalancers() { return loadBalancers; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/88797069/api/src/com/cloud/agent/api/routing/SetNetworkACLCommand.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/agent/api/routing/SetNetworkACLCommand.java b/api/src/com/cloud/agent/api/routing/SetNetworkACLCommand.java index f26e337..42e6329 100644 --- a/api/src/com/cloud/agent/api/routing/SetNetworkACLCommand.java +++ b/api/src/com/cloud/agent/api/routing/SetNetworkACLCommand.java @@ -15,21 +15,28 @@ package com.cloud.agent.api.routing; import java.util.List; import com.cloud.agent.api.to.NetworkACLTO; +import com.cloud.agent.api.to.NicTO; /** * @author Alena Prokharchyk */ public class SetNetworkACLCommand extends NetworkElementCommand{ NetworkACLTO[] rules; + NicTO nic; protected SetNetworkACLCommand() { } - public SetNetworkACLCommand(List<NetworkACLTO> rules) { + public SetNetworkACLCommand(List<NetworkACLTO> rules, NicTO nic) { this.rules = rules.toArray(new NetworkACLTO[rules.size()]); + this.nic = nic; } public NetworkACLTO[] getRules() { return rules; } + + public NicTO getNic() { + return nic; + } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/88797069/api/src/com/cloud/agent/api/routing/SetSourceNatCommand.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/agent/api/routing/SetSourceNatCommand.java b/api/src/com/cloud/agent/api/routing/SetSourceNatCommand.java index 59d4856..9a88554 100644 --- a/api/src/com/cloud/agent/api/routing/SetSourceNatCommand.java +++ b/api/src/com/cloud/agent/api/routing/SetSourceNatCommand.java @@ -13,6 +13,7 @@ package com.cloud.agent.api.routing; import com.cloud.agent.api.to.IpAddressTO; +import com.cloud.agent.api.to.NicTO; /** * @author Alena Prokharchyk @@ -20,13 +21,15 @@ import com.cloud.agent.api.to.IpAddressTO; public class SetSourceNatCommand extends NetworkElementCommand{ IpAddressTO ipAddress; boolean add; + NicTO nic; protected SetSourceNatCommand() { } - public SetSourceNatCommand(IpAddressTO ip, boolean add) { + public SetSourceNatCommand(IpAddressTO ip, boolean add, NicTO nic) { this.ipAddress = ip; this.add = add; + this.nic = nic; } @Override @@ -37,5 +40,8 @@ public class SetSourceNatCommand extends NetworkElementCommand{ public IpAddressTO getIpAddress() { return ipAddress; } - + + public NicTO getNic() { + return nic; + } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/88797069/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 c891a3e..ed94884 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -173,6 +173,7 @@ import com.cloud.user.User; import com.cloud.user.UserContext; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserStatisticsDao; +import com.cloud.utils.AnnotationHelper; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.component.Adapters; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/88797069/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java index 1870518..5b0a194 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()); + _nicDao.getIpAddress(guestNetworkId, elbVm.getId()),elbVm.getPrivateIpAddress(), null); cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, elbVm.getPrivateIpAddress()); cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/88797069/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index be5d4b6..c3d32ca 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -2593,8 +2593,16 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian DomainRouterVO domr = (DomainRouterVO)router; RouterPublicIp = domr.getPublicIpAddress(); } - - LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lbs,RouterPublicIp, getRouterIpInNetwork(guestNetworkId, router.getId()),router.getPrivateIpAddress()); + + Network guestNetwork = _networkMgr.getNetwork(guestNetworkId); + Nic nic = _nicDao.findByInstanceIdAndNetworkId(guestNetwork.getId(), router.getId()); + NicProfile nicProfile = new NicProfile(nic, guestNetwork, nic.getBroadcastUri(), nic.getIsolationUri(), + _networkMgr.getNetworkRate(guestNetwork.getId(), router.getId()), + _networkMgr.isSecurityGroupSupportedInNetwork(guestNetwork), + _networkMgr.getNetworkTag(router.getHypervisorType(), guestNetwork)); + + LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lbs,RouterPublicIp, + getRouterIpInNetwork(guestNetworkId, router.getId()),router.getPrivateIpAddress(), _itMgr.toNicTO(nicProfile, router.getHypervisorType())); cmd.lbStatsVisibility = _configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key()); cmd.lbStatsUri = _configDao.getValue(Config.NetworkLBHaproxyStatsUri.key()); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/88797069/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index 872d1a6..2dbe053 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -615,10 +615,17 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian //set source nat ip if (sourceNatIpAdd != null) { IpAddressTO sourceNatIp = sourceNatIpAdd.first(); - Long networkId = sourceNatIpAdd.second(); - SetSourceNatCommand cmd = new SetSourceNatCommand(sourceNatIp, addSourceNat); + Long publicNetworkId = sourceNatIpAdd.second(); + + Network guestNetwork = _networkMgr.getNetwork(publicNetworkId); + Nic nic = _nicDao.findByInstanceIdAndNetworkId(guestNetwork.getId(), router.getId()); + NicProfile nicProfile = new NicProfile(nic, guestNetwork, nic.getBroadcastUri(), nic.getIsolationUri(), + _networkMgr.getNetworkRate(guestNetwork.getId(), router.getId()), + _networkMgr.isSecurityGroupSupportedInNetwork(guestNetwork), + _networkMgr.getNetworkTag(router.getHypervisorType(), guestNetwork)); + + SetSourceNatCommand cmd = new SetSourceNatCommand(sourceNatIp, addSourceNat, _itMgr.toNicTO(nicProfile, router.getHypervisorType())); cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(networkId, router.getId())); cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); DataCenterVO dcVo = _dcDao.findById(router.getDataCenterIdToDeployIn()); cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); @@ -728,7 +735,6 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian Commands cmds = new Commands(OnError.Continue); createNetworkACLsCommands(rules, router, cmds, guestNetworkId); return sendCommandsToRouter(router, cmds); - } private void createNetworkACLsCommands(List<NetworkACL> rules, VirtualRouter router, Commands cmds, long guestNetworkId) { @@ -748,8 +754,14 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian rulesTO.add(ruleTO); } } + + Network network = _networkMgr.getNetwork(guestNetworkId); + Nic nic = _nicDao.findByInstanceIdAndNetworkId(network.getId(), router.getId()); + NicProfile nicProfile = new NicProfile(nic, network, nic.getBroadcastUri(), nic.getIsolationUri(), + _networkMgr.getNetworkRate(network.getId(), router.getId()), + _networkMgr.isSecurityGroupSupportedInNetwork(network), _networkMgr.getNetworkTag(router.getHypervisorType(), network)); - SetNetworkACLCommand cmd = new SetNetworkACLCommand(rulesTO); + SetNetworkACLCommand cmd = new SetNetworkACLCommand(rulesTO, _itMgr.toNicTO(nicProfile, router.getHypervisorType())); cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId())); cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(guestNetworkId, router.getId())); cmd.setAccessDetail(NetworkElementCommand.GUEST_VLAN_TAG, guestVlan);
