merging cmd-visitor into cmd-visitor-rebase, with the upstream from ACS repo
Conflicts: server/src/com/cloud/network/rules/DhcpRules.java server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ee9068b5 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ee9068b5 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ee9068b5 Branch: refs/heads/master Commit: ee9068b5b259b6a4b48300131114945b2edd1ab1 Parents: b7c193a Author: Wilder Rodrigues <wrodrig...@schubergphilis.com> Authored: Fri Sep 5 10:57:30 2014 +0200 Committer: wilderrodrigues <wrodrig...@schubergphilis.com> Committed: Tue Oct 14 15:08:10 2014 +0200 ---------------------------------------------------------------------- .../cloud/network/rules/AdvancedVpnRules.java | 2 +- .../src/com/cloud/network/rules/DhcpRules.java | 4 +- .../cloud/network/rules/DhcpSubNetRules.java | 12 ++-- .../cloud/network/rules/NicPlugInOutRules.java | 69 ++++++++++---------- .../network/rules/PrivateGatewayRules.java | 26 ++++---- .../network/rules/VpcIpAssociationRules.java | 4 +- .../topology/AdvancedNetworkTopology.java | 2 +- 7 files changed, 60 insertions(+), 59 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee9068b5/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 0f37d0e..f7cb361 100644 --- a/server/src/com/cloud/network/rules/AdvancedVpnRules.java +++ b/server/src/com/cloud/network/rules/AdvancedVpnRules.java @@ -47,7 +47,7 @@ public class AdvancedVpnRules extends BasicVpnRules { Vpc vpc = _vpcDao.findById(_remoteAccessVpn.getVpcId()); - if (router.getState() != State.Running) { + if (_router.getState() != State.Running) { s_logger.warn("Failed to add/remove Remote Access VPN users: router not in running state"); throw new ResourceUnavailableException("Failed to add/remove Remote Access VPN users: router not in running state: " + router.getState(), DataCenter.class, vpc.getZoneId()); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee9068b5/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 0ff2462..655d430 100644 --- a/server/src/com/cloud/network/rules/DhcpRules.java +++ b/server/src/com/cloud/network/rules/DhcpRules.java @@ -49,9 +49,9 @@ public class DhcpRules extends RuleApplier { } final Network network = _networkDao.findById(_nic.getNetworkId()); - final String networkTag = _networkModel.getNetworkTag(router.getHypervisorType(), network); + final String networkTag = _networkModel.getNetworkTag(_router.getHypervisorType(), network); - _setupCommand = PvlanSetupCommand.createDhcpSetup(op, _nic.getBroadCastUri(), networkTag, router.getInstanceName(), _nic.getMacAddress(), _nic.getIp4Address()); + _setupCommand = PvlanSetupCommand.createDhcpSetup(op, _nic.getBroadCastUri(), networkTag, _router.getInstanceName(), _nic.getMacAddress(), _nic.getIp4Address()); return visitor.visit(this); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee9068b5/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 ec99f44..0bbcfcc 100644 --- a/server/src/com/cloud/network/rules/DhcpSubNetRules.java +++ b/server/src/com/cloud/network/rules/DhcpSubNetRules.java @@ -74,7 +74,7 @@ public class DhcpSubNetRules extends RuleApplier { _userVmDao.loadDetails(vm); // 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 domr_guest_nic = _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. @@ -94,7 +94,7 @@ public class DhcpSubNetRules extends RuleApplier { } PublicIp routerPublicIP = null; - final DataCenter dc = _dcDao.findById(router.getDataCenterId()); + final DataCenter dc = _dcDao.findById(_router.getDataCenterId()); if (ipInVmsubnet == false) { try { if ((_network.getTrafficType() == TrafficType.Guest) && (_network.getGuestType() == GuestType.Shared)) { @@ -106,10 +106,10 @@ public class DhcpSubNetRules extends RuleApplier { vlanDbIdList.add(vlan.getId()); } 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,7 +121,7 @@ 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(domr_guest_nic.getId(), _routerAliasIp, _router.getId(), CallContext.current().getCallingAccountId(), _network.getDomainId(), _nic.getNetworkId(), _nic.getGateway(), _nic.getNetmask()); _nicAlias.setAliasCount((routerPublicIP.getIpMacAddress())); _nicIpAliasDao.persist(_nicAlias); @@ -129,7 +129,7 @@ public class DhcpSubNetRules extends RuleApplier { 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 http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee9068b5/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 8cab97b..c20d07e 100644 --- a/server/src/com/cloud/network/rules/NicPlugInOutRules.java +++ b/server/src/com/cloud/network/rules/NicPlugInOutRules.java @@ -62,31 +62,31 @@ public class NicPlugInOutRules extends RuleApplier { public boolean accept(final NetworkTopologyVisitor visitor, final VirtualRouter router) throws ResourceUnavailableException { _router = router; - final Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>> nicsToChange = getNicsToChangeOnRouter(_ipAddresses, router); - final Map<String, PublicIpAddress> nicsToPlug = nicsToChange.first(); - final Map<String, PublicIpAddress> nicsToUnplug = nicsToChange.second(); + Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>> nicsToChange = getNicsToChangeOnRouter(_ipAddresses); + Map<String, PublicIpAddress> nicsToPlug = nicsToChange.first(); + Map<String, PublicIpAddress> nicsToUnplug = nicsToChange.second(); // 1) Unplug the nics - for (final Entry<String, PublicIpAddress> entry : nicsToUnplug.entrySet()) { + for (Entry<String, PublicIpAddress> entry : nicsToUnplug.entrySet()) { Network publicNtwk = null; try { publicNtwk = _networkModel.getNetwork(entry.getValue().getNetworkId()); - final URI broadcastUri = BroadcastDomainType.Vlan.toUri(entry.getKey()); - _itMgr.removeVmFromNetwork(router, publicNtwk, broadcastUri); - } catch (final ConcurrentOperationException e) { - s_logger.warn("Failed to remove router " + router + " from vlan " + entry.getKey() + " in public network " + publicNtwk + " due to ", e); + URI broadcastUri = BroadcastDomainType.Vlan.toUri(entry.getKey()); + _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; } } _netUsageCommands = new Commands(Command.OnError.Continue); - final VpcVO vpc = _vpcDao.findById(router.getVpcId()); + VpcVO vpc = _vpcDao.findById(_router.getVpcId()); // 2) Plug the nics - for (final String vlanTag : nicsToPlug.keySet()) { - final PublicIpAddress ip = nicsToPlug.get(vlanTag); + for (String vlanTag : nicsToPlug.keySet()) { + PublicIpAddress ip = nicsToPlug.get(vlanTag); // have to plug the nic(s) - final NicProfile defaultNic = new NicProfile(); + NicProfile defaultNic = new NicProfile(); if (ip.isSourceNat()) { defaultNic.setDefaultNic(true); } @@ -102,26 +102,25 @@ public class NicPlugInOutRules extends RuleApplier { Network publicNtwk = null; try { publicNtwk = _networkModel.getNetwork(ip.getNetworkId()); - publicNic = _itMgr.addVmToNetwork(router, publicNtwk, defaultNic); - } catch (final ConcurrentOperationException e) { - s_logger.warn("Failed to add router " + router + " to vlan " + vlanTag + " in public network " + publicNtwk + " due to ", e); - } catch (final InsufficientCapacityException e) { - s_logger.warn("Failed to add router " + router + " to vlan " + vlanTag + " in public network " + publicNtwk + " due to ", e); + 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) { + s_logger.warn("Failed to add router " + _router + " to vlan " + vlanTag + " in public network " + publicNtwk + " due to ", e); } finally { if (publicNic == null) { - s_logger.warn("Failed to add router " + router + " to vlan " + vlanTag + " in public network " + publicNtwk); + s_logger.warn("Failed to add router " + _router + " to vlan " + vlanTag + " in public network " + publicNtwk); return false; } } // Create network usage commands. Send commands to router after // IPAssoc - final NetworkUsageCommand netUsageCmd = new NetworkUsageCommand(router.getPrivateIpAddress(), router.getInstanceName(), true, defaultNic.getIp4Address(), - vpc.getCidr()); + 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(), router - .getType().toString()); + 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(), + stats = new UserStatisticsVO(_router.getAccountId(), _router.getDataCenterId(), publicNic.getIp4Address(), _router.getId(), _router.getType().toString(), publicNtwk.getId()); _userStatsDao.persist(stats); } @@ -140,15 +139,15 @@ public class NicPlugInOutRules extends RuleApplier { return _netUsageCommands; } - private Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>> getNicsToChangeOnRouter(final List<? extends PublicIpAddress> publicIps, final VirtualRouter router) { + private Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>> getNicsToChangeOnRouter(final List<? extends PublicIpAddress> publicIps) { // 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>(); // find out nics to unplug - for (final PublicIpAddress ip : publicIps) { - final long publicNtwkId = ip.getNetworkId(); + for (PublicIpAddress ip : publicIps) { + long publicNtwkId = ip.getNetworkId(); // if ip is not associated to any network, and there are no firewall // rules, release it on the backend @@ -157,7 +156,7 @@ public class NicPlugInOutRules extends RuleApplier { } if (ip.getState() == IpAddress.State.Releasing) { - final 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); @@ -166,9 +165,9 @@ public class NicPlugInOutRules extends RuleApplier { } // find out nics to plug - for (final PublicIpAddress ip : publicIps) { - final URI broadcastUri = BroadcastDomainType.Vlan.toUri(ip.getVlanTag()); - final long publicNtwkId = ip.getNetworkId(); + for (PublicIpAddress ip : publicIps) { + 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 @@ -176,18 +175,18 @@ public class NicPlugInOutRules extends RuleApplier { ip.setState(IpAddress.State.Releasing); } - if ((ip.getState() == IpAddress.State.Allocated) || (ip.getState() == IpAddress.State.Allocating)) { + 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 - final 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)) { + if (nic == null && nicsToPlug.get(ip.getVlanTag()) == null) { nicsToPlug.put(ip.getVlanTag(), ip); s_logger.debug("Need to plug the nic for ip=" + ip + "; vlan=" + ip.getVlanTag() + " in public network id =" + publicNtwkId); } else { final PublicIpAddress nicToUnplug = nicsToUnplug.get(ip.getVlanTag()); if (nicToUnplug != null) { - final 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); s_logger.debug("Updated the nic " + nicVO + " with the new ip address " + ip.getAddress().addr()); @@ -197,7 +196,7 @@ public class NicPlugInOutRules extends RuleApplier { } } - final Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>> nicsToChange = new Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>>(nicsToPlug, + Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>> nicsToChange = new Pair<Map<String, PublicIpAddress>, Map<String, PublicIpAddress>>(nicsToPlug, nicsToUnplug); return nicsToChange; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee9068b5/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 1d13efb..a1e1c5c 100644 --- a/server/src/com/cloud/network/rules/PrivateGatewayRules.java +++ b/server/src/com/cloud/network/rules/PrivateGatewayRules.java @@ -51,30 +51,30 @@ public class PrivateGatewayRules extends RuleApplier { _network = _networkModel.getNetwork(_privateGateway.getNetworkId()); NicProfile requested = _vpcNetworkHelper.createPrivateNicProfileForGateway(_privateGateway); - if (!_networkHelper.checkRouterVersion(router)) { - s_logger.warn("Router requires upgrade. Unable to send command to router: " + router.getId()); + 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); + _nicProfile = _itMgr.addVmToNetwork(_router, _network, requested); - //setup source nat + // setup source nat if (_nicProfile != null) { _isAddOperation = true; - //result = setupVpcPrivateNetwork(router, true, guestNic); + // result = setupVpcPrivateNetwork(router, true, guestNic); result = visitor.visit(this); } } catch (Exception ex) { - s_logger.warn("Failed to create private gateway " + _privateGateway + " on router " + router + " due to ", ex); + s_logger.warn("Failed to create private gateway " + _privateGateway + " on router " + _router + " due to ", ex); } finally { if (!result) { - s_logger.debug("Failed to setup gateway " + _privateGateway + " on router " + router + " with the source nat. Will now remove the gateway."); + s_logger.debug("Failed to setup gateway " + _privateGateway + " on router " + _router + " with the source nat. Will now remove the gateway."); _isAddOperation = false; boolean isRemoved = destroyPrivateGateway(visitor); if (isRemoved) { - s_logger.debug("Removed the gateway " + _privateGateway + " from router " + router + " as a part of cleanup"); + s_logger.debug("Removed the gateway " + _privateGateway + " from router " + _router + " as a part of cleanup"); } else { - s_logger.warn("Failed to remove the gateway " + _privateGateway + " from router " + router + " as a part of cleanup"); + s_logger.warn("Failed to remove the gateway " + _privateGateway + " from router " + _router + " as a part of cleanup"); } } } @@ -95,8 +95,10 @@ public class PrivateGatewayRules extends RuleApplier { } public Network retrievePrivateNetwork() { - // 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. + // 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()); return network; } @@ -119,7 +121,7 @@ public class PrivateGatewayRules extends RuleApplier { return false; } - //revoke network acl on the private gateway. + // revoke network acl on the private gateway. if (!_networkACLMgr.revokeACLItemsForPrivateGw(_privateGateway)) { s_logger.debug("Failed to delete network acl items on " + _privateGateway + " from router " + _router); return false; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee9068b5/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 6257c46..bd5e6da 100644 --- a/server/src/com/cloud/network/rules/VpcIpAssociationRules.java +++ b/server/src/com/cloud/network/rules/VpcIpAssociationRules.java @@ -58,14 +58,14 @@ public class VpcIpAssociationRules extends RuleApplier { 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) { if (ipAddr.getState() != IpAddress.State.Releasing) { throw new CloudRuntimeException("Unable to find the nic in network " + ipAddr.getNetworkId() + " to apply the ip address " + ipAddr + " for"); } - s_logger.debug("Not sending release for ip address " + ipAddr + " as its nic is already gone from VPC router " + router); + s_logger.debug("Not sending release for ip address " + ipAddr + " as its nic is already gone from VPC router " + _router); } else { macAddress = nic.getMacAddress(); _vlanMacAddress.put(BroadcastDomainType.getValue(BroadcastDomainType.fromString(ipAddr.getVlanTag())), macAddress); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee9068b5/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 f51c62b..053de7a 100644 --- a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java +++ b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java @@ -197,7 +197,7 @@ public class AdvancedNetworkTopology extends BasicNetworkTopology { return true; } - // only one router is supported in VPC now + // only one router is supported in VPC for now VirtualRouter router = routers.get(0); if (router.getVpcId() == null) {