http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/PrivateGatewayRules.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/PrivateGatewayRules.java b/server/src/com/cloud/network/rules/PrivateGatewayRules.java index c62f862..1d13efb 100644 --- a/server/src/com/cloud/network/rules/PrivateGatewayRules.java +++ b/server/src/com/cloud/network/rules/PrivateGatewayRules.java @@ -17,27 +17,15 @@ package com.cloud.network.rules; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; import org.apache.log4j.Logger; -import com.cloud.agent.api.routing.IpAssocVpcCommand; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.to.IpAddressTO; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenterVO; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.Network; import com.cloud.network.router.VirtualRouter; import com.cloud.network.vpc.PrivateGateway; -import com.cloud.network.vpc.PrivateIpAddress; import com.cloud.network.vpc.PrivateIpVO; -import com.cloud.user.Account; import com.cloud.vm.NicProfile; public class PrivateGatewayRules extends RuleApplier { @@ -142,47 +130,4 @@ public class PrivateGatewayRules extends RuleApplier { s_logger.debug("Private gateawy " + _privateGateway + " is removed from router " + _router); return result; } - - public void createVpcAssociatePrivateIPCommands(final VirtualRouter router, final List<PrivateIpAddress> ips, final Commands cmds, final boolean add) { - - // Ensure that in multiple vlans case we first send all ip addresses of vlan1, then all ip addresses of vlan2, etc.. - Map<String, ArrayList<PrivateIpAddress>> vlanIpMap = new HashMap<String, ArrayList<PrivateIpAddress>>(); - for (final PrivateIpAddress ipAddress : ips) { - String vlanTag = ipAddress.getBroadcastUri(); - ArrayList<PrivateIpAddress> ipList = vlanIpMap.get(vlanTag); - if (ipList == null) { - ipList = new ArrayList<PrivateIpAddress>(); - } - - ipList.add(ipAddress); - vlanIpMap.put(vlanTag, ipList); - } - - for (Map.Entry<String, ArrayList<PrivateIpAddress>> vlanAndIp : vlanIpMap.entrySet()) { - List<PrivateIpAddress> ipAddrList = vlanAndIp.getValue(); - IpAddressTO[] ipsToSend = new IpAddressTO[ipAddrList.size()]; - int i = 0; - - for (final PrivateIpAddress ipAddr : ipAddrList) { - Network network = _networkModel.getNetwork(ipAddr.getNetworkId()); - IpAddressTO ip = - new IpAddressTO(Account.ACCOUNT_ID_SYSTEM, ipAddr.getIpAddress(), add, false, ipAddr.getSourceNat(), ipAddr.getBroadcastUri(), ipAddr.getGateway(), - ipAddr.getNetmask(), ipAddr.getMacAddress(), null, false); - - ip.setTrafficType(network.getTrafficType()); - ip.setNetworkName(_networkModel.getNetworkTag(router.getHypervisorType(), network)); - ipsToSend[i++] = ip; - - } - - IpAssocVpcCommand cmd = new IpAssocVpcCommand(ipsToSend); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, _routerControlHelper.getRouterIpInNetwork(ipAddrList.get(0).getNetworkId(), router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - - cmds.addCommand("IPAssocVpcCommand", cmd); - } - } } \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/RuleApplier.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/RuleApplier.java b/server/src/com/cloud/network/rules/RuleApplier.java index c6f1cc0..4c399ed 100644 --- a/server/src/com/cloud/network/rules/RuleApplier.java +++ b/server/src/com/cloud/network/rules/RuleApplier.java @@ -17,14 +17,8 @@ package com.cloud.network.rules; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.VmDataCommand; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenter.NetworkType; -import com.cloud.dc.DataCenterVO; import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.HostPodDao; import com.cloud.dc.dao.VlanDao; @@ -32,29 +26,20 @@ import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.IpAddressManager; import com.cloud.network.Network; import com.cloud.network.NetworkModel; -import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.NetworkDao; import com.cloud.network.lb.LoadBalancingRulesManager; import com.cloud.network.router.NetworkHelper; import com.cloud.network.router.NicProfileHelper; -import com.cloud.network.router.RouterControlHelper; import com.cloud.network.router.VirtualRouter; -import com.cloud.network.router.VpcNetworkHelperImpl; import com.cloud.network.vpc.NetworkACLManager; import com.cloud.network.vpc.VpcManager; import com.cloud.network.vpc.dao.PrivateIpDao; import com.cloud.network.vpc.dao.VpcDao; -import com.cloud.offerings.dao.NetworkOfferingDao; -import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.user.dao.UserStatisticsDao; -import com.cloud.uservm.UserVm; -import com.cloud.utils.StringUtils; -import com.cloud.vm.NicVO; import com.cloud.vm.VirtualMachineManager; -import com.cloud.vm.dao.DomainRouterDao; import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicIpAliasDao; import com.cloud.vm.dao.UserVmDao; @@ -62,63 +47,27 @@ import com.cloud.vm.dao.UserVmDao; public abstract class RuleApplier { protected NetworkModel _networkModel; - protected LoadBalancingRulesManager _lbMgr; - protected LoadBalancerDao _loadBalancerDao; - - protected ConfigurationDao _configDao; - protected NicDao _nicDao; - - protected NetworkOfferingDao _networkOfferingDao; - protected DataCenterDao _dcDao; - - protected DomainRouterDao _routerDao; - protected UserVmDao _userVmDao; - - protected ServiceOfferingDao _serviceOfferingDao; - protected VMTemplateDao _templateDao; - protected NetworkDao _networkDao; - - protected FirewallRulesDao _rulesDao; - protected UserStatisticsDao _userStatsDao; - protected VpcDao _vpcDao; - protected NicIpAliasDao _nicIpAliasDao; - protected HostPodDao _podDao; - protected VlanDao _vlanDao; - protected IPAddressDao _ipAddressDao; - protected PrivateIpDao _privateIpDao; - protected VpcManager _vpcMgr; - protected VirtualMachineManager _itMgr; - protected IpAddressManager _ipAddrMgr; - protected NetworkACLManager _networkACLMgr; - protected Network _network; - protected VirtualRouter _router; - - protected RouterControlHelper _routerControlHelper; - protected NetworkHelper _networkHelper; - - protected VpcNetworkHelperImpl _vpcNetworkHelper; - protected NicProfileHelper _nicProfileHelper; public RuleApplier(final Network network) { @@ -134,69 +83,4 @@ public abstract class RuleApplier { public VirtualRouter getRouter() { return _router; } - - public void createVmDataCommand(final VirtualRouter router, final UserVm vm, final NicVO nic, final String publicKey, final Commands cmds) { - final String serviceOffering = _serviceOfferingDao.findByIdIncludingRemoved(vm.getId(), vm.getServiceOfferingId()).getDisplayText(); - final String zoneName = _dcDao.findById(router.getDataCenterId()).getName(); - cmds.addCommand( - "vmdata", - generateVmDataCommand(router, nic.getIp4Address(), vm.getUserData(), serviceOffering, zoneName, nic.getIp4Address(), vm.getHostName(), vm.getInstanceName(), - vm.getId(), vm.getUuid(), publicKey, nic.getNetworkId())); - } - - public VmDataCommand generateVmDataCommand(final VirtualRouter router, final String vmPrivateIpAddress, final String userData, final String serviceOffering, - final String zoneName, final String guestIpAddress, final String vmName, final String vmInstanceName, final long vmId, final String vmUuid, final String publicKey, - final long guestNetworkId) { - final VmDataCommand cmd = new VmDataCommand(vmPrivateIpAddress, vmName, _networkModel.getExecuteInSeqNtwkElmtCmd()); - - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, _routerControlHelper.getRouterIpInNetwork(guestNetworkId, router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - - final DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - - cmd.addVmData("userdata", "user-data", userData); - cmd.addVmData("metadata", "service-offering", StringUtils.unicodeEscape(serviceOffering)); - cmd.addVmData("metadata", "availability-zone", StringUtils.unicodeEscape(zoneName)); - cmd.addVmData("metadata", "local-ipv4", guestIpAddress); - cmd.addVmData("metadata", "local-hostname", StringUtils.unicodeEscape(vmName)); - if (dcVo.getNetworkType() == NetworkType.Basic) { - cmd.addVmData("metadata", "public-ipv4", guestIpAddress); - cmd.addVmData("metadata", "public-hostname", StringUtils.unicodeEscape(vmName)); - } else { - if (router.getPublicIpAddress() == null) { - cmd.addVmData("metadata", "public-ipv4", guestIpAddress); - } else { - cmd.addVmData("metadata", "public-ipv4", router.getPublicIpAddress()); - } - cmd.addVmData("metadata", "public-hostname", router.getPublicIpAddress()); - } - if (vmUuid == null) { - setVmInstanceId(vmInstanceName, vmId, cmd); - } else { - setVmInstanceId(vmUuid, cmd); - } - cmd.addVmData("metadata", "public-keys", publicKey); - - String cloudIdentifier = _configDao.getValue("cloud.identifier"); - if (cloudIdentifier == null) { - cloudIdentifier = ""; - } else { - cloudIdentifier = "CloudStack-{" + cloudIdentifier + "}"; - } - cmd.addVmData("metadata", "cloud-identifier", cloudIdentifier); - - return cmd; - } - - private void setVmInstanceId(final String vmUuid, final VmDataCommand cmd) { - cmd.addVmData("metadata", "instance-id", vmUuid); - cmd.addVmData("metadata", "vm-id", vmUuid); - } - - private void setVmInstanceId(final String vmInstanceName, final long vmId, final VmDataCommand cmd) { - cmd.addVmData("metadata", "instance-id", vmInstanceName); - cmd.addVmData("metadata", "vm-id", String.valueOf(vmId)); - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/SshKeyToRouterRules.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/SshKeyToRouterRules.java b/server/src/com/cloud/network/rules/SshKeyToRouterRules.java index c88827a..4e4b8ba 100644 --- a/server/src/com/cloud/network/rules/SshKeyToRouterRules.java +++ b/server/src/com/cloud/network/rules/SshKeyToRouterRules.java @@ -19,15 +19,10 @@ package com.cloud.network.rules; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.SavePasswordCommand; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenterVO; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.Network; import com.cloud.network.router.VirtualRouter; import com.cloud.storage.VMTemplateVO; -import com.cloud.utils.PasswordGenerator; import com.cloud.vm.NicProfile; import com.cloud.vm.NicVO; import com.cloud.vm.UserVmVO; @@ -64,24 +59,6 @@ public class SshKeyToRouterRules extends RuleApplier { return visitor.visit(this); } - public void createPasswordCommand(final VirtualRouter router, final VirtualMachineProfile profile, final NicVO nic, final Commands cmds) { - final String password = (String)profile.getParameter(VirtualMachineProfile.Param.VmPassword); - final DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - - // password should be set only on default network element - if (password != null && nic.isDefaultNic()) { - final String encodedPassword = PasswordGenerator.rot13(password); - final SavePasswordCommand cmd = - new SavePasswordCommand(encodedPassword, nic.getIp4Address(), profile.getVirtualMachine().getHostName(), _networkModel.getExecuteInSeqNtwkElmtCmd()); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, _routerControlHelper.getRouterIpInNetwork(nic.getNetworkId(), router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - - cmds.addCommand("password", cmd); - } - } - public VirtualMachineProfile getProfile() { return _profile; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/StaticNatRules.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/StaticNatRules.java b/server/src/com/cloud/network/rules/StaticNatRules.java index dc14c9f..696439c 100644 --- a/server/src/com/cloud/network/rules/StaticNatRules.java +++ b/server/src/com/cloud/network/rules/StaticNatRules.java @@ -17,18 +17,11 @@ package com.cloud.network.rules; -import java.util.ArrayList; import java.util.List; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.SetStaticNatRulesCommand; -import com.cloud.agent.api.to.StaticNatRuleTO; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenterVO; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.network.IpAddress; import com.cloud.network.Network; import com.cloud.network.router.VirtualRouter; @@ -50,25 +43,4 @@ public class StaticNatRules extends RuleApplier { _router = router; return visitor.visit(this); } - - public void createApplyStaticNatCommands(final List<? extends StaticNat> rules, final VirtualRouter router, final Commands cmds, final long guestNetworkId) { - List<StaticNatRuleTO> rulesTO = new ArrayList<StaticNatRuleTO>(); - if (rules != null) { - for (final StaticNat rule : rules) { - final IpAddress sourceIp = _networkModel.getIp(rule.getSourceIpAddressId()); - final StaticNatRuleTO ruleTO = - new StaticNatRuleTO(0, sourceIp.getAddress().addr(), null, null, rule.getDestIpAddress(), null, null, null, rule.isForRevoke(), false); - rulesTO.add(ruleTO); - } - } - - final SetStaticNatRulesCommand cmd = new SetStaticNatRulesCommand(rulesTO, router.getVpcId()); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, _routerControlHelper.getRouterIpInNetwork(guestNetworkId, router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - - final DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - cmds.addCommand(cmd); - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/StaticRoutesRules.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/StaticRoutesRules.java b/server/src/com/cloud/network/rules/StaticRoutesRules.java index b94cea2..2ba0f0c 100644 --- a/server/src/com/cloud/network/rules/StaticRoutesRules.java +++ b/server/src/com/cloud/network/rules/StaticRoutesRules.java @@ -21,10 +21,6 @@ import java.util.List; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.SetStaticRouteCommand; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenterVO; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.router.VirtualRouter; import com.cloud.network.vpc.StaticRouteProfile; @@ -48,13 +44,4 @@ public class StaticRoutesRules extends RuleApplier { return visitor.visit(this); } - - public void createStaticRouteCommands(final List<StaticRouteProfile> staticRoutes, final VirtualRouter router, final Commands cmds) { - SetStaticRouteCommand cmd = new SetStaticRouteCommand(staticRoutes); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _networkHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - cmds.addCommand(cmd); - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/UserdataPwdRules.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/UserdataPwdRules.java b/server/src/com/cloud/network/rules/UserdataPwdRules.java index ecb2509..9d7ef15 100644 --- a/server/src/com/cloud/network/rules/UserdataPwdRules.java +++ b/server/src/com/cloud/network/rules/UserdataPwdRules.java @@ -19,15 +19,10 @@ package com.cloud.network.rules; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.SavePasswordCommand; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenterVO; import com.cloud.deploy.DeployDestination; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.Network; import com.cloud.network.router.VirtualRouter; -import com.cloud.utils.PasswordGenerator; import com.cloud.vm.NicProfile; import com.cloud.vm.NicVO; import com.cloud.vm.UserVmVO; @@ -78,23 +73,4 @@ public class UserdataPwdRules extends RuleApplier { public UserVmVO getUserVM() { return _userVM; } - - public void createPasswordCommand(final VirtualRouter router, final VirtualMachineProfile profile, final NicVO nic, final Commands cmds) { - final String password = (String)profile.getParameter(VirtualMachineProfile.Param.VmPassword); - final DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - - // password should be set only on default network element - if (password != null && nic.isDefaultNic()) { - final String encodedPassword = PasswordGenerator.rot13(password); - final SavePasswordCommand cmd = - new SavePasswordCommand(encodedPassword, nic.getIp4Address(), profile.getVirtualMachine().getHostName(), _networkModel.getExecuteInSeqNtwkElmtCmd()); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, _routerControlHelper.getRouterIpInNetwork(nic.getNetworkId(), router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - - cmds.addCommand("password", cmd); - } - - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java b/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java index 52dfc97..5988fbd 100644 --- a/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java +++ b/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java @@ -20,8 +20,6 @@ import java.util.List; import javax.inject.Inject; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; - import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.HostPodDao; import com.cloud.dc.dao.VlanDao; @@ -32,29 +30,25 @@ import com.cloud.network.NetworkModel; import com.cloud.network.PublicIpAddress; import com.cloud.network.RemoteAccessVpn; import com.cloud.network.VpnUser; -import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.NetworkDao; import com.cloud.network.lb.LoadBalancingRule; import com.cloud.network.lb.LoadBalancingRulesManager; import com.cloud.network.router.NetworkHelper; -import com.cloud.network.router.VirtualNetworkApplianceManager; -import com.cloud.network.router.VpcNetworkHelperImpl; +import com.cloud.network.router.NicProfileHelper; import com.cloud.network.vpc.NetworkACLItem; +import com.cloud.network.vpc.NetworkACLManager; import com.cloud.network.vpc.PrivateGateway; import com.cloud.network.vpc.StaticRouteProfile; import com.cloud.network.vpc.VpcManager; import com.cloud.network.vpc.dao.PrivateIpDao; import com.cloud.network.vpc.dao.VpcDao; -import com.cloud.offerings.dao.NetworkOfferingDao; -import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.user.dao.UserStatisticsDao; import com.cloud.vm.NicProfile; import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineProfile; -import com.cloud.vm.dao.DomainRouterDao; import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicIpAliasDao; import com.cloud.vm.dao.UserVmDao; @@ -62,82 +56,47 @@ import com.cloud.vm.dao.UserVmDao; public class VirtualNetworkApplianceFactory { @Inject - protected NetworkModel _networkModel; - + private NetworkModel _networkModel; @Inject - protected LoadBalancingRulesManager _lbMgr; - + private LoadBalancingRulesManager _lbMgr; @Inject - protected LoadBalancerDao _loadBalancerDao; - + private LoadBalancerDao _loadBalancerDao; @Inject - protected ConfigurationDao _configDao; - + private NicDao _nicDao; @Inject - protected NicDao _nicDao; - + private VirtualMachineManager _itMgr; @Inject - protected VirtualMachineManager _itMgr; - + private DataCenterDao _dcDao; @Inject - protected NetworkOfferingDao _networkOfferingDao; - + private UserVmDao _userVmDao; @Inject - protected DataCenterDao _dcDao; - + private UserStatisticsDao _userStatsDao; @Inject - protected UserVmDao _userVmDao; - + private VpcDao _vpcDao; @Inject - protected UserStatisticsDao _userStatsDao; - + private VpcManager _vpcMgr; @Inject - protected VpcDao _vpcDao; - + private VMTemplateDao _templateDao; @Inject - protected VpcManager _vpcMgr; - + private NetworkDao _networkDao; @Inject - protected ServiceOfferingDao _serviceOfferingDao; - + private NicIpAliasDao _nicIpAliasDao; @Inject - protected VMTemplateDao _templateDao; - + private HostPodDao _podDao; @Inject - protected DomainRouterDao _routerDao; - - @Inject - protected NetworkDao _networkDao; - - @Inject - protected FirewallRulesDao _rulesDao; - - @Inject - protected NicIpAliasDao _nicIpAliasDao; - - @Inject - protected HostPodDao _podDao; - - @Inject - protected VlanDao _vlanDao; - + private VlanDao _vlanDao; @Inject private IPAddressDao _ipAddressDao; - @Inject private PrivateIpDao _privateIpDao; - @Inject private IpAddressManager _ipAddrMgr; - @Inject - protected VirtualNetworkApplianceManager _applianceManager; - + private NetworkACLManager _networkACLMgr; @Inject private NetworkHelper _networkHelper; - @Inject - private VpcNetworkHelperImpl _vpcNetworkHelper; + private NicProfileHelper _nicProfileHelper; public LoadBalancingRules createLoadBalancingRules(final Network network, final List<LoadBalancingRule> rules) { LoadBalancingRules lbRules = new LoadBalancingRules(network, rules); @@ -153,7 +112,6 @@ public class VirtualNetworkApplianceFactory { initBeans(fwRules); fwRules._networkDao = _networkDao; - fwRules._rulesDao = _rulesDao; return fwRules; } @@ -171,12 +129,8 @@ public class VirtualNetworkApplianceFactory { applier._dcDao = _dcDao; applier._lbMgr = _lbMgr; applier._loadBalancerDao = _loadBalancerDao; - applier._configDao = _configDao; applier._nicDao = _nicDao; applier._itMgr = _itMgr; - applier._networkOfferingDao = _networkOfferingDao; - applier._routerDao = _routerDao; - applier._routerControlHelper = _routerControlHelper; applier._networkHelper = _networkHelper; } @@ -225,7 +179,6 @@ public class VirtualNetworkApplianceFactory { sshKeyToRouterRules._userVmDao = _userVmDao; sshKeyToRouterRules._templateDao = _templateDao; - sshKeyToRouterRules._serviceOfferingDao = _serviceOfferingDao; return sshKeyToRouterRules; } @@ -237,7 +190,6 @@ public class VirtualNetworkApplianceFactory { userdataRules._userVmDao = _userVmDao; userdataRules._templateDao = _templateDao; - userdataRules._serviceOfferingDao = _serviceOfferingDao; return userdataRules; } @@ -249,7 +201,6 @@ public class VirtualNetworkApplianceFactory { userdataRules._userVmDao = _userVmDao; userdataRules._templateDao = _templateDao; - userdataRules._serviceOfferingDao = _serviceOfferingDao; return userdataRules; } @@ -333,7 +284,7 @@ public class VirtualNetworkApplianceFactory { gwRules._privateIpDao = _privateIpDao; gwRules._networkACLMgr = _networkACLMgr; - gwRules._vpcNetworkHelper = _vpcNetworkHelper; + gwRules._nicProfileHelper = _nicProfileHelper; return gwRules; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/VpcIpAssociationRules.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/VpcIpAssociationRules.java b/server/src/com/cloud/network/rules/VpcIpAssociationRules.java index e3c9bed..6257c46 100644 --- a/server/src/com/cloud/network/rules/VpcIpAssociationRules.java +++ b/server/src/com/cloud/network/rules/VpcIpAssociationRules.java @@ -25,19 +25,12 @@ import java.util.Map; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; import org.apache.log4j.Logger; -import com.cloud.agent.api.routing.IpAssocVpcCommand; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.SetSourceNatCommand; -import com.cloud.agent.api.to.IpAddressTO; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenterVO; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.IpAddress; import com.cloud.network.Network; import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.PublicIpAddress; import com.cloud.network.router.VirtualRouter; -import com.cloud.utils.Pair; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.Nic; @@ -94,74 +87,4 @@ public class VpcIpAssociationRules extends RuleApplier { public List<PublicIpAddress> getIpsToSend() { return _ipsToSend; } - - public void createVpcAssociatePublicIPCommands(final VirtualRouter router, final List<? extends PublicIpAddress> ips, final Commands cmds, - final Map<String, String> vlanMacAddress) { - - Pair<IpAddressTO, Long> sourceNatIpAdd = null; - Boolean addSourceNat = null; - // Ensure that in multiple vlans case we first send all ip addresses of vlan1, then all ip addresses of vlan2, etc.. - Map<String, ArrayList<PublicIpAddress>> vlanIpMap = new HashMap<String, ArrayList<PublicIpAddress>>(); - for (final PublicIpAddress ipAddress : ips) { - String vlanTag = ipAddress.getVlanTag(); - ArrayList<PublicIpAddress> ipList = vlanIpMap.get(vlanTag); - if (ipList == null) { - ipList = new ArrayList<PublicIpAddress>(); - } - //VR doesn't support release for sourceNat IP address; so reset the state - if (ipAddress.isSourceNat() && ipAddress.getState() == IpAddress.State.Releasing) { - ipAddress.setState(IpAddress.State.Allocated); - } - ipList.add(ipAddress); - vlanIpMap.put(vlanTag, ipList); - } - - for (Map.Entry<String, ArrayList<PublicIpAddress>> vlanAndIp : vlanIpMap.entrySet()) { - List<PublicIpAddress> ipAddrList = vlanAndIp.getValue(); - - // Get network rate - required for IpAssoc - Integer networkRate = _networkModel.getNetworkRate(ipAddrList.get(0).getNetworkId(), router.getId()); - Network network = _networkModel.getNetwork(ipAddrList.get(0).getNetworkId()); - - IpAddressTO[] ipsToSend = new IpAddressTO[ipAddrList.size()]; - int i = 0; - - for (final PublicIpAddress ipAddr : ipAddrList) { - boolean add = (ipAddr.getState() == IpAddress.State.Releasing ? false : true); - - String macAddress = vlanMacAddress.get(BroadcastDomainType.getValue(BroadcastDomainType.fromString(ipAddr.getVlanTag()))); - - IpAddressTO ip = - new IpAddressTO(ipAddr.getAccountId(), ipAddr.getAddress().addr(), add, false, ipAddr.isSourceNat(), ipAddr.getVlanTag(), ipAddr.getGateway(), - ipAddr.getNetmask(), macAddress, networkRate, ipAddr.isOneToOneNat()); - - ip.setTrafficType(network.getTrafficType()); - ip.setNetworkName(_networkModel.getNetworkTag(router.getHypervisorType(), network)); - ipsToSend[i++] = ip; - if (ipAddr.isSourceNat()) { - sourceNatIpAdd = new Pair<IpAddressTO, Long>(ip, ipAddr.getNetworkId()); - addSourceNat = add; - } - } - IpAssocVpcCommand cmd = new IpAssocVpcCommand(ipsToSend); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, _routerControlHelper.getRouterIpInNetwork(ipAddrList.get(0).getNetworkId(), router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - - cmds.addCommand("IPAssocVpcCommand", cmd); - } - - //set source nat ip - if (sourceNatIpAdd != null) { - IpAddressTO sourceNatIp = sourceNatIpAdd.first(); - SetSourceNatCommand cmd = new SetSourceNatCommand(sourceNatIp, addSourceNat); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - cmds.addCommand("SetSourceNatCommand", cmd); - } - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/VpnRules.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/rules/VpnRules.java b/server/src/com/cloud/network/rules/VpnRules.java index fa4d1ea..f42465b 100644 --- a/server/src/com/cloud/network/rules/VpnRules.java +++ b/server/src/com/cloud/network/rules/VpnRules.java @@ -17,15 +17,10 @@ package com.cloud.network.rules; -import java.util.ArrayList; import java.util.List; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.VpnUsersCfgCommand; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenterVO; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.Network; import com.cloud.network.VpnUser; @@ -47,27 +42,6 @@ public class VpnRules extends RuleApplier { return visitor.visit(this); } - public void createApplyVpnUsersCommand(final List<? extends VpnUser> users, final VirtualRouter router, final Commands cmds) { - final List<VpnUser> addUsers = new ArrayList<VpnUser>(); - final List<VpnUser> removeUsers = new ArrayList<VpnUser>(); - for (final VpnUser user : users) { - if (user.getState() == VpnUser.State.Add || user.getState() == VpnUser.State.Active) { - addUsers.add(user); - } else if (user.getState() == VpnUser.State.Revoke) { - removeUsers.add(user); - } - } - - final VpnUsersCfgCommand cmd = new VpnUsersCfgCommand(addUsers, removeUsers); - cmd.setAccessDetail(NetworkElementCommand.ACCOUNT_ID, String.valueOf(router.getAccountId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); - cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); - final DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - - cmds.addCommand("users", cmd); - } - public List<? extends VpnUser> getUsers() { return _users; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java ---------------------------------------------------------------------- diff --git a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java index 892a81a..f51c62b 100644 --- a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java +++ b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java @@ -17,7 +17,6 @@ package org.apache.cloudstack.network.topology; -import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; @@ -26,16 +25,15 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import com.cloud.dc.DataCenter; -import com.cloud.dc.DataCenter.NetworkType; -import com.cloud.dc.Pod; import com.cloud.deploy.DeployDestination; -import com.cloud.exception.AgentUnavailableException; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.host.Status; import com.cloud.network.Network; import com.cloud.network.PublicIpAddress; +import com.cloud.network.RemoteAccessVpn; +import com.cloud.network.VpnUser; import com.cloud.network.router.VirtualRouter; +import com.cloud.network.rules.AdvancedVpnRules; import com.cloud.network.rules.DhcpEntryRules; import com.cloud.network.rules.DhcpSubNetRules; import com.cloud.network.rules.NetworkAclsRules; @@ -64,6 +62,32 @@ public class AdvancedNetworkTopology extends BasicNetworkTopology { protected AdvancedNetworkVisitor _advancedVisitor; @Override + public BasicNetworkVisitor getVisitor() { + return _advancedVisitor; + } + + @Override + public String[] applyVpnUsers(final RemoteAccessVpn remoteAccessVpn, final List<? extends VpnUser> users, final VirtualRouter router) throws ResourceUnavailableException { + + s_logger.debug("APPLYING ADVANCED VPN USERS RULES"); + + AdvancedVpnRules routesRules = _virtualNetworkApplianceFactory.createAdvancedVpnRules(remoteAccessVpn, users); + + boolean agentResult = routesRules.accept(_advancedVisitor, router); + + String[] result = new String[users.size()]; + for (int i = 0; i < result.length; i++) { + if (agentResult) { + result[i] = null; + } else { + result[i] = String.valueOf(agentResult); + } + } + + return result; + } + + @Override public boolean applyStaticRoutes(final List<StaticRouteProfile> staticRoutes, final List<DomainRouterVO> routers) throws ResourceUnavailableException { if (staticRoutes == null || staticRoutes.isEmpty()) { @@ -220,93 +244,4 @@ public class AdvancedNetworkTopology extends BasicNetworkTopology { return applyRules(network, routers, typeString, isPodLevelException, podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(aclsRules)); } - - @Override - public boolean applyRules(final Network network, final List<? extends VirtualRouter> routers, final String typeString, final boolean isPodLevelException, final Long podId, - final boolean failWhenDisconnect, final RuleApplierWrapper<RuleApplier> ruleApplierWrapper) throws ResourceUnavailableException { - - if (routers == null || routers.isEmpty()) { - s_logger.warn("Unable to apply " + typeString + ", virtual router doesn't exist in the network " + network.getId()); - throw new ResourceUnavailableException("Unable to apply " + typeString, DataCenter.class, network.getDataCenterId()); - } - - RuleApplier ruleApplier = ruleApplierWrapper.getRuleType(); - - final DataCenter dc = _dcDao.findById(network.getDataCenterId()); - final boolean isZoneBasic = dc.getNetworkType() == NetworkType.Basic; - - // isPodLevelException and podId is only used for basic zone - assert !(!isZoneBasic && isPodLevelException || isZoneBasic && isPodLevelException && podId == null); - - final List<VirtualRouter> connectedRouters = new ArrayList<VirtualRouter>(); - final List<VirtualRouter> disconnectedRouters = new ArrayList<VirtualRouter>(); - boolean result = true; - final String msg = "Unable to apply " + typeString + " on disconnected router "; - for (final VirtualRouter router : routers) { - if (router.getState() == State.Running) { - s_logger.debug("Applying " + typeString + " in network " + network); - - if (router.isStopPending()) { - if (_hostDao.findById(router.getHostId()).getState() == Status.Up) { - throw new ResourceUnavailableException("Unable to process due to the stop pending router " + router.getInstanceName() - + " haven't been stopped after it's host coming back!", DataCenter.class, router.getDataCenterId()); - } - s_logger.debug("Router " + router.getInstanceName() + " is stop pending, so not sending apply " + typeString + " commands to the backend"); - continue; - } - - try { - ruleApplier.accept(_advancedVisitor, router); - - connectedRouters.add(router); - } catch (final AgentUnavailableException e) { - s_logger.warn(msg + router.getInstanceName(), e); - disconnectedRouters.add(router); - } - - // If rules fail to apply on one domR and not due to - // disconnection, no need to proceed with the rest - if (!result) { - if (isZoneBasic && isPodLevelException) { - throw new ResourceUnavailableException("Unable to apply " + typeString + " on router ", Pod.class, podId); - } - throw new ResourceUnavailableException("Unable to apply " + typeString + " on router ", DataCenter.class, router.getDataCenterId()); - } - - } else if (router.getState() == State.Stopped || router.getState() == State.Stopping) { - s_logger.debug("Router " + router.getInstanceName() + " is in " + router.getState() + ", so not sending apply " + typeString + " commands to the backend"); - } else { - s_logger.warn("Unable to apply " + typeString + ", virtual router is not in the right state " + router.getState()); - if (isZoneBasic && isPodLevelException) { - throw new ResourceUnavailableException("Unable to apply " + typeString + ", virtual router is not in the right state", Pod.class, podId); - } - throw new ResourceUnavailableException("Unable to apply " + typeString + ", virtual router is not in the right state", DataCenter.class, router.getDataCenterId()); - } - } - - if (!connectedRouters.isEmpty()) { - // Shouldn't we include this check inside the method? - if (!isZoneBasic && !disconnectedRouters.isEmpty() && disconnectedRouters.get(0).getIsRedundantRouter()) { - // These disconnected redundant virtual routers are out of sync - // now, stop them for synchronization - _nwHelper.handleSingleWorkingRedundantRouter(connectedRouters, disconnectedRouters, msg); - } - } else if (!disconnectedRouters.isEmpty()) { - for (final VirtualRouter router : disconnectedRouters) { - if (s_logger.isDebugEnabled()) { - s_logger.debug(msg + router.getInstanceName() + "(" + router.getId() + ")"); - } - } - if (isZoneBasic && isPodLevelException) { - throw new ResourceUnavailableException(msg, Pod.class, podId); - } - throw new ResourceUnavailableException(msg, DataCenter.class, disconnectedRouters.get(0).getDataCenterId()); - } - - result = true; - if (failWhenDisconnect) { - result = !connectedRouters.isEmpty(); - } - return result; - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java ---------------------------------------------------------------------- diff --git a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java index 15931c6..7d08813 100644 --- a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java +++ b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java @@ -69,8 +69,8 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { final NicVO nicVo = userdata.getNicVo(); final UserVmVO userVM = userdata.getUserVM(); - userdata.createPasswordCommand(router, profile, nicVo, commands); - userdata.createVmDataCommand(router, userVM, nicVo, userVM.getDetail("SSH.PublicKey"), commands); + _commandSetupHelper.createPasswordCommand(router, profile, nicVo, commands); + _commandSetupHelper.createVmDataCommand(router, userVM, nicVo, userVM.getDetail("SSH.PublicKey"), commands); return _networkGeneralHelper.sendCommandsToRouter(router, commands); } @@ -83,7 +83,7 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { final NicVO nicVo = dhcp.getNicVo(); final UserVmVO userVM = dhcp.getUserVM(); - dhcp.createDhcpEntryCommand(router, userVM, nicVo, commands); + _commandSetupHelper.createDhcpEntryCommand(router, userVM, nicVo, commands); return _networkGeneralHelper.sendCommandsToRouter(router, commands); } @@ -107,7 +107,7 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { Commands commands = new Commands(Command.OnError.Continue); List<? extends NetworkACLItem> rules = acls.getRules(); - acls.createNetworkACLsCommands(rules, router, commands, network.getId(), acls.isPrivateGateway()); + _commandSetupHelper.createNetworkACLsCommands(rules, router, commands, network.getId(), acls.isPrivateGateway()); return _networkGeneralHelper.sendCommandsToRouter(router, commands); } @@ -121,7 +121,7 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { List<PublicIpAddress> ipsToSend = vpcip.getIpsToSend(); if (!ipsToSend.isEmpty()) { - vpcip.createVpcAssociatePublicIPCommands(router, ipsToSend, cmds, vlanMacAddress); + _commandSetupHelper.createVpcAssociatePublicIPCommands(router, ipsToSend, cmds, vlanMacAddress); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } else { return true; @@ -147,7 +147,7 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { privateIps.add(ip); Commands cmds = new Commands(Command.OnError.Stop); - privateGW.createVpcAssociatePrivateIPCommands(router, privateIps, cmds, isAddOperation); + _commandSetupHelper.createVpcAssociatePrivateIPCommands(router, privateIps, cmds, isAddOperation); try { if (_networkGeneralHelper.sendCommandsToRouter(router, cmds)) { @@ -202,11 +202,11 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { final List<IpAliasTO> ipaliasTo = new ArrayList<IpAliasTO>(); ipaliasTo.add(new IpAliasTO(routerAliasIp, nicAlias.getNetmask(), nicAlias.getAliasCount().toString())); - subnet.createIpAlias(router, ipaliasTo, nicAlias.getNetworkId(), cmds); + _commandSetupHelper.createIpAlias(router, ipaliasTo, nicAlias.getNetworkId(), cmds); // also add the required configuration to the dnsmasq for supporting // dhcp and dns on the new ip. - subnet.configDnsMasq(router, network, cmds); + _commandSetupHelper.configDnsMasq(router, network, cmds); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } @@ -217,7 +217,7 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { List<StaticRouteProfile> staticRoutes = staticRoutesRules.getStaticRoutes(); Commands cmds = new Commands(Command.OnError.Continue); - staticRoutesRules.createStaticRouteCommands(staticRoutes, router, cmds); + _commandSetupHelper.createStaticRouteCommands(staticRoutes, router, cmds); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } @@ -228,7 +228,7 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { List<? extends VpnUser> users = vpnRules.getUsers(); Commands cmds = new Commands(Command.OnError.Continue); - vpnRules.createApplyVpnUsersCommand(users, router, cmds); + _commandSetupHelper.createApplyVpnUsersCommand(users, router, cmds); // Currently we receive just one answer from the agent. In the future we // have to parse individual answers and set http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java ---------------------------------------------------------------------- diff --git a/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java index ec52911..5327a5d 100644 --- a/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java +++ b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java @@ -102,6 +102,11 @@ public class BasicNetworkTopology implements NetworkTopology { } @Override + public NetworkTopologyVisitor getVisitor() { + return _basicVisitor; + } + + @Override public boolean setupPrivateGateway(final PrivateGateway gateway, final VirtualRouter router) throws ConcurrentOperationException, ResourceUnavailableException { throw new CloudRuntimeException("setupPrivateGateway not implemented in Basic Network Topology."); } @@ -383,7 +388,7 @@ public class BasicNetworkTopology implements NetworkTopology { } try { - ruleApplier.accept(_basicVisitor, router); + ruleApplier.accept(getVisitor(), router); connectedRouters.add(router); } catch (final AgentUnavailableException e) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java ---------------------------------------------------------------------- diff --git a/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java b/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java index 817fad7..987e23e 100644 --- a/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java +++ b/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java @@ -32,6 +32,7 @@ import com.cloud.network.Network; import com.cloud.network.PublicIpAddress; import com.cloud.network.VpnUser; import com.cloud.network.lb.LoadBalancingRule; +import com.cloud.network.router.CommandSetupHelper; import com.cloud.network.router.NetworkHelper; import com.cloud.network.router.VirtualRouter; import com.cloud.network.rules.DhcpEntryRules; @@ -73,6 +74,9 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { @Inject protected NetworkHelper _networkGeneralHelper; + @Inject + protected CommandSetupHelper _commandSetupHelper; + @Override public boolean visit(final StaticNatRules nat) throws ResourceUnavailableException { final Network network = nat.getNetwork(); @@ -80,7 +84,7 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final List<? extends StaticNat> rules = nat.getRules(); final Commands cmds = new Commands(Command.OnError.Continue); - nat.createApplyStaticNatCommands(rules, router, cmds, network.getId()); + _commandSetupHelper.createApplyStaticNatCommands(rules, router, cmds, network.getId()); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } @@ -92,7 +96,7 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final List<LoadBalancingRule> rules = loadbalancing.getRules(); final Commands cmds = new Commands(Command.OnError.Continue); - loadbalancing.createApplyLoadBalancingRulesCommands(rules, router, cmds, network.getId()); + _commandSetupHelper.createApplyLoadBalancingRulesCommands(rules, router, cmds, network.getId()); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } @@ -110,25 +114,25 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final Commands cmds = new Commands(Command.OnError.Continue); if (purpose == Purpose.LoadBalancing) { - firewall.createApplyLoadBalancingRulesCommands(loadbalancingRules, router, cmds, network.getId()); + _commandSetupHelper.createApplyLoadBalancingRulesCommands(loadbalancingRules, router, cmds, network.getId()); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } else if (purpose == Purpose.PortForwarding) { - firewall.createApplyPortForwardingRulesCommands((List<? extends PortForwardingRule>) rules, router, cmds, network.getId()); + _commandSetupHelper.createApplyPortForwardingRulesCommands((List<? extends PortForwardingRule>) rules, router, cmds, network.getId()); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } else if (purpose == Purpose.StaticNat) { - firewall.createApplyStaticNatRulesCommands((List<StaticNatRule>) rules, router, cmds, network.getId()); + _commandSetupHelper.createApplyStaticNatRulesCommands((List<StaticNatRule>) rules, router, cmds, network.getId()); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } else if (purpose == Purpose.Firewall) { - firewall.createApplyFirewallRulesCommands(rules, router, cmds, network.getId()); + _commandSetupHelper.createApplyFirewallRulesCommands(rules, router, cmds, network.getId()); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); @@ -146,7 +150,7 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final Commands commands = new Commands(Command.OnError.Continue); final List<? extends PublicIpAddress> ips = ipRules.getIpAddresses(); - ipRules.createAssociateIPCommands(router, ips, commands, network.getId()); + _commandSetupHelper.createAssociateIPCommands(router, ips, commands, network.getId()); return _networkGeneralHelper.sendCommandsToRouter(router, commands); } @@ -161,8 +165,8 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final DeployDestination destination = userdata.getDestination(); if (router.getPodIdToDeployIn().longValue() == destination.getPod().getId()) { - userdata.createPasswordCommand(router, profile, nicVo, commands); - userdata.createVmDataCommand(router, userVM, nicVo, userVM.getDetail("SSH.PublicKey"), commands); + _commandSetupHelper.createPasswordCommand(router, profile, nicVo, commands); + _commandSetupHelper.createVmDataCommand(router, userVM, nicVo, userVM.getDetail("SSH.PublicKey"), commands); return _networkGeneralHelper.sendCommandsToRouter(router, commands); } @@ -180,7 +184,7 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final DeployDestination destination = dhcp.getDestination(); if (router.getPodIdToDeployIn().longValue() == destination.getPod().getId()) { - dhcp.createDhcpEntryCommand(router, userVM, nicVo, commands); + _commandSetupHelper.createDhcpEntryCommand(router, userVM, nicVo, commands); return _networkGeneralHelper.sendCommandsToRouter(router, commands); } @@ -199,10 +203,10 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final VMTemplateVO template = sshkey.getTemplate(); if (template != null && template.getEnablePassword()) { - sshkey.createPasswordCommand(router, profile, nicVo, commands); + _commandSetupHelper.createPasswordCommand(router, profile, nicVo, commands); } - sshkey.createVmDataCommand(router, userVM, nicVo, sshKeystr, commands); + _commandSetupHelper.createVmDataCommand(router, userVM, nicVo, sshKeystr, commands); return _networkGeneralHelper.sendCommandsToRouter(router, commands); } @@ -214,7 +218,7 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final VirtualMachineProfile profile = passwd.getProfile(); final Commands cmds = new Commands(Command.OnError.Stop); - passwd.createPasswordCommand(router, profile, nicVo, cmds); + _commandSetupHelper.createPasswordCommand(router, profile, nicVo, cmds); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } @@ -227,7 +231,7 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { final NicVO nicVo = userdata.getNicVo(); final Commands commands = new Commands(Command.OnError.Stop); - userdata.createVmDataCommand(router, userVM, nicVo, null, commands); + _commandSetupHelper.createVmDataCommand(router, userVM, nicVo, null, commands); return _networkGeneralHelper.sendCommandsToRouter(router, commands); } @@ -238,7 +242,7 @@ public class BasicNetworkVisitor extends NetworkTopologyVisitor { List<? extends VpnUser> users = vpn.getUsers(); final Commands cmds = new Commands(Command.OnError.Continue); - vpn.createApplyVpnUsersCommand(users, router, cmds); + _commandSetupHelper.createApplyVpnUsersCommand(users, router, cmds); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java ---------------------------------------------------------------------- diff --git a/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java b/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java index 469c177..2129b42 100644 --- a/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java +++ b/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java @@ -42,6 +42,7 @@ import com.cloud.vm.VirtualMachineProfile; public interface NetworkTopology { <<<<<<< HEAD +<<<<<<< HEAD StringBuilder createGuestBootLoadArgs(final NicProfile guestNic, final String defaultDns1, final String defaultDns2, DomainRouterVO router); String retrieveGuestDhcpRange(final NicProfile guestNic, final Network guestNetwork, final DataCenter dc); @@ -51,6 +52,10 @@ public interface NetworkTopology { // ====== USER FOR VPC ONLY ====== // ======= +======= + NetworkTopologyVisitor getVisitor(); + +>>>>>>> 06c77f1... refactor all private methods in the virtual router appliance and VPC appliance // ====== USED FOR VPC ONLY ====== // >>>>>>> 0b8b22f... adding setupPrivateGateway to new style;