Changing the way the DAOs were being injected in the RuleApplier;
Making code clearer and simple.
Conflicts:
server/src/com/cloud/network/rules/PrivateGatewayRules.java
server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java
server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b9485761
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b9485761
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b9485761
Branch: refs/heads/vpc-refactor
Commit: b9485761fd8e6a6c687897399132ec9b657bb16c
Parents: 7ad7c56
Author: Wilder Rodrigues <[email protected]>
Authored: Tue Sep 9 17:09:29 2014 +0200
Committer: Wilder Rodrigues <[email protected]>
Committed: Fri Oct 3 06:21:28 2014 +0200
----------------------------------------------------------------------
.../cloud/network/rules/AdvancedVpnRules.java | 4 +-
.../com/cloud/network/rules/DhcpEntryRules.java | 12 +-
.../src/com/cloud/network/rules/DhcpRules.java | 9 +-
.../cloud/network/rules/DhcpSubNetRules.java | 52 +++--
.../com/cloud/network/rules/FirewallRules.java | 20 +-
.../cloud/network/rules/LoadBalancingRules.java | 20 +-
.../cloud/network/rules/NicPlugInOutRules.java | 48 +++--
.../network/rules/PasswordToRouterRules.java | 8 +-
.../network/rules/PrivateGatewayRules.java | 41 ++--
.../com/cloud/network/rules/RuleApplier.java | 47 +---
.../network/rules/SshKeyToRouterRules.java | 16 +-
.../cloud/network/rules/UserdataPwdRules.java | 10 +-
.../network/rules/UserdataToRouterRules.java | 10 +-
.../rules/VirtualNetworkApplianceFactory.java | 212 ++++---------------
.../network/rules/VpcIpAssociationRules.java | 4 +-
.../topology/AdvancedNetworkTopology.java | 20 +-
.../topology/AdvancedNetworkVisitor.java | 4 +-
.../network/topology/BasicNetworkTopology.java | 26 ++-
.../network/topology/BasicNetworkVisitor.java | 9 +
.../topology/NetworkTopologyVisitor.java | 8 +-
20 files changed, 260 insertions(+), 320 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/AdvancedVpnRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/AdvancedVpnRules.java
b/server/src/com/cloud/network/rules/AdvancedVpnRules.java
index f7cb361..d97ffb6 100644
--- a/server/src/com/cloud/network/rules/AdvancedVpnRules.java
+++ b/server/src/com/cloud/network/rules/AdvancedVpnRules.java
@@ -28,6 +28,7 @@ import com.cloud.network.RemoteAccessVpn;
import com.cloud.network.VpnUser;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.vpc.Vpc;
+import com.cloud.network.vpc.dao.VpcDao;
import com.cloud.vm.VirtualMachine.State;
public class AdvancedVpnRules extends BasicVpnRules {
@@ -45,7 +46,8 @@ public class AdvancedVpnRules extends BasicVpnRules {
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
- Vpc vpc = _vpcDao.findById(_remoteAccessVpn.getVpcId());
+ VpcDao vpcDao =
visitor.getVirtualNetworkApplianceFactory().getVpcDao();
+ Vpc vpc = vpcDao.findById(_remoteAccessVpn.getVpcId());
if (_router.getState() != State.Running) {
s_logger.warn("Failed to add/remove Remote Access VPN users:
router not in running state");
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/DhcpEntryRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/DhcpEntryRules.java
b/server/src/com/cloud/network/rules/DhcpEntryRules.java
index b7a7bd3..991813c 100644
--- a/server/src/com/cloud/network/rules/DhcpEntryRules.java
+++ b/server/src/com/cloud/network/rules/DhcpEntryRules.java
@@ -27,6 +27,8 @@ import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.UserVmDao;
public class DhcpEntryRules extends RuleApplier {
@@ -49,9 +51,13 @@ public class DhcpEntryRules extends RuleApplier {
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
- _userVM = _userVmDao.findById(_profile.getId());
- _userVmDao.loadDetails(_userVM);
- _nicVo = _nicDao.findById(_nic.getId());
+ UserVmDao userVmDao =
visitor.getVirtualNetworkApplianceFactory().getUserVmDao();
+ _userVM = userVmDao.findById(_profile.getId());
+
+ userVmDao.loadDetails(_userVM);
+
+ NicDao nicDao =
visitor.getVirtualNetworkApplianceFactory().getNicDao();
+ _nicVo = nicDao.findById(_nic.getId());
return visitor.visit(this);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/DhcpRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/DhcpRules.java
b/server/src/com/cloud/network/rules/DhcpRules.java
index 655d430..5e8cf9e 100644
--- a/server/src/com/cloud/network/rules/DhcpRules.java
+++ b/server/src/com/cloud/network/rules/DhcpRules.java
@@ -22,6 +22,8 @@ import
org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
import com.cloud.agent.api.PvlanSetupCommand;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
+import com.cloud.network.NetworkModel;
+import com.cloud.network.dao.NetworkDao;
import com.cloud.network.router.VirtualRouter;
import com.cloud.vm.NicProfile;
@@ -48,8 +50,11 @@ public class DhcpRules extends RuleApplier {
op = "delete";
}
- final Network network = _networkDao.findById(_nic.getNetworkId());
- final String networkTag =
_networkModel.getNetworkTag(_router.getHypervisorType(), network);
+ NetworkDao networkDao =
visitor.getVirtualNetworkApplianceFactory().getNetworkDao();
+ final Network network = networkDao.findById(_nic.getNetworkId());
+
+ NetworkModel networkModel =
visitor.getVirtualNetworkApplianceFactory().getNetworkModel();
+ final String networkTag =
networkModel.getNetworkTag(_router.getHypervisorType(), network);
_setupCommand = PvlanSetupCommand.createDhcpSetup(op,
_nic.getBroadCastUri(), networkTag, _router.getInstanceName(),
_nic.getMacAddress(), _nic.getIp4Address());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/DhcpSubNetRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/DhcpSubNetRules.java
b/server/src/com/cloud/network/rules/DhcpSubNetRules.java
index 0bbcfcc..ac69479 100644
--- a/server/src/com/cloud/network/rules/DhcpSubNetRules.java
+++ b/server/src/com/cloud/network/rules/DhcpSubNetRules.java
@@ -28,12 +28,17 @@ import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.Vlan;
import com.cloud.dc.VlanVO;
+import com.cloud.dc.dao.DataCenterDao;
+import com.cloud.dc.dao.HostPodDao;
+import com.cloud.dc.dao.VlanDao;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.IpAddressManager;
import com.cloud.network.Network;
import com.cloud.network.Network.GuestType;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.addr.PublicIp;
+import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.router.VirtualRouter;
import com.cloud.user.Account;
import com.cloud.utils.db.Transaction;
@@ -47,7 +52,10 @@ import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.NicIpAliasDao;
import com.cloud.vm.dao.NicIpAliasVO;
+import com.cloud.vm.dao.UserVmDao;
public class DhcpSubNetRules extends RuleApplier {
@@ -70,11 +78,13 @@ public class DhcpSubNetRules extends RuleApplier {
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
- final UserVmVO vm = _userVmDao.findById(_profile.getId());
- _userVmDao.loadDetails(vm);
+ UserVmDao userVmDao =
visitor.getVirtualNetworkApplianceFactory().getUserVmDao();
+ final UserVmVO vm = userVmDao.findById(_profile.getId());
+ userVmDao.loadDetails(vm);
+ NicDao nicDao =
visitor.getVirtualNetworkApplianceFactory().getNicDao();
// check if this is not the primary subnet.
- final NicVO domr_guest_nic =
_nicDao.findByInstanceIdAndIpAddressAndVmtype(_router.getId(),
_nicDao.getIpAddress(_nic.getNetworkId(), _router.getId()),
+ final NicVO domrGuestNic =
nicDao.findByInstanceIdAndIpAddressAndVmtype(_router.getId(),
nicDao.getIpAddress(_nic.getNetworkId(), _router.getId()),
VirtualMachine.Type.DomainRouter);
// check if the router ip address and the vm ip address belong to same
// subnet.
@@ -82,8 +92,9 @@ public class DhcpSubNetRules extends RuleApplier {
// create one.
// This should happen only in case of Basic and Advanced SG enabled
// networks.
- if (!NetUtils.sameSubnet(domr_guest_nic.getIp4Address(),
_nic.getIp4Address(), _nic.getNetmask())) {
- final List<NicIpAliasVO> aliasIps =
_nicIpAliasDao.listByNetworkIdAndState(domr_guest_nic.getNetworkId(),
NicIpAlias.state.active);
+ if (!NetUtils.sameSubnet(domrGuestNic.getIp4Address(),
_nic.getIp4Address(), _nic.getNetmask())) {
+ final NicIpAliasDao nicIpAliasDao =
visitor.getVirtualNetworkApplianceFactory().getNicIpAliasDao();
+ final List<NicIpAliasVO> aliasIps =
nicIpAliasDao.listByNetworkIdAndState(domrGuestNic.getNetworkId(),
NicIpAlias.state.active);
boolean ipInVmsubnet = false;
for (final NicIpAliasVO alias : aliasIps) {
// check if any of the alias ips belongs to the Vm's subnet.
@@ -94,22 +105,27 @@ public class DhcpSubNetRules extends RuleApplier {
}
PublicIp routerPublicIP = null;
- final DataCenter dc = _dcDao.findById(_router.getDataCenterId());
+ DataCenterDao dcDao =
visitor.getVirtualNetworkApplianceFactory().getDcDao();
+ final DataCenter dc = dcDao.findById(_router.getDataCenterId());
if (ipInVmsubnet == false) {
try {
- if ((_network.getTrafficType() == TrafficType.Guest) &&
(_network.getGuestType() == GuestType.Shared)) {
- _podDao.findById(vm.getPodIdToDeployIn());
+ if (_network.getTrafficType() == TrafficType.Guest &&
_network.getGuestType() == GuestType.Shared) {
+ HostPodDao podDao =
visitor.getVirtualNetworkApplianceFactory().getPodDao();
+ podDao.findById(vm.getPodIdToDeployIn());
final Account caller =
CallContext.current().getCallingAccount();
- final List<VlanVO> vlanList =
_vlanDao.listVlansByNetworkIdAndGateway(_network.getId(), _nic.getGateway());
+
+ VlanDao vlanDao =
visitor.getVirtualNetworkApplianceFactory().getVlanDao();
+ final List<VlanVO> vlanList =
vlanDao.listVlansByNetworkIdAndGateway(_network.getId(), _nic.getGateway());
final List<Long> vlanDbIdList = new ArrayList<Long>();
for (final VlanVO vlan : vlanList) {
vlanDbIdList.add(vlan.getId());
}
+ IpAddressManager ipAddrMgr =
visitor.getVirtualNetworkApplianceFactory().getIpAddrMgr();
if (dc.getNetworkType() == NetworkType.Basic) {
- routerPublicIP =
_ipAddrMgr.assignPublicIpAddressFromVlans(_router.getDataCenterId(),
vm.getPodIdToDeployIn(), caller, Vlan.VlanType.DirectAttached,
+ routerPublicIP =
ipAddrMgr.assignPublicIpAddressFromVlans(_router.getDataCenterId(),
vm.getPodIdToDeployIn(), caller, Vlan.VlanType.DirectAttached,
vlanDbIdList, _nic.getNetworkId(), null,
false);
} else {
- routerPublicIP =
_ipAddrMgr.assignPublicIpAddressFromVlans(_router.getDataCenterId(), null,
caller, Vlan.VlanType.DirectAttached, vlanDbIdList,
+ routerPublicIP =
ipAddrMgr.assignPublicIpAddressFromVlans(_router.getDataCenterId(), null,
caller, Vlan.VlanType.DirectAttached, vlanDbIdList,
_nic.getNetworkId(), null, false);
}
@@ -121,21 +137,23 @@ public class DhcpSubNetRules extends RuleApplier {
return false;
}
// this means we did not create an IP alias on the router.
- _nicAlias = new NicIpAliasVO(domr_guest_nic.getId(),
_routerAliasIp, _router.getId(), CallContext.current().getCallingAccountId(),
_network.getDomainId(),
+ _nicAlias = new NicIpAliasVO(domrGuestNic.getId(),
_routerAliasIp, _router.getId(), CallContext.current().getCallingAccountId(),
_network.getDomainId(),
_nic.getNetworkId(), _nic.getGateway(),
_nic.getNetmask());
- _nicAlias.setAliasCount((routerPublicIP.getIpMacAddress()));
- _nicIpAliasDao.persist(_nicAlias);
+ _nicAlias.setAliasCount(routerPublicIP.getIpMacAddress());
+ nicIpAliasDao.persist(_nicAlias);
final boolean result = visitor.visit(this);
if (result == false) {
- final NicIpAliasVO ipAliasVO =
_nicIpAliasDao.findByInstanceIdAndNetworkId(_network.getId(), _router.getId());
+ final NicIpAliasVO ipAliasVO =
nicIpAliasDao.findByInstanceIdAndNetworkId(_network.getId(), _router.getId());
final PublicIp routerPublicIPFinal = routerPublicIP;
Transaction.execute(new TransactionCallbackNoReturn() {
@Override
public void doInTransactionWithoutResult(final
TransactionStatus status) {
- _nicIpAliasDao.expunge(ipAliasVO.getId());
-
_ipAddressDao.unassignIpAddress(routerPublicIPFinal.getId());
+ nicIpAliasDao.expunge(ipAliasVO.getId());
+
+ IPAddressDao ipAddressDao =
visitor.getVirtualNetworkApplianceFactory().getIpAddressDao();
+
ipAddressDao.unassignIpAddress(routerPublicIPFinal.getId());
}
});
throw new CloudRuntimeException("failed to configure ip
alias on the router as a part of dhcp config");
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/FirewallRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/FirewallRules.java
b/server/src/com/cloud/network/rules/FirewallRules.java
index 668f403..b36ce81 100644
--- a/server/src/com/cloud/network/rules/FirewallRules.java
+++ b/server/src/com/cloud/network/rules/FirewallRules.java
@@ -24,12 +24,15 @@ import
org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
+import com.cloud.network.NetworkModel;
+import com.cloud.network.dao.LoadBalancerDao;
import com.cloud.network.dao.LoadBalancerVO;
import com.cloud.network.lb.LoadBalancingRule;
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
import com.cloud.network.lb.LoadBalancingRule.LbHealthCheckPolicy;
import com.cloud.network.lb.LoadBalancingRule.LbSslCert;
import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy;
+import com.cloud.network.lb.LoadBalancingRulesManager;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.rules.FirewallRule.Purpose;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
@@ -54,15 +57,20 @@ public class FirewallRules extends RuleApplier {
_purpose = _rules.get(0).getPurpose();
if (_purpose == Purpose.LoadBalancing) {
+ LoadBalancerDao loadBalancerDao =
visitor.getVirtualNetworkApplianceFactory().getLoadBalancerDao();
// for load balancer we have to resend all lb rules for the network
- final List<LoadBalancerVO> lbs =
_loadBalancerDao.listByNetworkIdAndScheme(_network.getId(), Scheme.Public);
+ final List<LoadBalancerVO> lbs =
loadBalancerDao.listByNetworkIdAndScheme(_network.getId(), Scheme.Public);
_loadbalancingRules = new ArrayList<LoadBalancingRule>();
+
+ LoadBalancingRulesManager lbMgr =
visitor.getVirtualNetworkApplianceFactory().getLbMgr();
+ NetworkModel networkModel =
visitor.getVirtualNetworkApplianceFactory().getNetworkModel();
+
for (final LoadBalancerVO lb : lbs) {
- final List<LbDestination> dstList =
_lbMgr.getExistingDestinations(lb.getId());
- final List<LbStickinessPolicy> policyList =
_lbMgr.getStickinessPolicies(lb.getId());
- final List<LbHealthCheckPolicy> hcPolicyList =
_lbMgr.getHealthCheckPolicies(lb.getId());
- final LbSslCert sslCert = _lbMgr.getLbSslCert(lb.getId());
- final Ip sourceIp =
_networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress();
+ final List<LbDestination> dstList =
lbMgr.getExistingDestinations(lb.getId());
+ final List<LbStickinessPolicy> policyList =
lbMgr.getStickinessPolicies(lb.getId());
+ final List<LbHealthCheckPolicy> hcPolicyList =
lbMgr.getHealthCheckPolicies(lb.getId());
+ final LbSslCert sslCert = lbMgr.getLbSslCert(lb.getId());
+ final Ip sourceIp =
networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress();
final LoadBalancingRule loadBalancing = new
LoadBalancingRule(lb, dstList, policyList, hcPolicyList, sourceIp, sslCert,
lb.getLbProtocol());
_loadbalancingRules.add(loadBalancing);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/LoadBalancingRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/LoadBalancingRules.java
b/server/src/com/cloud/network/rules/LoadBalancingRules.java
index d6e762f..62c8b3b 100644
--- a/server/src/com/cloud/network/rules/LoadBalancingRules.java
+++ b/server/src/com/cloud/network/rules/LoadBalancingRules.java
@@ -23,12 +23,15 @@ import
org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
+import com.cloud.network.NetworkModel;
+import com.cloud.network.dao.LoadBalancerDao;
import com.cloud.network.dao.LoadBalancerVO;
import com.cloud.network.lb.LoadBalancingRule;
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
import com.cloud.network.lb.LoadBalancingRule.LbHealthCheckPolicy;
import com.cloud.network.lb.LoadBalancingRule.LbSslCert;
import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy;
+import com.cloud.network.lb.LoadBalancingRulesManager;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.rules.LoadBalancerContainer.Scheme;
import com.cloud.utils.net.Ip;
@@ -46,18 +49,23 @@ public class LoadBalancingRules extends RuleApplier {
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
+ LoadBalancerDao loadBalancerDao =
visitor.getVirtualNetworkApplianceFactory().getLoadBalancerDao();
// For load balancer we have to resend all lb rules for the network
- final List<LoadBalancerVO> lbs =
_loadBalancerDao.listByNetworkIdAndScheme(_network.getId(), Scheme.Public);
+ final List<LoadBalancerVO> lbs =
loadBalancerDao.listByNetworkIdAndScheme(_network.getId(), Scheme.Public);
// We are cleaning it before because all the rules have to be sent to
// the router.
_rules.clear();
+
+ LoadBalancingRulesManager lbMgr =
visitor.getVirtualNetworkApplianceFactory().getLbMgr();
+ NetworkModel networkModel =
visitor.getVirtualNetworkApplianceFactory().getNetworkModel();
for (final LoadBalancerVO lb : lbs) {
- final List<LbDestination> dstList =
_lbMgr.getExistingDestinations(lb.getId());
- final List<LbStickinessPolicy> policyList =
_lbMgr.getStickinessPolicies(lb.getId());
- final List<LbHealthCheckPolicy> hcPolicyList =
_lbMgr.getHealthCheckPolicies(lb.getId());
- final LbSslCert sslCert = _lbMgr.getLbSslCert(lb.getId());
- final Ip sourceIp =
_networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress();
+
+ final List<LbDestination> dstList =
lbMgr.getExistingDestinations(lb.getId());
+ final List<LbStickinessPolicy> policyList =
lbMgr.getStickinessPolicies(lb.getId());
+ final List<LbHealthCheckPolicy> hcPolicyList =
lbMgr.getHealthCheckPolicies(lb.getId());
+ final LbSslCert sslCert = lbMgr.getLbSslCert(lb.getId());
+ final Ip sourceIp =
networkModel.getPublicIpAddress(lb.getSourceIpAddressId()).getAddress();
final LoadBalancingRule loadBalancing = new LoadBalancingRule(lb,
dstList, policyList, hcPolicyList, sourceIp, sslCert, lb.getLbProtocol());
_rules.add(loadBalancing);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/NicPlugInOutRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/NicPlugInOutRules.java
b/server/src/com/cloud/network/rules/NicPlugInOutRules.java
index c20d07e..121be90 100644
--- a/server/src/com/cloud/network/rules/NicPlugInOutRules.java
+++ b/server/src/com/cloud/network/rules/NicPlugInOutRules.java
@@ -34,16 +34,22 @@ import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
import com.cloud.network.Network;
+import com.cloud.network.NetworkModel;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.IsolationType;
import com.cloud.network.PublicIpAddress;
import com.cloud.network.router.VirtualRouter;
+import com.cloud.network.vpc.VpcManager;
import com.cloud.network.vpc.VpcVO;
+import com.cloud.network.vpc.dao.VpcDao;
import com.cloud.user.UserStatisticsVO;
+import com.cloud.user.dao.UserStatisticsDao;
import com.cloud.utils.Pair;
import com.cloud.vm.Nic;
import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
+import com.cloud.vm.VirtualMachineManager;
+import com.cloud.vm.dao.NicDao;
public class NicPlugInOutRules extends RuleApplier {
@@ -62,17 +68,20 @@ public class NicPlugInOutRules extends RuleApplier {
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
- Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>>
nicsToChange = getNicsToChangeOnRouter(_ipAddresses);
+ Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>>
nicsToChange = getNicsToChangeOnRouter(visitor);
+
Map<String, PublicIpAddress> nicsToPlug = nicsToChange.first();
Map<String, PublicIpAddress> nicsToUnplug = nicsToChange.second();
+ NetworkModel networkModel =
visitor.getVirtualNetworkApplianceFactory().getNetworkModel();
+ VirtualMachineManager itMgr =
visitor.getVirtualNetworkApplianceFactory().getItMgr();
// 1) Unplug the nics
for (Entry<String, PublicIpAddress> entry : nicsToUnplug.entrySet()) {
Network publicNtwk = null;
try {
- publicNtwk =
_networkModel.getNetwork(entry.getValue().getNetworkId());
+ publicNtwk =
networkModel.getNetwork(entry.getValue().getNetworkId());
URI broadcastUri =
BroadcastDomainType.Vlan.toUri(entry.getKey());
- _itMgr.removeVmFromNetwork(_router, publicNtwk, broadcastUri);
+ itMgr.removeVmFromNetwork(_router, publicNtwk, broadcastUri);
} catch (ConcurrentOperationException e) {
s_logger.warn("Failed to remove router " + _router + " from
vlan " + entry.getKey() + " in public network " + publicNtwk + " due to ", e);
return false;
@@ -80,7 +89,8 @@ public class NicPlugInOutRules extends RuleApplier {
}
_netUsageCommands = new Commands(Command.OnError.Continue);
- VpcVO vpc = _vpcDao.findById(_router.getVpcId());
+ VpcDao vpcDao =
visitor.getVirtualNetworkApplianceFactory().getVpcDao();
+ VpcVO vpc = vpcDao.findById(_router.getVpcId());
// 2) Plug the nics
for (String vlanTag : nicsToPlug.keySet()) {
@@ -101,8 +111,8 @@ public class NicPlugInOutRules extends RuleApplier {
NicProfile publicNic = null;
Network publicNtwk = null;
try {
- publicNtwk = _networkModel.getNetwork(ip.getNetworkId());
- publicNic = _itMgr.addVmToNetwork(_router, publicNtwk,
defaultNic);
+ publicNtwk = networkModel.getNetwork(ip.getNetworkId());
+ publicNic = itMgr.addVmToNetwork(_router, publicNtwk,
defaultNic);
} catch (ConcurrentOperationException e) {
s_logger.warn("Failed to add router " + _router + " to vlan "
+ vlanTag + " in public network " + publicNtwk + " due to ", e);
} catch (InsufficientCapacityException e) {
@@ -117,12 +127,14 @@ public class NicPlugInOutRules extends RuleApplier {
// IPAssoc
NetworkUsageCommand netUsageCmd = new
NetworkUsageCommand(_router.getPrivateIpAddress(), _router.getInstanceName(),
true, defaultNic.getIp4Address(), vpc.getCidr());
_netUsageCommands.addCommand(netUsageCmd);
- UserStatisticsVO stats =
_userStatsDao.findBy(_router.getAccountId(), _router.getDataCenterId(),
publicNtwk.getId(), publicNic.getIp4Address(), _router.getId(),
+
+ UserStatisticsDao userStatsDao =
visitor.getVirtualNetworkApplianceFactory().getUserStatsDao();
+ UserStatisticsVO stats =
userStatsDao.findBy(_router.getAccountId(), _router.getDataCenterId(),
publicNtwk.getId(), publicNic.getIp4Address(), _router.getId(),
_router.getType().toString());
if (stats == null) {
stats = new UserStatisticsVO(_router.getAccountId(),
_router.getDataCenterId(), publicNic.getIp4Address(), _router.getId(),
_router.getType().toString(),
publicNtwk.getId());
- _userStatsDao.persist(stats);
+ userStatsDao.persist(stats);
}
}
@@ -139,24 +151,26 @@ public class NicPlugInOutRules extends RuleApplier {
return _netUsageCommands;
}
- private Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>>
getNicsToChangeOnRouter(final List<? extends PublicIpAddress> publicIps) {
+ private Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>>
getNicsToChangeOnRouter(final NetworkTopologyVisitor visitor) {
// 1) check which nics need to be plugged/unplugged and plug/unplug
them
final Map<String, PublicIpAddress> nicsToPlug = new HashMap<String,
PublicIpAddress>();
final Map<String, PublicIpAddress> nicsToUnplug = new HashMap<String,
PublicIpAddress>();
+ VpcManager vpcMgr =
visitor.getVirtualNetworkApplianceFactory().getVpcMgr();
+ NicDao nicDao =
visitor.getVirtualNetworkApplianceFactory().getNicDao();
// find out nics to unplug
- for (PublicIpAddress ip : publicIps) {
+ for (PublicIpAddress ip : _ipAddresses) {
long publicNtwkId = ip.getNetworkId();
// if ip is not associated to any network, and there are no
firewall
// rules, release it on the backend
- if (!_vpcMgr.isIpAllocatedToVpc(ip)) {
+ if (!vpcMgr.isIpAllocatedToVpc(ip)) {
ip.setState(IpAddress.State.Releasing);
}
if (ip.getState() == IpAddress.State.Releasing) {
- Nic nic =
_nicDao.findByIp4AddressAndNetworkIdAndInstanceId(publicNtwkId,
_router.getId(), ip.getAddress().addr());
+ Nic nic =
nicDao.findByIp4AddressAndNetworkIdAndInstanceId(publicNtwkId, _router.getId(),
ip.getAddress().addr());
if (nic != null) {
nicsToUnplug.put(ip.getVlanTag(), ip);
s_logger.debug("Need to unplug the nic for ip=" + ip + ";
vlan=" + ip.getVlanTag() + " in public network id =" + publicNtwkId);
@@ -165,20 +179,20 @@ public class NicPlugInOutRules extends RuleApplier {
}
// find out nics to plug
- for (PublicIpAddress ip : publicIps) {
+ for (PublicIpAddress ip : _ipAddresses) {
URI broadcastUri = BroadcastDomainType.Vlan.toUri(ip.getVlanTag());
long publicNtwkId = ip.getNetworkId();
// if ip is not associated to any network, and there are no
firewall
// rules, release it on the backend
- if (!_vpcMgr.isIpAllocatedToVpc(ip)) {
+ if (!vpcMgr.isIpAllocatedToVpc(ip)) {
ip.setState(IpAddress.State.Releasing);
}
if (ip.getState() == IpAddress.State.Allocated || ip.getState() ==
IpAddress.State.Allocating) {
// nic has to be plugged only when there are no nics for this
// vlan tag exist on VR
- Nic nic =
_nicDao.findByNetworkIdInstanceIdAndBroadcastUri(publicNtwkId, _router.getId(),
broadcastUri.toString());
+ Nic nic =
nicDao.findByNetworkIdInstanceIdAndBroadcastUri(publicNtwkId, _router.getId(),
broadcastUri.toString());
if (nic == null && nicsToPlug.get(ip.getVlanTag()) == null) {
nicsToPlug.put(ip.getVlanTag(), ip);
@@ -186,9 +200,9 @@ public class NicPlugInOutRules extends RuleApplier {
} else {
final PublicIpAddress nicToUnplug =
nicsToUnplug.get(ip.getVlanTag());
if (nicToUnplug != null) {
- NicVO nicVO =
_nicDao.findByIp4AddressAndNetworkIdAndInstanceId(publicNtwkId,
_router.getId(), nicToUnplug.getAddress().addr());
+ NicVO nicVO =
nicDao.findByIp4AddressAndNetworkIdAndInstanceId(publicNtwkId, _router.getId(),
nicToUnplug.getAddress().addr());
nicVO.setIp4Address(ip.getAddress().addr());
- _nicDao.update(nicVO.getId(), nicVO);
+ nicDao.update(nicVO.getId(), nicVO);
s_logger.debug("Updated the nic " + nicVO + " with the
new ip address " + ip.getAddress().addr());
nicsToUnplug.remove(ip.getVlanTag());
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/PasswordToRouterRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/PasswordToRouterRules.java
b/server/src/com/cloud/network/rules/PasswordToRouterRules.java
index 8395c10..6c46ab6 100644
--- a/server/src/com/cloud/network/rules/PasswordToRouterRules.java
+++ b/server/src/com/cloud/network/rules/PasswordToRouterRules.java
@@ -26,6 +26,8 @@ import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.UserVmDao;
public class PasswordToRouterRules extends RuleApplier {
@@ -45,9 +47,11 @@ public class PasswordToRouterRules extends RuleApplier {
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
- _userVmDao.loadDetails((UserVmVO)profile.getVirtualMachine());
+ UserVmDao userVmDao =
visitor.getVirtualNetworkApplianceFactory().getUserVmDao();
+ userVmDao.loadDetails((UserVmVO) profile.getVirtualMachine());
// for basic zone, send vm data/password information only to the
router in the same pod
- nicVo = _nicDao.findById(nic.getId());
+ NicDao nicDao =
visitor.getVirtualNetworkApplianceFactory().getNicDao();
+ nicVo = nicDao.findById(nic.getId());
return visitor.visit(this);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 a1e1c5c..476a617 100644
--- a/server/src/com/cloud/network/rules/PrivateGatewayRules.java
+++ b/server/src/com/cloud/network/rules/PrivateGatewayRules.java
@@ -23,10 +23,16 @@ import org.apache.log4j.Logger;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
+import com.cloud.network.NetworkModel;
+import com.cloud.network.dao.NetworkDao;
+import com.cloud.network.router.NetworkHelper;
+import com.cloud.network.router.NicProfileHelper;
import com.cloud.network.router.VirtualRouter;
+import com.cloud.network.vpc.NetworkACLManager;
import com.cloud.network.vpc.PrivateGateway;
import com.cloud.network.vpc.PrivateIpVO;
import com.cloud.vm.NicProfile;
+import com.cloud.vm.VirtualMachineManager;
public class PrivateGatewayRules extends RuleApplier {
@@ -48,14 +54,19 @@ public class PrivateGatewayRules extends RuleApplier {
boolean result = false;
try {
- _network =
_networkModel.getNetwork(_privateGateway.getNetworkId());
- NicProfile requested =
_vpcNetworkHelper.createPrivateNicProfileForGateway(_privateGateway);
+ NetworkModel networkModel =
visitor.getVirtualNetworkApplianceFactory().getNetworkModel();
+ _network = networkModel.getNetwork(_privateGateway.getNetworkId());
- if (!_networkHelper.checkRouterVersion(_router)) {
+ NicProfileHelper nicProfileHelper =
visitor.getVirtualNetworkApplianceFactory().getNicProfileHelper();
+ NicProfile requested =
nicProfileHelper.createPrivateNicProfileForGateway(_privateGateway);
+
+ NetworkHelper networkHelper =
visitor.getVirtualNetworkApplianceFactory().getNetworkHelper();
+ if (!networkHelper.checkRouterVersion(_router)) {
s_logger.warn("Router requires upgrade. Unable to send command
to router: " + _router.getId());
return false;
}
- _nicProfile = _itMgr.addVmToNetwork(_router, _network, requested);
+ VirtualMachineManager itMgr =
visitor.getVirtualNetworkApplianceFactory().getItMgr();
+ _nicProfile = itMgr.addVmToNetwork(_router, _network, requested);
// setup source nat
if (_nicProfile != null) {
@@ -89,32 +100,34 @@ public class PrivateGatewayRules extends RuleApplier {
return _nicProfile;
}
- public PrivateIpVO retrivePrivateIP() {
- PrivateIpVO ipVO =
_privateIpDao.findByIpAndSourceNetworkId(_nicProfile.getNetworkId(),
_nicProfile.getIp4Address());
+ public PrivateIpVO retrivePrivateIP(final NetworkTopologyVisitor visitor) {
+ PrivateIpVO ipVO =
visitor.getVirtualNetworkApplianceFactory().getPrivateIpDao().findByIpAndSourceNetworkId(_nicProfile.getNetworkId(),
_nicProfile.getIp4Address());
return ipVO;
}
- public Network retrievePrivateNetwork() {
+ public Network retrievePrivateNetwork(final NetworkTopologyVisitor
visitor) {
// This network might be the same we have already as an instance in the
// RuleApplier super class.
// Just doing this here, but will double check is remove if it's not
// needed.
- Network network = _networkDao.findById(_nicProfile.getNetworkId());
+ NetworkDao networkDao =
visitor.getVirtualNetworkApplianceFactory().getNetworkDao();
+ Network network = networkDao.findById(_nicProfile.getNetworkId());
return network;
}
protected boolean destroyPrivateGateway(final NetworkTopologyVisitor
visitor) throws ConcurrentOperationException, ResourceUnavailableException {
- if (!_networkModel.isVmPartOfNetwork(_router.getId(),
_privateGateway.getNetworkId())) {
+ NetworkModel networkModel =
visitor.getVirtualNetworkApplianceFactory().getNetworkModel();
+ if (!networkModel.isVmPartOfNetwork(_router.getId(),
_privateGateway.getNetworkId())) {
s_logger.debug("Router doesn't have nic for gateway " +
_privateGateway + " so no need to removed it");
return true;
}
- Network privateNetwork =
_networkModel.getNetwork(_privateGateway.getNetworkId());
+ Network privateNetwork =
networkModel.getNetwork(_privateGateway.getNetworkId());
s_logger.debug("Releasing private ip for gateway " + _privateGateway +
" from " + _router);
- _nicProfile = _networkModel.getNicProfile(_router,
privateNetwork.getId(), null);
+ _nicProfile = networkModel.getNicProfile(_router,
privateNetwork.getId(), null);
boolean result = visitor.visit(this);
if (!result) {
s_logger.warn("Failed to release private ip for gateway " +
_privateGateway + " on router " + _router);
@@ -122,13 +135,15 @@ public class PrivateGatewayRules extends RuleApplier {
}
// revoke network acl on the private gateway.
- if (!_networkACLMgr.revokeACLItemsForPrivateGw(_privateGateway)) {
+ NetworkACLManager networkACLMgr =
visitor.getVirtualNetworkApplianceFactory().getNetworkACLMgr();
+ if (!networkACLMgr.revokeACLItemsForPrivateGw(_privateGateway)) {
s_logger.debug("Failed to delete network acl items on " +
_privateGateway + " from router " + _router);
return false;
}
s_logger.debug("Removing router " + _router + " from private network "
+ privateNetwork + " as a part of delete private gateway");
- result = result && _itMgr.removeVmFromNetwork(_router, privateNetwork,
null);
+ VirtualMachineManager itMgr =
visitor.getVirtualNetworkApplianceFactory().getItMgr();
+ result = result && itMgr.removeVmFromNetwork(_router, privateNetwork,
null);
s_logger.debug("Private gateawy " + _privateGateway + " is removed
from router " + _router);
return result;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 4c399ed..cbeb27e 100644
--- a/server/src/com/cloud/network/rules/RuleApplier.java
+++ b/server/src/com/cloud/network/rules/RuleApplier.java
@@ -19,63 +19,19 @@ package com.cloud.network.rules;
import org.apache.cloudstack.network.topology.NetworkTopologyVisitor;
-import com.cloud.dc.dao.DataCenterDao;
-import com.cloud.dc.dao.HostPodDao;
-import com.cloud.dc.dao.VlanDao;
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.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.VirtualRouter;
-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.storage.dao.VMTemplateDao;
-import com.cloud.user.dao.UserStatisticsDao;
-import com.cloud.vm.VirtualMachineManager;
-import com.cloud.vm.dao.NicDao;
-import com.cloud.vm.dao.NicIpAliasDao;
-import com.cloud.vm.dao.UserVmDao;
public abstract class RuleApplier {
- protected NetworkModel _networkModel;
- protected LoadBalancingRulesManager _lbMgr;
- protected LoadBalancerDao _loadBalancerDao;
- protected NicDao _nicDao;
- protected DataCenterDao _dcDao;
- protected UserVmDao _userVmDao;
- protected VMTemplateDao _templateDao;
- protected NetworkDao _networkDao;
- 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 NetworkHelper _networkHelper;
- protected NicProfileHelper _nicProfileHelper;
public RuleApplier(final Network network) {
_network = network;
}
- public abstract boolean accept(NetworkTopologyVisitor visitor,
VirtualRouter router) throws ResourceUnavailableException;
-
public Network getNetwork() {
return _network;
}
@@ -83,4 +39,7 @@ public abstract class RuleApplier {
public VirtualRouter getRouter() {
return _router;
}
+
+ public abstract boolean accept(NetworkTopologyVisitor visitor,
VirtualRouter router) throws ResourceUnavailableException;
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 4e4b8ba..9a924e1 100644
--- a/server/src/com/cloud/network/rules/SshKeyToRouterRules.java
+++ b/server/src/com/cloud/network/rules/SshKeyToRouterRules.java
@@ -23,10 +23,13 @@ import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.Network;
import com.cloud.network.router.VirtualRouter;
import com.cloud.storage.VMTemplateVO;
+import com.cloud.storage.dao.VMTemplateDao;
import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.UserVmDao;
public class SshKeyToRouterRules extends RuleApplier {
@@ -49,12 +52,17 @@ public class SshKeyToRouterRules extends RuleApplier {
@Override
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
- _userVM = _userVmDao.findById(_profile.getVirtualMachine().getId());
- _userVmDao.loadDetails(_userVM);
- _nicVo = _nicDao.findById(_nic.getId());
+ UserVmDao userVmDao =
visitor.getVirtualNetworkApplianceFactory().getUserVmDao();
+ _userVM = userVmDao.findById(_profile.getVirtualMachine().getId());
+
+ userVmDao.loadDetails(_userVM);
+
+ NicDao nicDao =
visitor.getVirtualNetworkApplianceFactory().getNicDao();
+ _nicVo = nicDao.findById(_nic.getId());
// for basic zone, send vm data/password information only to the
router in the same pod
- _template =
_templateDao.findByIdIncludingRemoved(_profile.getTemplateId());
+ VMTemplateDao templateDao =
visitor.getVirtualNetworkApplianceFactory().getTemplateDao();
+ _template =
templateDao.findByIdIncludingRemoved(_profile.getTemplateId());
return visitor.visit(this);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 9d7ef15..62774d4 100644
--- a/server/src/com/cloud/network/rules/UserdataPwdRules.java
+++ b/server/src/com/cloud/network/rules/UserdataPwdRules.java
@@ -27,6 +27,8 @@ import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.UserVmDao;
public class UserdataPwdRules extends RuleApplier {
@@ -49,11 +51,13 @@ public class UserdataPwdRules extends RuleApplier {
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
- _userVM = _userVmDao.findById(_profile.getId());
- _userVmDao.loadDetails(_userVM);
+ UserVmDao userVmDao =
visitor.getVirtualNetworkApplianceFactory().getUserVmDao();
+ _userVM = userVmDao.findById(_profile.getId());
+ userVmDao.loadDetails(_userVM);
//for basic zone, send vm data/password information only to the router
in the same pod
- _nicVo = _nicDao.findById(_nic.getId());
+ NicDao nicDao =
visitor.getVirtualNetworkApplianceFactory().getNicDao();
+ _nicVo = nicDao.findById(_nic.getId());
return visitor.visit(this);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/com/cloud/network/rules/UserdataToRouterRules.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/UserdataToRouterRules.java
b/server/src/com/cloud/network/rules/UserdataToRouterRules.java
index 477342d..e47dc7f 100644
--- a/server/src/com/cloud/network/rules/UserdataToRouterRules.java
+++ b/server/src/com/cloud/network/rules/UserdataToRouterRules.java
@@ -26,6 +26,8 @@ import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.UserVmDao;
public class UserdataToRouterRules extends RuleApplier {
@@ -46,11 +48,13 @@ public class UserdataToRouterRules extends RuleApplier {
public boolean accept(final NetworkTopologyVisitor visitor, final
VirtualRouter router) throws ResourceUnavailableException {
_router = router;
- _userVM = _userVmDao.findById(_profile.getVirtualMachine().getId());
- _userVmDao.loadDetails(_userVM);
+ UserVmDao userVmDao =
visitor.getVirtualNetworkApplianceFactory().getUserVmDao();
+ _userVM = userVmDao.findById(_profile.getVirtualMachine().getId());
+ userVmDao.loadDetails(_userVM);
// for basic zone, send vm data/password information only to the
router in the same pod
- _nicVo = _nicDao.findById(_nic.getId());
+ NicDao nicDao =
visitor.getVirtualNetworkApplianceFactory().getNicDao();
+ _nicVo = nicDao.findById(_nic.getId());
return visitor.visit(this);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 5a551f0..e775fb1 100644
--- a/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java
+++ b/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java
@@ -16,39 +16,26 @@
// under the License.
package com.cloud.network.rules;
-import java.util.List;
-
import javax.inject.Inject;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.HostPodDao;
import com.cloud.dc.dao.VlanDao;
-import com.cloud.deploy.DeployDestination;
import com.cloud.network.IpAddressManager;
-import com.cloud.network.Network;
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.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.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.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.NicDao;
import com.cloud.vm.dao.NicIpAliasDao;
import com.cloud.vm.dao.UserVmDao;
@@ -98,196 +85,87 @@ public class VirtualNetworkApplianceFactory {
@Inject
private NicProfileHelper _nicProfileHelper;
- public LoadBalancingRules createLoadBalancingRules(final Network network,
final List<LoadBalancingRule> rules) {
- LoadBalancingRules lbRules = new LoadBalancingRules(network, rules);
-
- initBeans(lbRules);
-
- return lbRules;
+ public NetworkModel getNetworkModel() {
+ return _networkModel;
}
- public FirewallRules createFirewallRules(final Network network, final
List<? extends FirewallRule> rules) {
- FirewallRules fwRules = new FirewallRules(network, rules);
-
- initBeans(fwRules);
-
- fwRules._networkDao = _networkDao;
-
- return fwRules;
+ public LoadBalancingRulesManager getLbMgr() {
+ return _lbMgr;
}
- public StaticNatRules createStaticNatRules(final Network network, final
List<? extends StaticNat> rules) {
- StaticNatRules natRules = new StaticNatRules(network, rules);
-
- initBeans(natRules);
-
- return natRules;
+ public LoadBalancerDao getLoadBalancerDao() {
+ return _loadBalancerDao;
}
- private void initBeans(final RuleApplier applier) {
- applier._networkModel = _networkModel;
- applier._dcDao = _dcDao;
- applier._lbMgr = _lbMgr;
- applier._loadBalancerDao = _loadBalancerDao;
- applier._nicDao = _nicDao;
- applier._itMgr = _itMgr;
- applier._networkHelper = _networkHelper;
+ public NicDao getNicDao() {
+ return _nicDao;
}
- public IpAssociationRules createIpAssociationRules(final Network network,
final List<? extends PublicIpAddress> ipAddresses) {
- IpAssociationRules ipAssociationRules = new
IpAssociationRules(network, ipAddresses);
-
- initBeans(ipAssociationRules);
-
- ipAssociationRules._networkDao = _networkDao;
-
- return ipAssociationRules;
+ public VirtualMachineManager getItMgr() {
+ return _itMgr;
}
- public VpcIpAssociationRules createVpcIpAssociationRules(final Network
network, final List<? extends PublicIpAddress> ipAddresses) {
- VpcIpAssociationRules ipAssociationRules = new
VpcIpAssociationRules(network, ipAddresses);
-
- initBeans(ipAssociationRules);
-
- ipAssociationRules._networkDao = _networkDao;
-
- return ipAssociationRules;
+ public DataCenterDao getDcDao() {
+ return _dcDao;
}
- public VpnRules createVpnRules(final Network network, final List<? extends
VpnUser> users) {
- VpnRules vpnRules = new VpnRules(network, users);
-
- initBeans(vpnRules);
-
- return vpnRules;
+ public UserVmDao getUserVmDao() {
+ return _userVmDao;
}
- public PasswordToRouterRules createPasswordToRouterRules(final Network
network, final NicProfile nic, final VirtualMachineProfile profile) {
- PasswordToRouterRules routerRules = new PasswordToRouterRules(network,
nic, profile);
-
- initBeans(routerRules);
-
- routerRules._userVmDao = _userVmDao;
-
- return routerRules;
+ public UserStatisticsDao getUserStatsDao() {
+ return _userStatsDao;
}
- public SshKeyToRouterRules createSshKeyToRouterRules(final Network
network, final NicProfile nic, final VirtualMachineProfile profile, final
String sshKey) {
- SshKeyToRouterRules sshKeyToRouterRules = new
SshKeyToRouterRules(network, nic, profile, sshKey);
-
- initBeans(sshKeyToRouterRules);
-
- sshKeyToRouterRules._userVmDao = _userVmDao;
- sshKeyToRouterRules._templateDao = _templateDao;
-
- return sshKeyToRouterRules;
+ public VpcDao getVpcDao() {
+ return _vpcDao;
}
- public UserdataToRouterRules createUserdataToRouterRules(final Network
network, final NicProfile nic, final VirtualMachineProfile profile) {
- UserdataToRouterRules userdataRules = new
UserdataToRouterRules(network, nic, profile);
-
- initBeans(userdataRules);
-
- userdataRules._userVmDao = _userVmDao;
- userdataRules._templateDao = _templateDao;
-
- return userdataRules;
+ public VpcManager getVpcMgr() {
+ return _vpcMgr;
}
- public UserdataPwdRules createUserdataPwdRules(final Network network,
final NicProfile nic, final VirtualMachineProfile profile, final
DeployDestination destination) {
- UserdataPwdRules userdataRules = new UserdataPwdRules(network, nic,
profile, destination);
-
- initBeans(userdataRules);
-
- userdataRules._userVmDao = _userVmDao;
- userdataRules._templateDao = _templateDao;
-
- return userdataRules;
+ public VMTemplateDao getTemplateDao() {
+ return _templateDao;
}
- public DhcpEntryRules createDhcpEntryRules(final Network network, final
NicProfile nic, final VirtualMachineProfile profile, final DeployDestination
destination) {
- DhcpEntryRules dhcpRules = new DhcpEntryRules(network, nic, profile,
destination);
-
- initBeans(dhcpRules);
-
- dhcpRules._userVmDao = _userVmDao;
- dhcpRules._networkDao = _networkDao;
-
- return dhcpRules;
+ public NetworkDao getNetworkDao() {
+ return _networkDao;
}
- public NicPlugInOutRules createNicPluInOutRules(final Network network,
final List<? extends PublicIpAddress> ipAddresses) {
- NicPlugInOutRules nicPlug = new NicPlugInOutRules(network,
ipAddresses);
-
- initBeans(nicPlug);
-
- nicPlug._vpcDao = _vpcDao;
- nicPlug._userStatsDao = _userStatsDao;
- nicPlug._vpcMgr = _vpcMgr;
-
- return nicPlug;
+ public NicIpAliasDao getNicIpAliasDao() {
+ return _nicIpAliasDao;
}
- public NetworkAclsRules createNetworkAclRules(final Network network, final
List<? extends NetworkACLItem> rules, final boolean isPrivateGateway) {
- NetworkAclsRules networkAclsRules = new NetworkAclsRules(network,
rules, isPrivateGateway);
-
- initBeans(networkAclsRules);
-
- return networkAclsRules;
+ public HostPodDao getPodDao() {
+ return _podDao;
}
- public DhcpSubNetRules createDhcpSubNetRules(final Network network, final
NicProfile nic, final VirtualMachineProfile profile) {
- DhcpSubNetRules subNetRules = new DhcpSubNetRules(network, nic,
profile);
-
- initBeans(subNetRules);
-
- subNetRules._vpcDao = _vpcDao;
- subNetRules._userVmDao = _userVmDao;
- subNetRules._podDao = _podDao;
- subNetRules._vlanDao = _vlanDao;
- subNetRules._nicIpAliasDao = _nicIpAliasDao;
- subNetRules._ipAddrMgr = _ipAddrMgr;
- subNetRules._ipAddressDao = _ipAddressDao;
-
- return subNetRules;
+ public VlanDao getVlanDao() {
+ return _vlanDao;
}
- public DhcpPvlanRules createDhcpPvlanRules(final boolean isAddPvlan, final
NicProfile nic) {
- DhcpPvlanRules pvlanRules = new DhcpPvlanRules(isAddPvlan, nic);
-
- initBeans(pvlanRules);
-
- pvlanRules._networkDao = _networkDao;
-
- return pvlanRules;
+ public IPAddressDao getIpAddressDao() {
+ return _ipAddressDao;
}
- public StaticRoutesRules createStaticRoutesRules(final
List<StaticRouteProfile> staticRoutes) {
- StaticRoutesRules routesRules = new StaticRoutesRules(staticRoutes);
- initBeans(routesRules);
-
- return routesRules;
+ public PrivateIpDao getPrivateIpDao() {
+ return _privateIpDao;
}
- public AdvancedVpnRules createAdvancedVpnRules(final RemoteAccessVpn
remoteAccessVpn, final List<? extends VpnUser> users) {
- AdvancedVpnRules vpnRules = new AdvancedVpnRules(remoteAccessVpn,
users);
-
- initBeans(vpnRules);
- vpnRules._vpcDao = _vpcDao;
-
- return vpnRules;
+ public IpAddressManager getIpAddrMgr() {
+ return _ipAddrMgr;
}
- public PrivateGatewayRules createPrivateGatewayRules(final PrivateGateway
gateway) {
- PrivateGatewayRules gwRules = new PrivateGatewayRules(gateway);
-
- initBeans(gwRules);
+ public NetworkACLManager getNetworkACLMgr() {
+ return _networkACLMgr;
+ }
- gwRules._privateIpDao = _privateIpDao;
- gwRules._networkACLMgr = _networkACLMgr;
- gwRules._nicProfileHelper = _nicProfileHelper;
- gwRules._networkDao = _networkDao;
+ public NetworkHelper getNetworkHelper() {
+ return _networkHelper;
+ }
- return gwRules;
+ public NicProfileHelper getNicProfileHelper() {
+ return _nicProfileHelper;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 bd5e6da..4f4a440 100644
--- a/server/src/com/cloud/network/rules/VpcIpAssociationRules.java
+++ b/server/src/com/cloud/network/rules/VpcIpAssociationRules.java
@@ -33,6 +33,7 @@ import com.cloud.network.PublicIpAddress;
import com.cloud.network.router.VirtualRouter;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.Nic;
+import com.cloud.vm.dao.NicDao;
public class VpcIpAssociationRules extends RuleApplier {
@@ -56,9 +57,10 @@ public class VpcIpAssociationRules extends RuleApplier {
_vlanMacAddress = new HashMap<String, String>();
_ipsToSend = new ArrayList<PublicIpAddress>();
+ NicDao nicDao =
visitor.getVirtualNetworkApplianceFactory().getNicDao();
for (PublicIpAddress ipAddr : _ipAddresses) {
String broadcastURI =
BroadcastDomainType.Vlan.toUri(ipAddr.getVlanTag()).toString();
- Nic nic =
_nicDao.findByNetworkIdInstanceIdAndBroadcastUri(ipAddr.getNetworkId(),
_router.getId(), broadcastURI);
+ Nic nic =
nicDao.findByNetworkIdInstanceIdAndBroadcastUri(ipAddr.getNetworkId(),
_router.getId(), broadcastURI);
String macAddress = null;
if (nic == null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 053de7a..b9e3ad6 100644
---
a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
+++
b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
@@ -71,7 +71,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
s_logger.debug("APPLYING ADVANCED VPN USERS RULES");
- AdvancedVpnRules routesRules =
_virtualNetworkApplianceFactory.createAdvancedVpnRules(remoteAccessVpn, users);
+ AdvancedVpnRules routesRules = new AdvancedVpnRules(remoteAccessVpn,
users);
boolean agentResult = routesRules.accept(_advancedVisitor, router);
@@ -95,7 +95,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
return true;
}
- StaticRoutesRules routesRules =
_virtualNetworkApplianceFactory.createStaticRoutesRules(staticRoutes);
+ StaticRoutesRules routesRules = new StaticRoutesRules(staticRoutes);
boolean result = true;
for (VirtualRouter router : routers) {
@@ -124,7 +124,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
return false;
}
- DhcpPvlanRules pvlanRules =
_virtualNetworkApplianceFactory.createDhcpPvlanRules(isAddPvlan, nic);
+ DhcpPvlanRules pvlanRules = new DhcpPvlanRules(isAddPvlan, nic);
return pvlanRules.accept(_advancedVisitor, router);
}
@@ -142,7 +142,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
throw new ResourceUnavailableException("Unable to assign ip
addresses, domR is not in right state " + router.getState(), DataCenter.class,
network.getDataCenterId());
}
- DhcpSubNetRules subNetRules =
_virtualNetworkApplianceFactory.createDhcpSubNetRules(network, nic, profile);
+ DhcpSubNetRules subNetRules = new DhcpSubNetRules(network, nic,
profile);
return subNetRules.accept(_advancedVisitor, router);
}
@@ -151,7 +151,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
public boolean setupPrivateGateway(final PrivateGateway gateway, final
VirtualRouter router) throws ConcurrentOperationException,
ResourceUnavailableException {
s_logger.debug("SETUP PRIVATE GATEWAY RULES");
- PrivateGatewayRules routesRules =
_virtualNetworkApplianceFactory.createPrivateGatewayRules(gateway);
+ PrivateGatewayRules routesRules = new PrivateGatewayRules(gateway);
return routesRules.accept(_advancedVisitor, router);
}
@@ -167,7 +167,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- UserdataPwdRules pwdRules =
_virtualNetworkApplianceFactory.createUserdataPwdRules(network, nic, profile,
dest);
+ UserdataPwdRules pwdRules = new UserdataPwdRules(network, nic,
profile, dest);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(pwdRules));
}
@@ -183,7 +183,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
final boolean isPodLevelException = false;
final boolean failWhenDisconnect = false;
- DhcpEntryRules dhcpRules =
_virtualNetworkApplianceFactory.createDhcpEntryRules(network, nic, profile,
dest);
+ DhcpEntryRules dhcpRules = new DhcpEntryRules(network, nic, profile,
dest);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(dhcpRules));
}
@@ -211,10 +211,10 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- NicPlugInOutRules nicPlugInOutRules =
_virtualNetworkApplianceFactory.createNicPluInOutRules(network, ipAddresses);
+ NicPlugInOutRules nicPlugInOutRules = new NicPlugInOutRules(network,
ipAddresses);
nicPlugInOutRules.accept(_advancedVisitor, router);
- VpcIpAssociationRules ipAssociationRules =
_virtualNetworkApplianceFactory.createVpcIpAssociationRules(network,
ipAddresses);
+ VpcIpAssociationRules ipAssociationRules = new
VpcIpAssociationRules(network, ipAddresses);
boolean result = applyRules(network, routers, typeString,
isPodLevelException, podId, failWhenDisconnect, new
RuleApplierWrapper<RuleApplier>(ipAssociationRules));
if (result) {
@@ -240,7 +240,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- NetworkAclsRules aclsRules =
_virtualNetworkApplianceFactory.createNetworkAclRules(network, rules,
isPrivateGateway);
+ NetworkAclsRules aclsRules = new NetworkAclsRules(network, rules,
isPrivateGateway);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(aclsRules));
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 7d08813..0e265a3 100644
---
a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
+++
b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
@@ -137,8 +137,8 @@ public class AdvancedNetworkVisitor extends
BasicNetworkVisitor {
if (router.getState() == State.Running) {
- PrivateIpVO ipVO = privateGW.retrivePrivateIP();
- Network network = privateGW.retrievePrivateNetwork();
+ PrivateIpVO ipVO = privateGW.retrivePrivateIP(this);
+ Network network = privateGW.retrievePrivateNetwork(this);
String netmask = NetUtils.getCidrNetmask(network.getCidr());
PrivateIpAddress ip = new PrivateIpAddress(ipVO,
network.getBroadcastUri().toString(), network.getGateway(), netmask,
nicProfile.getMacAddress());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 8560d36..d35e7f3 100644
---
a/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
+++
b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
@@ -58,7 +58,6 @@ import com.cloud.network.rules.StaticNat;
import com.cloud.network.rules.StaticNatRules;
import com.cloud.network.rules.UserdataPwdRules;
import com.cloud.network.rules.UserdataToRouterRules;
-import com.cloud.network.rules.VirtualNetworkApplianceFactory;
import com.cloud.network.rules.VpnRules;
import com.cloud.network.vpc.NetworkACLItem;
import com.cloud.network.vpc.PrivateGateway;
@@ -77,9 +76,6 @@ public class BasicNetworkTopology implements NetworkTopology {
private static final Logger s_logger =
Logger.getLogger(BasicNetworkTopology.class);
- @Inject
- protected VirtualNetworkApplianceFactory _virtualNetworkApplianceFactory;
-
@Autowired
@Qualifier("basicNetworkVisitor")
protected BasicNetworkVisitor _basicVisitor;
@@ -160,7 +156,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
- DhcpEntryRules dhcpRules =
_virtualNetworkApplianceFactory.createDhcpEntryRules(network, nic, profile,
dest);
+ DhcpEntryRules dhcpRules = new DhcpEntryRules(network, nic, profile,
dest);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(dhcpRules));
}
@@ -182,7 +178,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
- UserdataPwdRules pwdRules =
_virtualNetworkApplianceFactory.createUserdataPwdRules(network, nic, profile,
dest);
+ UserdataPwdRules pwdRules = new UserdataPwdRules(network, nic,
profile, dest);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(pwdRules));
}
@@ -203,7 +199,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- LoadBalancingRules loadBalancingRules =
_virtualNetworkApplianceFactory.createLoadBalancingRules(network, rules);
+ LoadBalancingRules loadBalancingRules = new
LoadBalancingRules(network, rules);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new
RuleApplierWrapper<RuleApplier>(loadBalancingRules));
}
@@ -223,7 +219,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- FirewallRules firewallRules =
_virtualNetworkApplianceFactory.createFirewallRules(network, rules);
+ FirewallRules firewallRules = new FirewallRules(network, rules);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(firewallRules));
}
@@ -242,7 +238,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- StaticNatRules natRules =
_virtualNetworkApplianceFactory.createStaticNatRules(network, rules);
+ StaticNatRules natRules = new StaticNatRules(network, rules);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(natRules));
}
@@ -262,7 +258,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- IpAssociationRules ipAddresses =
_virtualNetworkApplianceFactory.createIpAssociationRules(network, ipAddress);
+ IpAssociationRules ipAddresses = new IpAssociationRules(network,
ipAddress);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(ipAddresses));
}
@@ -276,6 +272,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
s_logger.debug("APPLYING VPN RULES");
+ BasicVpnRules vpnRules = new BasicVpnRules(network, users);
boolean agentResults = true;
for (final DomainRouterVO router : routers) {
@@ -319,7 +316,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- PasswordToRouterRules routerRules =
_virtualNetworkApplianceFactory.createPasswordToRouterRules(network, nic,
profile);
+ PasswordToRouterRules routerRules = new PasswordToRouterRules(network,
nic, profile);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new RuleApplierWrapper<RuleApplier>(routerRules));
}
@@ -334,7 +331,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- SshKeyToRouterRules keyToRouterRules =
_virtualNetworkApplianceFactory.createSshKeyToRouterRules(network, nic,
profile, sshPublicKey);
+ SshKeyToRouterRules keyToRouterRules = new
SshKeyToRouterRules(network, nic, profile, sshPublicKey);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new
RuleApplierWrapper<RuleApplier>(keyToRouterRules));
}
@@ -349,7 +346,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
final boolean failWhenDisconnect = false;
final Long podId = null;
- UserdataToRouterRules userdataToRouterRules =
_virtualNetworkApplianceFactory.createUserdataToRouterRules(network, nic,
profile);
+ UserdataToRouterRules userdataToRouterRules = new
UserdataToRouterRules(network, nic, profile);
return applyRules(network, routers, typeString, isPodLevelException,
podId, failWhenDisconnect, new
RuleApplierWrapper<RuleApplier>(userdataToRouterRules));
}
@@ -420,7 +417,8 @@ public class BasicNetworkTopology implements
NetworkTopology {
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
+ // These disconnected redundant virtual routers are out of sync
+ // now, stop them for synchronization
_networkHelper.handleSingleWorkingRedundantRouter(connectedRouters,
disconnectedRouters, msg);
}
} else if (!disconnectedRouters.isEmpty()) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/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 a3ef1ee..db0b6e5 100644
--- a/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
+++ b/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
@@ -54,6 +54,7 @@ import com.cloud.network.rules.StaticNatRules;
import com.cloud.network.rules.StaticRoutesRules;
import com.cloud.network.rules.UserdataPwdRules;
import com.cloud.network.rules.UserdataToRouterRules;
+import com.cloud.network.rules.VirtualNetworkApplianceFactory;
import com.cloud.network.rules.VpcIpAssociationRules;
import com.cloud.storage.VMTemplateVO;
import com.cloud.utils.exception.CloudRuntimeException;
@@ -75,9 +76,17 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
protected NetworkHelper _networkGeneralHelper;
@Inject
+ protected VirtualNetworkApplianceFactory _virtualNetworkApplianceFactory;
+
+ @Inject
protected CommandSetupHelper _commandSetupHelper;
@Override
+ public VirtualNetworkApplianceFactory getVirtualNetworkApplianceFactory() {
+ return _virtualNetworkApplianceFactory;
+ }
+
+ @Override
public boolean visit(final StaticNatRules nat) throws
ResourceUnavailableException {
final Network network = nat.getNetwork();
final VirtualRouter router = nat.getRouter();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b9485761/server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
----------------------------------------------------------------------
diff --git
a/server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
b/server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
index c4f3af5..621ec8a 100644
---
a/server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
+++
b/server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
@@ -32,16 +32,13 @@ import com.cloud.network.rules.StaticNatRules;
import com.cloud.network.rules.StaticRoutesRules;
import com.cloud.network.rules.UserdataPwdRules;
import com.cloud.network.rules.UserdataToRouterRules;
+import com.cloud.network.rules.VirtualNetworkApplianceFactory;
import com.cloud.network.rules.VpcIpAssociationRules;
import com.cloud.network.rules.VpnRules;
public abstract class NetworkTopologyVisitor {
- protected final NetworkTopology networkTopology;
-
- public NetworkTopologyVisitor(final NetworkTopology networkTopology) {
- this.networkTopology = networkTopology;
- }
+ public abstract VirtualNetworkApplianceFactory
getVirtualNetworkApplianceFactory();
public abstract boolean visit(StaticNatRules nat) throws
ResourceUnavailableException;
@@ -74,5 +71,6 @@ public abstract class NetworkTopologyVisitor {
public abstract boolean visit(DhcpSubNetRules subnet) throws
ResourceUnavailableException;
public abstract boolean visit(NicPlugInOutRules nicPlugInOutRules) throws
ResourceUnavailableException;
+
public abstract boolean visit(StaticRoutesRules staticRoutesRules) throws
ResourceUnavailableException;
}
\ No newline at end of file