fixing check style issues Conflicts: server/src/com/cloud/network/element/VpcVirtualRouterElement.java server/src/com/cloud/network/rules/AdvancedVpnRules.java server/src/com/cloud/network/rules/RuleApplier.java server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java server/src/org/apache/cloudstack/network/topology/NetworkTopology.java
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e08cb11f Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e08cb11f Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e08cb11f Branch: refs/heads/master Commit: e08cb11fc003a697247e4343c3baf159a30cf048 Parents: 01edc8e Author: Wilder Rodrigues <wrodrig...@schubergphilis.com> Authored: Thu Aug 21 10:17:59 2014 +0200 Committer: wilderrodrigues <wrodrig...@schubergphilis.com> Committed: Tue Oct 14 15:02:14 2014 +0200 ---------------------------------------------------------------------- .../element/VpcVirtualRouterElement.java | 88 ++++++++------------ .../cloud/network/rules/AdvancedVpnRules.java | 58 +++++++++++++ .../network/rules/PrivateGatewayRules.java | 52 ++++++------ .../com/cloud/network/rules/RuleApplier.java | 12 ++- .../rules/VirtualNetworkApplianceFactory.java | 20 ++--- .../topology/AdvancedNetworkTopology.java | 27 +++--- .../topology/AdvancedNetworkVisitor.java | 57 ++++++++----- .../network/topology/BasicNetworkTopology.java | 5 -- .../network/topology/NetworkTopology.java | 6 +- 9 files changed, 192 insertions(+), 133 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/server/src/com/cloud/network/element/VpcVirtualRouterElement.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java index 0f11c73..b6b5ccf 100644 --- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java @@ -72,9 +72,9 @@ import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachineProfile; -@Local(value = {NetworkElement.class, FirewallServiceProvider.class, DhcpServiceProvider.class, UserDataServiceProvider.class, StaticNatServiceProvider.class, +@Local(value = { NetworkElement.class, FirewallServiceProvider.class, DhcpServiceProvider.class, UserDataServiceProvider.class, StaticNatServiceProvider.class, LoadBalancingServiceProvider.class, PortForwardingServiceProvider.class, IpDeployer.class, VpcProvider.class, Site2SiteVpnServiceProvider.class, - NetworkACLServiceProvider.class}) + NetworkACLServiceProvider.class }) public class VpcVirtualRouterElement extends VirtualRouterElement implements VpcProvider, Site2SiteVpnServiceProvider, NetworkACLServiceProvider { private static final Logger s_logger = Logger.getLogger(VpcVirtualRouterElement.class); @Inject @@ -133,18 +133,13 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc @Override public boolean implementVpc(final Vpc vpc, final DeployDestination dest, final ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, - InsufficientCapacityException { + InsufficientCapacityException { Map<VirtualMachineProfile.Param, Object> params = new HashMap<VirtualMachineProfile.Param, Object>(1); params.put(VirtualMachineProfile.Param.ReProgramGuestNetworks, true); - RouterDeploymentDefinition routerDeploymentDefinition = - routerDeploymentDefinitionBuilder.create() - .setVpc(vpc) - .setDeployDestination(dest) - .setAccountOwner(_accountMgr.getAccount(vpc.getAccountId())) - .setParams(params) - .build(); + RouterDeploymentDefinition routerDeploymentDefinition = routerDeploymentDefinitionBuilder.create().setVpc(vpc).setDeployDestination(dest) + .setAccountOwner(_accountMgr.getAccount(vpc.getAccountId())).setParams(params).build(); routerDeploymentDefinition.deployVirtualRouter(); @@ -165,8 +160,8 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc } @Override - public boolean implement(final Network network, final NetworkOffering offering, final DeployDestination dest, final ReservationContext context) throws ResourceUnavailableException, - ConcurrentOperationException, InsufficientCapacityException { + public boolean implement(final Network network, final NetworkOffering offering, final DeployDestination dest, final ReservationContext context) + throws ResourceUnavailableException, ConcurrentOperationException, InsufficientCapacityException { Long vpcId = network.getVpcId(); if (vpcId == null) { @@ -183,13 +178,8 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc Map<VirtualMachineProfile.Param, Object> params = new HashMap<VirtualMachineProfile.Param, Object>(1); params.put(VirtualMachineProfile.Param.ReProgramGuestNetworks, true); - RouterDeploymentDefinition routerDeploymentDefinition = - routerDeploymentDefinitionBuilder.create() - .setVpc(vpc) - .setDeployDestination(dest) - .setAccountOwner(_accountMgr.getAccount(vpc.getAccountId())) - .setParams(params) - .build(); + RouterDeploymentDefinition routerDeploymentDefinition = routerDeploymentDefinitionBuilder.create().setVpc(vpc).setDeployDestination(dest) + .setAccountOwner(_accountMgr.getAccount(vpc.getAccountId())).setParams(params).build(); List<DomainRouterVO> routers = routerDeploymentDefinition.deployVirtualRouter(); @@ -202,7 +192,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc } DomainRouterVO router = routers.get(0); - //Add router to guest network if needed + // Add router to guest network if needed if (!_networkMdl.isVmPartOfNetwork(router.getId(), network.getId())) { Map<VirtualMachineProfile.Param, Object> paramsForRouter = new HashMap<VirtualMachineProfile.Param, Object>(1); if (network.getState() == State.Setup) { @@ -238,13 +228,8 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc Map<VirtualMachineProfile.Param, Object> params = new HashMap<VirtualMachineProfile.Param, Object>(1); params.put(VirtualMachineProfile.Param.ReProgramGuestNetworks, true); - RouterDeploymentDefinition routerDeploymentDefinition = - routerDeploymentDefinitionBuilder.create() - .setVpc(vpc) - .setDeployDestination(dest) - .setAccountOwner(_accountMgr.getAccount(vpc.getAccountId())) - .setParams(params) - .build(); + RouterDeploymentDefinition routerDeploymentDefinition = routerDeploymentDefinitionBuilder.create().setVpc(vpc).setDeployDestination(dest) + .setAccountOwner(_accountMgr.getAccount(vpc.getAccountId())).setParams(params).build(); List<DomainRouterVO> routers = routerDeploymentDefinition.deployVirtualRouter(); if (routers == null || routers.size() == 0) { @@ -256,7 +241,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc } DomainRouterVO router = routers.get(0); - //Add router to guest network if needed + // Add router to guest network if needed if (!_networkMdl.isVmPartOfNetwork(router.getId(), network.getId())) { Map<VirtualMachineProfile.Param, Object> paramsForRouter = new HashMap<VirtualMachineProfile.Param, Object>(1); // need to reprogram guest network if it comes in a setup state @@ -285,12 +270,12 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc List<? extends VirtualRouter> routers = _routerDao.listByVpcId(vpcId); for (VirtualRouter router : routers) { - //1) Check if router is already a part of the network + // 1) Check if router is already a part of the network if (!_networkMdl.isVmPartOfNetwork(router.getId(), network.getId())) { s_logger.debug("Router " + router + " is not a part the network " + network); continue; } - //2) Call unplugNics in the network service + // 2) Call unplugNics in the network service success = success && _vpcRouterMgr.removeVpcRouterFromGuestNetwork(router, network, false); if (!success) { s_logger.warn("Failed to unplug nic in network " + network + " for virtual router " + router); @@ -313,12 +298,12 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc List<? extends VirtualRouter> routers = _routerDao.listByVpcId(vpcId); for (VirtualRouter router : routers) { - //1) Check if router is already a part of the network + // 1) Check if router is already a part of the network if (!_networkMdl.isVmPartOfNetwork(router.getId(), config.getId())) { s_logger.debug("Router " + router + " is not a part the network " + config); continue; } - //2) Call unplugNics in the network service + // 2) Call unplugNics in the network service success = success && _vpcRouterMgr.removeVpcRouterFromGuestNetwork(router, config, false); if (!success) { s_logger.warn("Failed to unplug nic in network " + config + " for virtual router " + router); @@ -349,10 +334,10 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc vpnCapabilities.put(Capability.VpnTypes, "s2svpn"); capabilities.put(Service.Vpn, vpnCapabilities); - //remove firewall capability + // remove firewall capability capabilities.remove(Service.Firewall); - //add network ACL capability + // add network ACL capability Map<Capability, String> networkACLCapabilities = new HashMap<Capability, String>(); networkACLCapabilities.put(Capability.SupportedProtocols, "tcp,udp,icmp"); capabilities.put(Service.NetworkACL, networkACLCapabilities); @@ -374,8 +359,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc List<DomainRouterVO> routers = _vpcRouterMgr.getVpcRouters(gateway.getVpcId()); if (routers == null || routers.isEmpty()) { - s_logger.debug(getName() + " element doesn't need to create Private gateway on the backend; VPC virtual " + "router doesn't exist in the vpc id=" + - gateway.getVpcId()); + s_logger.debug(getName() + " element doesn't need to create Private gateway on the backend; VPC virtual " + "router doesn't exist in the vpc id=" + gateway.getVpcId()); return true; } @@ -384,7 +368,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc } VirtualRouter router = routers.get(0); - + DataCenterVO dcVO = _dcDao.findById(gateway.getZoneId()); NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO); @@ -400,7 +384,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc return false; } } else { - s_logger.debug ("Failed to setup private gateway "+ gateway); + s_logger.debug("Failed to setup private gateway " + gateway); return false; } return true; @@ -415,8 +399,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc List<DomainRouterVO> routers = _vpcRouterMgr.getVpcRouters(gateway.getVpcId()); if (routers == null || routers.isEmpty()) { - s_logger.debug(getName() + " element doesn't need to delete Private gateway on the backend; VPC virtual " + "router doesn't exist in the vpc id=" + - gateway.getVpcId()); + s_logger.debug(getName() + " element doesn't need to delete Private gateway on the backend; VPC virtual " + "router doesn't exist in the vpc id=" + gateway.getVpcId()); return true; } @@ -441,8 +424,8 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc if (canHandle) { List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); if (routers == null || routers.isEmpty()) { - s_logger.debug(getName() + " element doesn't need to associate ip addresses on the backend; VPC virtual " + "router doesn't exist in the network " + - network.getId()); + s_logger.debug(getName() + " element doesn't need to associate ip addresses on the backend; VPC virtual " + "router doesn't exist in the network " + + network.getId()); return true; } @@ -460,8 +443,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc if (canHandle(network, Service.NetworkACL)) { List<DomainRouterVO> routers = _routerDao.listByNetworkAndRole(network.getId(), Role.VIRTUAL_ROUTER); if (routers == null || routers.isEmpty()) { - s_logger.debug("Virtual router elemnt doesn't need to apply firewall rules on the backend; virtual " + "router doesn't exist in the network " + - network.getId()); + s_logger.debug("Virtual router elemnt doesn't need to apply firewall rules on the backend; virtual " + "router doesn't exist in the network " + network.getId()); return true; } @@ -514,8 +496,7 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc List<DomainRouterVO> routers = _vpcRouterMgr.getVpcRouters(gateway.getVpcId()); if (routers == null || routers.isEmpty()) { - s_logger.debug("Virtual router element doesn't need to apply network acl rules on the backend; virtual " + "router doesn't exist in the network " + - network.getId()); + s_logger.debug("Virtual router element doesn't need to apply network acl rules on the backend; virtual " + "router doesn't exist in the network " + network.getId()); return true; } @@ -549,8 +530,8 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc List<DomainRouterVO> routers = _vpcRouterMgr.getVpcRouters(ip.getVpcId()); if (routers == null || routers.size() != 1) { - throw new ResourceUnavailableException("Cannot enable site-to-site VPN on the backend; virtual router doesn't exist in the vpc " + ip.getVpcId(), - DataCenter.class, vpc.getZoneId()); + throw new ResourceUnavailableException("Cannot enable site-to-site VPN on the backend; virtual router doesn't exist in the vpc " + ip.getVpcId(), DataCenter.class, + vpc.getZoneId()); } return _vpcRouterMgr.startSite2SiteVpn(conn, routers.get(0)); @@ -576,8 +557,8 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc List<DomainRouterVO> routers = _vpcRouterMgr.getVpcRouters(ip.getVpcId()); if (routers == null || routers.size() != 1) { - throw new ResourceUnavailableException("Cannot enable site-to-site VPN on the backend; virtual router doesn't exist in the vpc " + ip.getVpcId(), - DataCenter.class, vpc.getZoneId()); + throw new ResourceUnavailableException("Cannot enable site-to-site VPN on the backend; virtual router doesn't exist in the vpc " + ip.getVpcId(), DataCenter.class, + vpc.getZoneId()); } return _vpcRouterMgr.stopSite2SiteVpn(conn, routers.get(0)); @@ -594,7 +575,12 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc s_logger.debug("Cannot apply vpn users on the backend; virtual router doesn't exist in the network " + vpn.getVpcId()); return null; } - return _vpcRouterMgr.applyVpnUsers(vpn, users, routers.get(0)); + + Network network = _networkDao.findById(vpn.getNetworkId()); + DataCenterVO dcVO = _dcDao.findById(network.getDataCenterId()); + NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO); + + return networkTopology.applyVpnUsers(vpn, users, routers.get(0)); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/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 new file mode 100644 index 0000000..0f37d0e --- /dev/null +++ b/server/src/com/cloud/network/rules/AdvancedVpnRules.java @@ -0,0 +1,58 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package com.cloud.network.rules; + +import java.util.List; + +import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; +import org.apache.log4j.Logger; + +import com.cloud.dc.DataCenter; +import com.cloud.exception.ResourceUnavailableException; +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.vm.VirtualMachine.State; + +public class AdvancedVpnRules extends BasicVpnRules { + + private static final Logger s_logger = Logger.getLogger(AdvancedVpnRules.class); + + private final RemoteAccessVpn _remoteAccessVpn; + + public AdvancedVpnRules(final RemoteAccessVpn remoteAccessVpn, final List<? extends VpnUser> users) { + super(null, users); + _remoteAccessVpn = remoteAccessVpn; + } + + @Override + public boolean accept(final NetworkTopologyVisitor visitor, final VirtualRouter router) throws ResourceUnavailableException { + _router = router; + + 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"); + throw new ResourceUnavailableException("Failed to add/remove Remote Access VPN users: router not in running state: " + router.getState(), DataCenter.class, + vpc.getZoneId()); + } + + return visitor.visit(this); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/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 f7a88ea..c62f862 100644 --- a/server/src/com/cloud/network/rules/PrivateGatewayRules.java +++ b/server/src/com/cloud/network/rules/PrivateGatewayRules.java @@ -42,21 +42,21 @@ import com.cloud.vm.NicProfile; public class PrivateGatewayRules extends RuleApplier { - private static final Logger s_logger = Logger.getLogger(PrivateGatewayRules.class); - - private final PrivateGateway _privateGateway; - - private boolean _isAddOperation; - private NicProfile _nicProfile; + private static final Logger s_logger = Logger.getLogger(PrivateGatewayRules.class); + + private final PrivateGateway _privateGateway; + + private boolean _isAddOperation; + private NicProfile _nicProfile; public PrivateGatewayRules(final PrivateGateway privateGateway) { super(null); - this._privateGateway = privateGateway; + _privateGateway = privateGateway; } @Override public boolean accept(final NetworkTopologyVisitor visitor, final VirtualRouter router) throws ResourceUnavailableException { - this._router = router; + _router = router; boolean result = false; try { @@ -71,7 +71,7 @@ public class PrivateGatewayRules extends RuleApplier { //setup source nat if (_nicProfile != null) { - _isAddOperation = true; + _isAddOperation = true; //result = setupVpcPrivateNetwork(router, true, guestNic); result = visitor.visit(this); } @@ -79,10 +79,10 @@ public class PrivateGatewayRules extends RuleApplier { 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."); - _isAddOperation = false; - boolean isRemoved = destroyPrivateGateway(visitor); - + 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"); } else { @@ -92,25 +92,25 @@ public class PrivateGatewayRules extends RuleApplier { } return result; } - + public boolean isAddOperation() { - return _isAddOperation; - } - + return _isAddOperation; + } + public NicProfile getNicProfile() { - return _nicProfile; - } + return _nicProfile; + } public PrivateIpVO retrivePrivateIP() { - PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(_nicProfile.getNetworkId(), _nicProfile.getIp4Address()); - return ipVO; + PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(_nicProfile.getNetworkId(), _nicProfile.getIp4Address()); + return ipVO; } - + 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. - Network network = _networkDao.findById(_nicProfile.getNetworkId()); - return network; + // 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; } protected boolean destroyPrivateGateway(final NetworkTopologyVisitor visitor) throws ConcurrentOperationException, ResourceUnavailableException { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/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 6abeb01..c6f1cc0 100644 --- a/server/src/com/cloud/network/rules/RuleApplier.java +++ b/server/src/com/cloud/network/rules/RuleApplier.java @@ -38,9 +38,10 @@ import com.cloud.network.dao.LoadBalancerDao; import com.cloud.network.dao.NetworkDao; import com.cloud.network.lb.LoadBalancingRulesManager; import com.cloud.network.router.NetworkHelper; +import com.cloud.network.router.NicProfileHelper; import com.cloud.network.router.RouterControlHelper; import com.cloud.network.router.VirtualRouter; -import com.cloud.network.router.VpcNetworkHelper; +import com.cloud.network.router.VpcNetworkHelperImpl; import com.cloud.network.vpc.NetworkACLManager; import com.cloud.network.vpc.VpcManager; import com.cloud.network.vpc.dao.PrivateIpDao; @@ -116,7 +117,9 @@ public abstract class RuleApplier { protected NetworkHelper _networkHelper; - protected VpcNetworkHelper _vpcNetworkHelper; + protected VpcNetworkHelperImpl _vpcNetworkHelper; + + protected NicProfileHelper _nicProfileHelper; public RuleApplier(final Network network) { _network = network; @@ -141,8 +144,9 @@ public abstract class RuleApplier { vm.getId(), vm.getUuid(), publicKey, nic.getNetworkId())); } - public VmDataCommand generateVmDataCommand(final VirtualRouter router, final String vmPrivateIpAddress, final String userData, final String serviceOffering, final String zoneName, - final String guestIpAddress, final String vmName, final String vmInstanceName, final long vmId, final String vmUuid, final String publicKey, final long guestNetworkId) { + public VmDataCommand generateVmDataCommand(final VirtualRouter router, final String vmPrivateIpAddress, final String userData, final String serviceOffering, + final String zoneName, final String guestIpAddress, final String vmName, final String vmInstanceName, final long vmId, final String vmUuid, final String publicKey, + final long guestNetworkId) { final VmDataCommand cmd = new VmDataCommand(vmPrivateIpAddress, vmName, _networkModel.getExecuteInSeqNtwkElmtCmd()); cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/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 207560b..52dfc97 100644 --- a/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java +++ b/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java @@ -39,10 +39,9 @@ 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.RouterControlHelper; import com.cloud.network.router.VirtualNetworkApplianceManager; +import com.cloud.network.router.VpcNetworkHelperImpl; 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; @@ -123,28 +122,22 @@ public class VirtualNetworkApplianceFactory { protected VlanDao _vlanDao; @Inject - protected IPAddressDao _ipAddressDao; + private IPAddressDao _ipAddressDao; @Inject - protected PrivateIpDao _privateIpDao; + private PrivateIpDao _privateIpDao; @Inject - protected RouterControlHelper _routerControlHelper; + private IpAddressManager _ipAddrMgr; @Inject protected VirtualNetworkApplianceManager _applianceManager; @Inject - protected IpAddressManager _ipAddrMgr; + private NetworkHelper _networkHelper; @Inject - protected NetworkACLManager _networkACLMgr; - - @Inject - protected NetworkHelper _networkHelper; - - @Inject - protected VpcNetworkHelper _vpcNetworkHelper; + private VpcNetworkHelperImpl _vpcNetworkHelper; public LoadBalancingRules createLoadBalancingRules(final Network network, final List<LoadBalancingRule> rules) { LoadBalancingRules lbRules = new LoadBalancingRules(network, rules); @@ -320,7 +313,6 @@ public class VirtualNetworkApplianceFactory { public StaticRoutesRules createStaticRoutesRules(final List<StaticRouteProfile> staticRoutes) { StaticRoutesRules routesRules = new StaticRoutesRules(staticRoutes); - initBeans(routesRules); return routesRules; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/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 13d1cb7..8b2a5a6 100644 --- a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java +++ b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java @@ -65,20 +65,20 @@ public class AdvancedNetworkTopology extends BasicNetworkTopology { @Override public boolean applyStaticRoutes(final List<StaticRouteProfile> staticRoutes, final List<DomainRouterVO> routers) throws ResourceUnavailableException { - - if (staticRoutes == null || staticRoutes.isEmpty()) { + + if (staticRoutes == null || staticRoutes.isEmpty()) { s_logger.debug("No static routes to apply"); return true; } - StaticRoutesRules routesRules = _virtualNetworkApplianceFactory.createStaticRoutesRules(staticRoutes); - + StaticRoutesRules routesRules = _virtualNetworkApplianceFactory.createStaticRoutesRules(staticRoutes); + boolean result = true; for (VirtualRouter router : routers) { if (router.getState() == State.Running) { - + result = result && routesRules.accept(_advancedVisitor, router); - + } else if (router.getState() == State.Stopped || router.getState() == State.Stopping) { s_logger.debug("Router " + router.getInstanceName() + " is in " + router.getState() + ", so not sending StaticRoute command to the backend"); } else { @@ -94,6 +94,8 @@ public class AdvancedNetworkTopology extends BasicNetworkTopology { @Override public boolean setupDhcpForPvlan(final boolean isAddPvlan, final DomainRouterVO router, final Long hostId, final NicProfile nic) throws ResourceUnavailableException { + s_logger.debug("SETUP DHCP PVLAN RULES"); + if (!nic.getBroadCastUri().getScheme().equals("pvlan")) { return false; } @@ -120,14 +122,14 @@ public class AdvancedNetworkTopology extends BasicNetworkTopology { return subNetRules.accept(_advancedVisitor, router); } - + @Override - public boolean setupPrivateGateway(PrivateGateway gateway, VirtualRouter router) throws ConcurrentOperationException, ResourceUnavailableException { - s_logger.debug("SETUP PRIVATE GATEWAY RULES"); + 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 = _virtualNetworkApplianceFactory.createPrivateGatewayRules(gateway); - return routesRules.accept(_advancedVisitor, router); + return routesRules.accept(_advancedVisitor, router); } @Override @@ -284,7 +286,8 @@ public class AdvancedNetworkTopology extends BasicNetworkTopology { if (!connectedRouters.isEmpty()) { 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 _nwHelper.handleSingleWorkingRedundantRouter(connectedRouters, disconnectedRouters, msg); } } else if (!disconnectedRouters.isEmpty()) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/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 1f94370..15931c6 100644 --- a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java +++ b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java @@ -32,7 +32,9 @@ import com.cloud.dc.DataCenter; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.Network; import com.cloud.network.PublicIpAddress; +import com.cloud.network.VpnUser; import com.cloud.network.router.VirtualRouter; +import com.cloud.network.rules.AdvancedVpnRules; import com.cloud.network.rules.DhcpEntryRules; import com.cloud.network.rules.DhcpSubNetRules; import com.cloud.network.rules.NetworkAclsRules; @@ -118,7 +120,6 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { Map<String, String> vlanMacAddress = vpcip.getVlanMacAddress(); List<PublicIpAddress> ipsToSend = vpcip.getIpsToSend(); - if (!ipsToSend.isEmpty()) { vpcip.createVpcAssociatePublicIPCommands(router, ipsToSend, cmds, vlanMacAddress); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); @@ -129,26 +130,26 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { @Override public boolean visit(final PrivateGatewayRules privateGW) throws ResourceUnavailableException { - final VirtualRouter router = privateGW.getRouter(); - final NicProfile nicProfile = privateGW.getNicProfile(); + final VirtualRouter router = privateGW.getRouter(); + final NicProfile nicProfile = privateGW.getNicProfile(); + + final boolean isAddOperation = privateGW.isAddOperation(); - final boolean isAddOperation = privateGW.isAddOperation(); + if (router.getState() == State.Running) { - if (router.getState() == State.Running) { - PrivateIpVO ipVO = privateGW.retrivePrivateIP(); Network network = privateGW.retrievePrivateNetwork(); - + String netmask = NetUtils.getCidrNetmask(network.getCidr()); PrivateIpAddress ip = new PrivateIpAddress(ipVO, network.getBroadcastUri().toString(), network.getGateway(), netmask, nicProfile.getMacAddress()); List<PrivateIpAddress> privateIps = new ArrayList<PrivateIpAddress>(1); privateIps.add(ip); - + Commands cmds = new Commands(Command.OnError.Stop); privateGW.createVpcAssociatePrivateIPCommands(router, privateIps, cmds, isAddOperation); - try{ + try { if (_networkGeneralHelper.sendCommandsToRouter(router, cmds)) { s_logger.debug("Successfully applied ip association for ip " + ip + " in vpc network " + network); return true; @@ -156,8 +157,8 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { s_logger.warn("Failed to associate ip address " + ip + " in vpc network " + network); return false; } - }catch (Exception ex) { - s_logger.warn("Failed to send " + (isAddOperation ?"add ":"delete ") + " private network " + network + " commands to rotuer "); + } catch (Exception ex) { + s_logger.warn("Failed to send " + (isAddOperation ? "add " : "delete ") + " private network " + network + " commands to rotuer "); return false; } } else if (router.getState() == State.Stopped || router.getState() == State.Stopping) { @@ -176,7 +177,8 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { final VirtualRouter router = dhcp.getRouter(); final PvlanSetupCommand setupCommand = dhcp.getSetupCommand(); - // In fact we send command to the host of router, we're not programming router but the host + // In fact we send command to the host of router, we're not programming + // router but the host Commands cmds = new Commands(Command.OnError.Stop); cmds.addCommand(setupCommand); @@ -202,7 +204,8 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { subnet.createIpAlias(router, ipaliasTo, nicAlias.getNetworkId(), cmds); - //also add the required configuration to the dnsmasq for supporting dhcp and dns on the new ip. + // also add the required configuration to the dnsmasq for supporting + // dhcp and dns on the new ip. subnet.configDnsMasq(router, network, cmds); return _networkGeneralHelper.sendCommandsToRouter(router, cmds); @@ -210,12 +213,26 @@ public class AdvancedNetworkVisitor extends BasicNetworkVisitor { @Override public boolean visit(final StaticRoutesRules staticRoutesRules) throws ResourceUnavailableException { - final VirtualRouter router = staticRoutesRules.getRouter(); - List<StaticRouteProfile> staticRoutes = staticRoutesRules.getStaticRoutes(); - - Commands cmds = new Commands(Command.OnError.Continue); - staticRoutesRules.createStaticRouteCommands(staticRoutes, router, cmds); - - return _networkGeneralHelper.sendCommandsToRouter(router, cmds); + final VirtualRouter router = staticRoutesRules.getRouter(); + List<StaticRouteProfile> staticRoutes = staticRoutesRules.getStaticRoutes(); + + Commands cmds = new Commands(Command.OnError.Continue); + staticRoutesRules.createStaticRouteCommands(staticRoutes, router, cmds); + + return _networkGeneralHelper.sendCommandsToRouter(router, cmds); + } + + @Override + public boolean visit(final AdvancedVpnRules vpnRules) throws ResourceUnavailableException { + final VirtualRouter router = vpnRules.getRouter(); + List<? extends VpnUser> users = vpnRules.getUsers(); + + Commands cmds = new Commands(Command.OnError.Continue); + vpnRules.createApplyVpnUsersCommand(users, router, cmds); + + // Currently we receive just one answer from the agent. In the future we + // have to parse individual answers and set + // results accordingly + return _networkGeneralHelper.sendCommandsToRouter(router, cmds); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/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 6d05b56..0873d9a 100644 --- a/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java +++ b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java @@ -102,11 +102,6 @@ public class BasicNetworkTopology implements NetworkTopology { } @Override - public String retrieveGuestDhcpRange(final NicProfile guestNic, final Network guestNetwork, final DataCenter dc) { - return null; - } - - @Override public boolean setupPrivateGateway(final PrivateGateway gateway, final VirtualRouter router) throws ConcurrentOperationException, ResourceUnavailableException { throw new CloudRuntimeException("setupPrivateGateway not implemented in Basic Network Topology."); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e08cb11f/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java ---------------------------------------------------------------------- diff --git a/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java b/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java index 4e9175e..469c177 100644 --- a/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java +++ b/server/src/org/apache/cloudstack/network/topology/NetworkTopology.java @@ -64,10 +64,14 @@ public interface NetworkTopology { boolean applyStaticRoutes(final List<StaticRouteProfile> staticRoutes, final List<DomainRouterVO> routers) throws ResourceUnavailableException; <<<<<<< HEAD +<<<<<<< HEAD ======= +======= + +>>>>>>> 5e11fba... fixing check style issues boolean setupPrivateGateway(final PrivateGateway gateway, final VirtualRouter router) throws ConcurrentOperationException, ResourceUnavailableException; - + String[] applyVpnUsers(final RemoteAccessVpn vpn, final List<? extends VpnUser> users, final VirtualRouter router) throws ResourceUnavailableException; >>>>>>> 0b8b22f... adding setupPrivateGateway to new style;