[23/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
adding setupPrivateGateway to new style; removing methods from Vpc appliance; changing the way VpcElement calls the command; there is still work tob e done with the destroyPrivateGateway rule. Conflicts: server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.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/07be4945 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/07be4945 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/07be4945 Branch: refs/heads/vpc-refactor Commit: 07be4945df7edd4d4a7487fa626bc6c691ee18e9 Parents: 5489130 Author: wrodrigues Authored: Wed Aug 20 18:13:33 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../element/VpcVirtualRouterElement.java| 5 +- .../VpcVirtualNetworkApplianceManager.java | 9 -- .../VpcVirtualNetworkApplianceManagerImpl.java | 36 - .../network/rules/PrivateGatewayRules.java | 156 ++- .../com/cloud/network/rules/RuleApplier.java| 9 ++ .../rules/VirtualNetworkApplianceFactory.java | 47 +- .../topology/AdvancedNetworkTopology.java | 12 ++ .../topology/AdvancedNetworkVisitor.java| 47 +- .../network/topology/BasicNetworkTopology.java | 15 +- .../network/topology/NetworkTopology.java | 17 +- .../MockVpcVirtualNetworkApplianceManager.java | 9 -- 11 files changed, 286 insertions(+), 76 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/07be4945/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 5504df3..0f11c73 100644 --- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java @@ -384,8 +384,11 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc } VirtualRouter router = routers.get(0); + +DataCenterVO dcVO = _dcDao.findById(gateway.getZoneId()); +NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO); -if (_vpcRouterMgr.setupPrivateGateway(gateway, router)) { +if (networkTopology.setupPrivateGateway(gateway, router)) { try { List rules = _networkACLItemDao.listByACL(gateway.getNetworkACLId()); if (!applyACLItemsToPrivateGw(gateway, rules)) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/07be4945/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java -- diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java index 7aecba5..5785263 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java @@ -32,15 +32,6 @@ public interface VpcVirtualNetworkApplianceManager extends VirtualNetworkApplian /** * @param gateway - * @param router TODO - * @return - * @throws ResourceUnavailableException - * @throws ConcurrentOperationException - */ -boolean setupPrivateGateway(PrivateGateway gateway, VirtualRouter router) throws ConcurrentOperationException, ResourceUnavailableException; - -/** - * @param gateway * @param router * @return * @throws ResourceUnavailableException http://git-wip-us.apache.org/repos/asf/cloudstack/blob/07be4945/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java -- diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index 1edea75..99ed723 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -649,42 +649,6 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian return _nwHelper.sendCommandsToRouter(router, cmds); } -@Override -public boolean setupPrivateGateway(final PrivateGateway gateway, final VirtualRouter router) throws Con
[22/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Whole router.deployment package got 97% coverage Conflicts: server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5489130e Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5489130e Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5489130e Branch: refs/heads/vpc-refactor Commit: 5489130ef519473c2a85014811f2fbb2fbbfb812 Parents: c43e6ef Author: Antonio Fornie Authored: Wed Aug 20 05:16:54 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../deployment/RouterDeploymentDefinition.java | 243 +-- .../RouterDeploymentDefinitionBuilder.java | 7 +- .../VpcRouterDeploymentDefinition.java | 2 - .../RouterDeploymentDefinitionTest.java | 5 +- .../RouterDeploymentDefinitionTestBase.java | 5 +- 5 files changed, 127 insertions(+), 135 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5489130e/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java index 1867a22..9852085 100644 --- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -20,8 +20,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import javax.inject.Inject; - import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.log4j.Logger; @@ -88,15 +86,7 @@ public class RouterDeploymentDefinition { protected UserIpv6AddressDao ipv6Dao; protected IPAddressDao ipAddressDao; protected VirtualRouterProvider vrProvider; -<<< HEAD - - -@Inject -protected NetworkGeneralHelper nwHelper; -=== protected NetworkHelper nwHelper; ->>> 40df9d4... Refactor to include network creation as actual deployment - protected Network guestNetwork; protected DeployDestination dest; @@ -110,8 +100,7 @@ public class RouterDeploymentDefinition { protected boolean isPublicNetwork; protected PublicIp sourceNatIp; -protected RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest, -final Account owner, final Map params, final boolean isRedundant) { +protected RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest, final Account owner, final Map params, final boolean isRedundant) { this.guestNetwork = guestNetwork; this.dest = dest; @@ -121,98 +110,105 @@ public class RouterDeploymentDefinition { } public Long getOfferingId() { -return this.offeringId; +return offeringId; } public Vpc getVpc() { return null; } + public Network getGuestNetwork() { return guestNetwork; } + public DeployDestination getDest() { return dest; } + public Account getOwner() { return owner; } + public Map getParams() { return params; } + public boolean isRedundant() { return isRedundant; } + public DeploymentPlan getPlan() { return plan; } + public boolean isVpcRouter() { return false; } + public Pod getPod() { return dest.getPod(); } + public Long getPodId() { return dest.getPod() == null ? null : dest.getPod().getId(); } + public List getRouters() { return routers; } public VirtualRouterProvider getVirtualProvider() { -return this.vrProvider; +return vrProvider; } public boolean isBasic() { -return this.dest.getDataCenter().getNetworkType() == NetworkType.Basic; +return dest.getDataCenter().getNetworkType() == NetworkType.Basic; } public boolean isPublicNetwork() { -return this.isPublicNetwork; +return isPublicNetwork; } public PublicIp getSourceNatIP() { -return this.sourceNatIp; +return sourceNatIp; } protected void generateDeploymentPlan() { -final long dcId = this.dest.getDataCenter().getId(); +final long dcId = dest.getDataCenter().getId(); Long podId = null; -if (this.isBasic()) { -if (this.dest.getPod() == null) { +if (isBasic()) { +if
[28/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Fixing NPE due to use of dependencies before Spring injection Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/34f2863e Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/34f2863e Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/34f2863e Branch: refs/heads/vpc-refactor Commit: 34f2863e630e7beb359e085edaea2949cf094532 Parents: 0d17f3b Author: Antonio Fornie Authored: Fri Aug 22 06:44:10 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../src/com/cloud/network/router/VpcNetworkHelperImpl.java | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/34f2863e/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java -- diff --git a/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java b/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java index bbd08fd..aa57a54 100644 --- a/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java @@ -23,6 +23,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.TreeSet; +import javax.annotation.PostConstruct; import javax.inject.Inject; import org.apache.commons.lang.StringUtils; @@ -56,7 +57,13 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl { @Inject protected NicProfileHelper nicProfileHelper; -protected final String noHypervisorsErrMsgDetails = StringUtils.join(this.vpcMgr.getSupportedVpcHypervisors(), ','); +protected String noHypervisorsErrMsgDetails; + +@PostConstruct +protected void setupNoHypervisorsErrMsgDetails() { +this.noHypervisorsErrMsgDetails = StringUtils.join(this.vpcMgr.getSupportedVpcHypervisors(), ','); +this.noHypervisorsErrMsgDetails += " are the only supported Hypervisors"; +} @Override protected String getNoHypervisorsErrMsgDetails() {
[43/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
refactor all private methods in the virtual router appliance and VPC appliance Conflicts: server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java server/src/com/cloud/network/rules/DhcpEntryRules.java server/src/com/cloud/network/rules/LoadBalancingRules.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/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/bc90ce08 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/bc90ce08 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/bc90ce08 Branch: refs/heads/vpc-refactor Commit: bc90ce0871a0060a8c1e829895f1bc25fce1f456 Parents: 085bbb7 Author: Wilder Rodrigues Authored: Thu Aug 21 12:28:07 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../spring-server-core-managers-context.xml | 3 + .../network/router/CommandSetupHelper.java | 998 +++ .../VirtualNetworkApplianceManagerImpl.java | 631 +--- .../VpcVirtualNetworkApplianceManagerImpl.java | 451 ++--- .../com/cloud/network/rules/DhcpEntryRules.java | 64 -- .../cloud/network/rules/DhcpSubNetRules.java| 51 - .../com/cloud/network/rules/FirewallRules.java | 166 --- .../cloud/network/rules/IpAssociationRules.java | 106 -- .../cloud/network/rules/LoadBalancingRules.java | 63 -- .../cloud/network/rules/NetworkAclsRules.java | 39 - .../network/rules/PasswordToRouterRules.java| 26 +- .../network/rules/PrivateGatewayRules.java | 55 - .../com/cloud/network/rules/RuleApplier.java| 116 --- .../network/rules/SshKeyToRouterRules.java | 23 - .../com/cloud/network/rules/StaticNatRules.java | 28 - .../cloud/network/rules/StaticRoutesRules.java | 13 - .../cloud/network/rules/UserdataPwdRules.java | 24 - .../rules/VirtualNetworkApplianceFactory.java | 89 +- .../network/rules/VpcIpAssociationRules.java| 77 -- .../src/com/cloud/network/rules/VpnRules.java | 26 - .../topology/AdvancedNetworkTopology.java | 123 +-- .../topology/AdvancedNetworkVisitor.java| 20 +- .../network/topology/BasicNetworkTopology.java | 7 +- .../network/topology/BasicNetworkVisitor.java | 34 +- .../network/topology/NetworkTopology.java | 5 + 25 files changed, 1191 insertions(+), 2047 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml -- diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml index 7a9044b..6d8f32e 100644 --- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml +++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml @@ -197,6 +197,9 @@ + + http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/router/CommandSetupHelper.java -- diff --git a/server/src/com/cloud/network/router/CommandSetupHelper.java b/server/src/com/cloud/network/router/CommandSetupHelper.java new file mode 100644 index 000..acc343a --- /dev/null +++ b/server/src/com/cloud/network/router/CommandSetupHelper.java @@ -0,0 +1,998 @@ +// 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 limi
[38/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
making sure the instance variable _router in the Rules is being used instead of the parameter Conflicts: server/src/com/cloud/network/router/NetworkHelperImpl.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3ba8599e Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3ba8599e Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3ba8599e Branch: refs/heads/vpc-refactor Commit: 3ba8599ed6f679a848c97c247926333079930543 Parents: 961e715 Author: Wilder Rodrigues Authored: Tue Sep 2 11:05:23 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../network/router/CommandSetupHelper.java | 41 +-- .../com/cloud/network/router/NetworkHelper.java | 20 +- .../cloud/network/router/NetworkHelperImpl.java | 281 ++- 3 files changed, 170 insertions(+), 172 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ba8599e/server/src/com/cloud/network/router/CommandSetupHelper.java -- diff --git a/server/src/com/cloud/network/router/CommandSetupHelper.java b/server/src/com/cloud/network/router/CommandSetupHelper.java index 798bcfb..92a3bb1 100644 --- a/server/src/com/cloud/network/router/CommandSetupHelper.java +++ b/server/src/com/cloud/network/router/CommandSetupHelper.java @@ -176,6 +176,7 @@ public class CommandSetupHelper { @Inject private RouterControlHelper _routerControlHelper; + @Autowired @Qualifier("networkHelper") protected NetworkHelper _networkHelper; @@ -195,7 +196,7 @@ public class CommandSetupHelper { final List addUsers = new ArrayList(); final List removeUsers = new ArrayList(); for (final VpnUser user : users) { -if ((user.getState() == VpnUser.State.Add) || (user.getState() == VpnUser.State.Active)) { +if (user.getState() == VpnUser.State.Add || user.getState() == VpnUser.State.Active) { addUsers.add(user); } else if (user.getState() == VpnUser.State.Revoke) { removeUsers.add(user); @@ -218,7 +219,7 @@ public class CommandSetupHelper { final DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); final Nic defaultNic = findGatewayIp(vm.getId()); String gatewayIp = defaultNic.getGateway(); -if ((gatewayIp != null) && !gatewayIp.equals(nic.getGateway())) { +if (gatewayIp != null && !gatewayIp.equals(nic.getGateway())) { gatewayIp = "0.0.0.0"; } dhcpCommand.setDefaultRouter(gatewayIp); @@ -290,7 +291,7 @@ public class CommandSetupHelper { // We don't support VR to be inline currently final boolean inline = false; for (final LoadBalancingRule rule : rules) { -final boolean revoked = (rule.getState().equals(FirewallRule.State.Revoke)); +final boolean revoked = rule.getState().equals(FirewallRule.State.Revoke); final String protocol = rule.getProtocol(); final String algorithm = rule.getAlgorithm(); final String uuid = rule.getUuid(); @@ -392,7 +393,7 @@ public class CommandSetupHelper { Boolean defaultEgressPolicy = false; if (rules != null) { if (rules.size() > 0) { -if ((rules.get(0).getTrafficType() == FirewallRule.TrafficType.Egress) && (rules.get(0).getType() == FirewallRule.FirewallRuleType.System)) { +if (rules.get(0).getTrafficType() == FirewallRule.TrafficType.Egress && rules.get(0).getType() == FirewallRule.FirewallRuleType.System) { systemRule = String.valueOf(FirewallRule.FirewallRuleType.System); } } @@ -407,7 +408,7 @@ public class CommandSetupHelper { final NetworkVO network = _networkDao.findById(guestNetworkId); final NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId()); defaultEgressPolicy = offering.getEgressDefaultPolicy(); -assert (rule.getSourceIpAddressId() == null) : "ipAddressId should be null for egress firewall rule. "; +assert rule.getSourceIpAddressId() == null : "ipAddressId should be null for egress firewall rule. "; final FirewallRuleTO ruleTO = new FirewallRuleTO(rule, null, "", Purpose.Firewall, traffictype, defaultEgressPolicy); rulesTO.add(ruleTO); } @@ -435,7 +436,7 @@ public class CommandSetupHelper { Boolean defaultEgressPolicy = false; if (rules != null) { if (rules.size() > 0) { -if ((rules.get(0).getTrafficType() == Fire
[29/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
auto wire the network helper Conflicts: server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1836e0ba Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1836e0ba Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1836e0ba Branch: refs/heads/vpc-refactor Commit: 1836e0ba5845cff937d5d6dfb168fbc86c201b9f Parents: bc90ce0 Author: Wilder Rodrigues Authored: Thu Aug 21 14:50:55 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../src/com/cloud/network/router/CommandSetupHelper.java | 7 +-- .../cloudstack/network/topology/BasicNetworkTopology.java | 10 +- 2 files changed, 10 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1836e0ba/server/src/com/cloud/network/router/CommandSetupHelper.java -- diff --git a/server/src/com/cloud/network/router/CommandSetupHelper.java b/server/src/com/cloud/network/router/CommandSetupHelper.java index acc343a..124ed54 100644 --- a/server/src/com/cloud/network/router/CommandSetupHelper.java +++ b/server/src/com/cloud/network/router/CommandSetupHelper.java @@ -28,6 +28,8 @@ import javax.inject.Inject; import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import com.cloud.agent.api.SetupGuestNetworkCommand; import com.cloud.agent.api.routing.CreateIpAliasCommand; @@ -174,8 +176,9 @@ public class CommandSetupHelper { @Inject private RouterControlHelper _routerControlHelper; -@Inject -private NetworkHelper _networkHelper; +@Autowired +@Qualifier("networkHelper") +protected NetworkHelper _networkHelper; private final String _dnsBasicZoneUpdates = "all"; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1836e0ba/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 5327a5d..8560d36 100644 --- a/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java +++ b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java @@ -90,8 +90,9 @@ public class BasicNetworkTopology implements NetworkTopology { @Inject protected HostDao _hostDao; -@Inject -protected NetworkHelper _nwHelper; +@Autowired +@Qualifier("networkHelper") +protected NetworkHelper _networkHelper; @Inject protected UserVmDao _userVmDao; @@ -419,9 +420,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 -_nwHelper.handleSingleWorkingRedundantRouter(connectedRouters, disconnectedRouters, msg); +// These disconnected redundant virtual routers are out of sync now, stop them for synchronization + _networkHelper.handleSingleWorkingRedundantRouter(connectedRouters, disconnectedRouters, msg); } } else if (!disconnectedRouters.isEmpty()) { for (final VirtualRouter router : disconnectedRouters) {
[19/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Refactor to include network creation as actual deployment Conflicts: server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a515d6c3 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a515d6c3 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a515d6c3 Branch: refs/heads/vpc-refactor Commit: a515d6c313de9762ed0c6b0b05b0d75e7ff1bba6 Parents: d6b4355 Author: Antonio Fornie Authored: Tue Aug 19 04:57:46 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../network/router/NetworkGeneralHelper.java| 862 --- .../com/cloud/network/router/NetworkHelper.java | 87 ++ .../cloud/network/router/NetworkHelperImpl.java | 820 ++ .../VirtualNetworkApplianceManagerImpl.java | 2 +- .../cloud/network/router/VpcNetworkHelper.java | 15 + .../network/router/VpcNetworkHelperImpl.java| 210 + .../VpcVirtualNetworkApplianceManagerImpl.java | 2 +- .../router/VpcVirtualNetworkHelperImpl.java | 121 --- .../com/cloud/network/rules/RuleApplier.java| 4 +- .../rules/VirtualNetworkApplianceFactory.java | 4 +- .../network/topology/BasicNetworkTopology.java | 4 +- .../network/topology/BasicNetworkVisitor.java | 4 +- .../deployment/RouterDeploymentDefinition.java | 8 +- .../RouterDeploymentDefinitionBuilder.java | 12 +- .../VpcRouterDeploymentDefinition.java | 61 +- .../RouterDeploymentDefinitionTestBase.java | 4 +- .../VpcRouterDeploymentDefinitionTest.java | 83 +- 17 files changed, 1223 insertions(+), 1080 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a515d6c3/server/src/com/cloud/network/router/NetworkGeneralHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkGeneralHelper.java b/server/src/com/cloud/network/router/NetworkGeneralHelper.java deleted file mode 100644 index 9768de2..000 --- a/server/src/com/cloud/network/router/NetworkGeneralHelper.java +++ /dev/null @@ -1,862 +0,0 @@ -// 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.router; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeSet; - -import javax.inject.Inject; - -import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; -import org.apache.log4j.Logger; -import org.cloud.network.router.deployment.RouterDeploymentDefinition; -import org.cloud.network.router.deployment.VpcRouterDeploymentDefinition; - -import com.cloud.agent.AgentManager; -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.BumpUpPriorityCommand; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.to.NicTO; -import com.cloud.agent.manager.Commands; -import com.cloud.alert.AlertManager; -import com.cloud.dc.ClusterVO; -import com.cloud.dc.DataCenter; -import com.cloud.dc.Pod; -import com.cloud.dc.dao.ClusterDao; -import com.cloud.dc.dao.VlanDao; -import com.cloud.deploy.DataCenterDeployment; -import com.cloud.deploy.DeployDestination; -import com.cloud.deploy.DeploymentPlan; -import com.cloud.deploy.DeploymentPlanner.ExcludeList; -import com.cloud.exception.AgentUnavailableException; -import com.cloud.exception.ConcurrentOperationException; -import com.cloud.exception.InsufficientAddressCapacityException; -import com.cloud.exception.InsufficientCapacityException; -import com.cloud.exception.InsufficientServerCapacityException; -import com.cloud.exception.Opera
[35/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
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/a18e01cf Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a18e01cf Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a18e01cf Branch: refs/heads/vpc-refactor Commit: a18e01cfde00b71abd50eb49829ad34df1d8bc3c Parents: 00e3af4 Author: Wilder Rodrigues Authored: Fri Sep 5 10:57:30 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 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/a18e01cf/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/a18e01cf/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/a18e01cf/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
[21/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
adding applyStaticRoutes to the new visitor pattern. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0de16e03 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0de16e03 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0de16e03 Branch: refs/heads/vpc-refactor Commit: 0de16e0398725a659e02c1145820f979a24c4601 Parents: 51df3aa Author: wrodrigues Authored: Tue Aug 19 18:04:24 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../element/VpcVirtualRouterElement.java| 5 +++- .../VpcVirtualNetworkApplianceManager.java | 8 -- .../VpcVirtualNetworkApplianceManagerImpl.java | 29 --- .../cloud/network/rules/StaticRoutesRules.java | 3 +- .../rules/VirtualNetworkApplianceFactory.java | 9 ++ .../topology/AdvancedNetworkTopology.java | 30 +--- .../topology/AdvancedNetworkVisitor.java| 10 +-- .../MockVpcVirtualNetworkApplianceManager.java | 9 -- 8 files changed, 48 insertions(+), 55 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0de16e03/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 5bc62c0..5504df3 100644 --- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java @@ -493,7 +493,10 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc return true; } -if (!_vpcRouterMgr.applyStaticRoutes(routes, routers)) { +DataCenterVO dcVO = _dcDao.findById(vpc.getZoneId()); +NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO); + +if (!networkTopology.applyStaticRoutes(routes, routers)) { throw new CloudRuntimeException("Failed to apply static routes in vpc " + vpc); } else { s_logger.debug("Applied static routes on vpc " + vpc); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0de16e03/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java -- diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java index db8a1dc..7aecba5 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManager.java @@ -49,14 +49,6 @@ public interface VpcVirtualNetworkApplianceManager extends VirtualNetworkApplian boolean destroyPrivateGateway(PrivateGateway gateway, VirtualRouter router) throws ConcurrentOperationException, ResourceUnavailableException; /** - * @param routes - * @param routers - * @return - * @throws ResourceUnavailableException - */ -boolean applyStaticRoutes(List routes, List routers) throws ResourceUnavailableException; - -/** * @param conn * @param routers * @return http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0de16e03/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java -- diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index 9af35d6..b3993d9 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -774,35 +774,6 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian } } -@Override -public boolean applyStaticRoutes(final List staticRoutes, final List routers) throws ResourceUnavailableException { -if (staticRoutes == null || staticRoutes.isEmpty()) { -s_logger.debug("No static routes to apply"); -return true; -} - -boolean result = true; -for (VirtualRouter router : routers) { -if (router.getState() == State.Running) { -result = result && sendStaticRoutes(staticRoutes, routers.get(0)); -} else if (router.getState() == State.Stopped || router.getState() == State.Stopping) { -s_logger.debug("Router " + router.getInstanceName() + " is in " + router.getState() + ", so not sending StaticRoute comma
[36/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
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 Authored: Tue Sep 9 17:09:29 2014 +0200 Committer: Wilder Rodrigues 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(_profil
[09/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
More refactoring and testing in the same classes Conflicts: server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d0467731 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d0467731 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d0467731 Branch: refs/heads/vpc-refactor Commit: d0467731dee7dbd7de2581502127133ca7f91e96 Parents: 3f02162 Author: Antonio Fornie Authored: Sun Jul 27 12:08:57 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../network/router/NetworkGeneralHelper.java| 179 + .../VirtualNetworkApplianceManagerImpl.java | 2 +- .../deployment/RouterDeploymentDefinition.java | 415 +-- .../RouterDeploymentDefinitionBuilder.java | 77 +- .../VpcRouterDeploymentDefinition.java | 88 ++- .../RouterDeploymentDefinitionTest.java | 700 ++- 6 files changed, 926 insertions(+), 535 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0467731/server/src/com/cloud/network/router/NetworkGeneralHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkGeneralHelper.java b/server/src/com/cloud/network/router/NetworkGeneralHelper.java index 28ff08f..dd90bef 100644 --- a/server/src/com/cloud/network/router/NetworkGeneralHelper.java +++ b/server/src/com/cloud/network/router/NetworkGeneralHelper.java @@ -17,7 +17,6 @@ package com.cloud.network.router; import java.util.ArrayList; -import java.util.Arrays; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; @@ -57,12 +56,8 @@ import com.cloud.maint.Version; import com.cloud.network.IpAddressManager; 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.Networks.TrafficType; import com.cloud.network.VirtualNetworkApplianceService; -import com.cloud.network.VirtualRouterProvider; -import com.cloud.network.addr.PublicIp; import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkVO; @@ -70,7 +65,6 @@ import com.cloud.network.dao.UserIpv6AddressDao; import com.cloud.network.router.VirtualRouter.RedundantState; import com.cloud.network.router.VirtualRouter.Role; import com.cloud.network.vpn.Site2SiteVpnManager; -import com.cloud.offering.NetworkOffering; import com.cloud.resource.ResourceManager; import com.cloud.service.ServiceOfferingVO; import com.cloud.service.dao.ServiceOfferingDao; @@ -82,11 +76,8 @@ import com.cloud.storage.dao.VolumeDao; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.User; -import com.cloud.utils.Pair; import com.cloud.utils.exception.CloudRuntimeException; -import com.cloud.utils.net.NetUtils; import com.cloud.vm.DomainRouterVO; -import com.cloud.vm.Nic; import com.cloud.vm.NicProfile; import com.cloud.vm.NicVO; import com.cloud.vm.VirtualMachine.State; @@ -413,14 +404,13 @@ public class NetworkGeneralHelper { //@Override public DomainRouterVO deployRouter(final RouterDeploymentDefinition routerDeploymentDefinition, -final VirtualRouterProvider vrProvider, final long svcOffId, final LinkedHashMap> networks, final boolean startRouter, final List supportedHypervisors) throws InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException, StorageUnavailableException, ResourceUnavailableException { -final ServiceOfferingVO routerOffering = serviceOfferingDao.findById(svcOffId); +final ServiceOfferingVO routerOffering = serviceOfferingDao.findById(routerDeploymentDefinition.getOfferingId()); final DeployDestination dest = routerDeploymentDefinition.getDest(); final Account owner = routerDeploymentDefinition.getOwner(); @@ -475,7 +465,7 @@ public class NetworkGeneralHelper { // routerDeploymentDefinition.getVpc().getId() ==> do not use VPC because it is not a VPC offering. Long vpcId = routerDeploymentDefinition.getVpc() != null ? routerDeploymentDefinition.getVpc().getId() : null; -router = new DomainRouterVO(id, routerOffering.getId(), vrProvider.getId(), +router = new DomainRouterVO(id, routerOffering.getId(), routerDeploymentDefinition.getVirtualProvider().getId(), VirtualMachineName.getRouterName(id, VirtualNwStatus.
[20/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
DeployRouter includes nw creation following TellDontAsk principle Also factor out NicProfile specific methods and fix some DI config. Conflicts: server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c43e6efd Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c43e6efd Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c43e6efd Branch: refs/heads/vpc-refactor Commit: c43e6efd1015624ed612cff2988cb0dd599f8ad1 Parents: 0de16e0 Author: Antonio Fornie Authored: Wed Aug 20 04:21:53 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../spring-server-core-managers-context.xml | 10 +- .../com/cloud/network/router/NetworkHelper.java | 16 --- .../cloud/network/router/NetworkHelperImpl.java | 21 +--- .../cloud/network/router/NicProfileHelper.java | 15 +++ .../network/router/NicProfileHelperImpl.java| 110 +++ .../cloud/network/router/VpcNetworkHelper.java | 15 --- .../network/router/VpcNetworkHelperImpl.java| 87 +-- .../VpcVirtualNetworkApplianceManagerImpl.java | 2 +- .../deployment/RouterDeploymentDefinition.java | 8 +- .../RouterDeploymentDefinitionBuilder.java | 4 +- .../VpcRouterDeploymentDefinition.java | 9 +- .../RouterDeploymentDefinitionTest.java | 3 +- .../VpcRouterDeploymentDefinitionTest.java | 4 +- 13 files changed, 150 insertions(+), 154 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml -- diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml index 5cfc802..2b46ca3 100644 --- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml +++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml @@ -200,12 +200,18 @@ - + + + + + http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/server/src/com/cloud/network/router/NetworkHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelper.java b/server/src/com/cloud/network/router/NetworkHelper.java index 8bc76ea..01beb91 100644 --- a/server/src/com/cloud/network/router/NetworkHelper.java +++ b/server/src/com/cloud/network/router/NetworkHelper.java @@ -1,6 +1,5 @@ package com.cloud.network.router; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -16,11 +15,9 @@ import com.cloud.exception.InsufficientServerCapacityException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.exception.StorageUnavailableException; import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.network.Network; import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.vm.DomainRouterVO; -import com.cloud.vm.NicProfile; import com.cloud.vm.VirtualMachineProfile.Param; public interface NetworkHelper { @@ -29,7 +26,6 @@ public interface NetworkHelper { public abstract String getRouterIpInNetwork(long networkId, long instanceId); -//@Override public abstract boolean sendCommandsToRouter(VirtualRouter router, Commands cmds) throws AgentUnavailableException; @@ -40,11 +36,9 @@ public interface NetworkHelper { public abstract int getRealPriority(DomainRouterVO router); -//@Override public abstract NicTO getNicTO(VirtualRouter router, Long networkId, String broadcastUri); -//@Override public abstract VirtualRouter destroyRouter(long routerId, Account caller, Long callerUserId) throws ResourceUnavailableException, ConcurrentOperationException; @@ -55,33 +49,23 @@ public interface NetworkHelper { * @param router * @return */ -//@Override public abstract boolean checkRouterVersion(VirtualRouter router); -//@Override public abstract List startRouters( RouterDeploymentDefinition routerDeploymentDefinition) throws StorageUnavailableException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException; -//@Override public abstract DomainRouterVO startVirtualRouter(DomainRouter
[04/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Fixing null pointers during vpc router deployment Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8a1462c9 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8a1462c9 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8a1462c9 Branch: refs/heads/vpc-refactor Commit: 8a1462c9cc345b9759abb412c5a4b97ec6d8230b Parents: 6852f31 Author: Antonio Fornie Authored: Thu Jul 17 04:51:46 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../network/router/NetworkGeneralHelper.java| 2 +- .../deployment/RouterDeploymentDefinition.java | 3 +- .../VpcRouterDeploymentDefinition.java | 34 +++- 3 files changed, 13 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8a1462c9/server/src/com/cloud/network/router/NetworkGeneralHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkGeneralHelper.java b/server/src/com/cloud/network/router/NetworkGeneralHelper.java index fc249aa..28ff08f 100644 --- a/server/src/com/cloud/network/router/NetworkGeneralHelper.java +++ b/server/src/com/cloud/network/router/NetworkGeneralHelper.java @@ -538,7 +538,7 @@ public class NetworkGeneralHelper { hypervisors.add(defaults); } else { //if there is no default hypervisor, get it from the cluster -hypervisors = resourceMgr.getSupportedHypervisorTypes(dest.getDataCenter().getId(), true, routerDeploymentDefinition.getPodId()); +hypervisors = resourceMgr.getSupportedHypervisorTypes(dest.getDataCenter().getId(), true, routerDeploymentDefinition.getPlan().getPodId()); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8a1462c9/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java index 41ec4b3..df9d49b 100644 --- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -177,7 +177,7 @@ public class RouterDeploymentDefinition { return dest.getPod(); } public Long getPodId() { -return dest.getPod().getId(); +return dest.getPod() == null ? null : dest.getPod().getId(); } public List getRouters() { @@ -207,7 +207,6 @@ public class RouterDeploymentDefinition { this.plan = new DataCenterDeployment(dcId, podId, null, null, null, null); } - public List deployVirtualRouter() throws InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8a1462c9/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java index c592efc..6111754 100644 --- a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java @@ -7,12 +7,10 @@ import java.util.List; import java.util.Map; import java.util.TreeSet; -import javax.inject.Inject; - -import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.log4j.Logger; import com.cloud.dc.dao.VlanDao; +import com.cloud.deploy.DataCenterDeployment; import com.cloud.deploy.DeployDestination; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; @@ -22,7 +20,6 @@ import com.cloud.exception.ResourceUnavailableException; import com.cloud.exception.StorageUnavailableException; 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.PhysicalNetwork; @@ -30,11 +27,8 @@ import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VirtualRouterProvider.Type; import com.cloud.network.addr.PublicIp; -import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressVO; import co
[41/50] [abbrv] refactor all private methods in the virtual router appliance and VPC appliance
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java -- diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index a7edfe3..abb4849 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -16,7 +16,6 @@ // under the License. package com.cloud.network.router; - import java.net.URI; import java.util.ArrayList; import java.util.HashMap; @@ -39,17 +38,8 @@ import com.cloud.agent.api.PlugNicCommand; import com.cloud.agent.api.SetupGuestNetworkCommand; import com.cloud.agent.api.routing.AggregationControlCommand; import com.cloud.agent.api.routing.AggregationControlCommand.Action; -import com.cloud.agent.api.routing.IpAssocVpcCommand; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.SetNetworkACLCommand; -import com.cloud.agent.api.routing.SetSourceNatCommand; -import com.cloud.agent.api.routing.SetStaticRouteCommand; -import com.cloud.agent.api.routing.Site2SiteVpnCfgCommand; -import com.cloud.agent.api.to.IpAddressTO; -import com.cloud.agent.api.to.NetworkACLTO; import com.cloud.agent.manager.Commands; import com.cloud.dc.DataCenter; -import com.cloud.dc.DataCenterVO; import com.cloud.deploy.DeployDestination; import com.cloud.exception.AgentUnavailableException; import com.cloud.exception.ConcurrentOperationException; @@ -67,13 +57,9 @@ import com.cloud.network.RemoteAccessVpn; import com.cloud.network.Site2SiteVpnConnection; import com.cloud.network.VirtualRouterProvider; import com.cloud.network.VpcVirtualNetworkApplianceService; -import com.cloud.network.VpnUser; import com.cloud.network.addr.PublicIp; import com.cloud.network.dao.IPAddressVO; import com.cloud.network.dao.RemoteAccessVpnVO; -import com.cloud.network.dao.Site2SiteCustomerGatewayVO; -import com.cloud.network.dao.Site2SiteVpnGatewayVO; -import com.cloud.network.vpc.NetworkACLItem; import com.cloud.network.vpc.NetworkACLItemDao; import com.cloud.network.vpc.NetworkACLItemVO; import com.cloud.network.vpc.NetworkACLManager; @@ -91,7 +77,6 @@ import com.cloud.network.vpc.dao.StaticRouteDao; import com.cloud.network.vpc.dao.VpcDao; import com.cloud.network.vpc.dao.VpcGatewayDao; import com.cloud.network.vpn.Site2SiteVpnManager; -import com.cloud.user.Account; import com.cloud.user.UserStatisticsVO; import com.cloud.utils.Pair; import com.cloud.utils.db.EntityManager; @@ -109,7 +94,7 @@ import com.cloud.vm.VirtualMachineProfile.Param; import com.cloud.vm.dao.VMInstanceDao; @Component -@Local(value = {VpcVirtualNetworkApplianceManager.class, VpcVirtualNetworkApplianceService.class}) +@Local(value = { VpcVirtualNetworkApplianceManager.class, VpcVirtualNetworkApplianceService.class }) public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplianceManagerImpl implements VpcVirtualNetworkApplianceManager { private static final Logger s_logger = Logger.getLogger(VpcVirtualNetworkApplianceManagerImpl.class); @@ -134,9 +119,6 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian @Inject private EntityManager _entityMgr; -@Inject -private NicProfileHelper nicProfileHelper; - @Override public boolean configure(final String name, final Map params) throws ConfigurationException { _itMgr.registerGuru(VirtualMachine.Type.DomainRouter, this); @@ -151,7 +133,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian return false; } -//Add router to the Guest network +// Add router to the Guest network boolean result = true; try { @@ -159,16 +141,15 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian _routerDao.addRouterToGuestNetwork(router, network); NicProfile guestNic = _itMgr.addVmToNetwork(router, network, null); -//2) setup guest network +// 2) setup guest network if (guestNic != null) { result = setupVpcGuestNetwork(network, router, true, guestNic); } else { s_logger.warn("Failed to add router " + router + " to guest network " + network); result = false; } -//3) apply networking rules -if (result && params.get(Param.ReProgramGuestNetworks) != null -&& (Boolean) params.get(Param.ReProgramGuestNetworks) == true) { +// 3) apply networking rules +if (result && params.get(Param.ReProgramGuestNetworks) != null && (Boolean) params.get(Param.ReProgramGuestNet
[13/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
fixing check styles Conflicts: server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d6b4355e Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d6b4355e Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d6b4355e Branch: refs/heads/vpc-refactor Commit: d6b4355e2be8418c0af86398f6779df162af46ab Parents: 0ad3661 Author: Wilder Rodrigues Authored: Tue Aug 19 11:05:53 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../cloud/network/router/NetworkGeneralHelper.java | 16 .../network/topology/AdvancedNetworkTopology.java | 3 +-- .../network/topology/BasicNetworkTopology.java | 3 +-- 3 files changed, 10 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d6b4355e/server/src/com/cloud/network/router/NetworkGeneralHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkGeneralHelper.java b/server/src/com/cloud/network/router/NetworkGeneralHelper.java index d22631b..9768de2 100644 --- a/server/src/com/cloud/network/router/NetworkGeneralHelper.java +++ b/server/src/com/cloud/network/router/NetworkGeneralHelper.java @@ -215,7 +215,7 @@ public class NetworkGeneralHelper { } return result; } - + public void handleSingleWorkingRedundantRouter(final List connectedRouters, final List disconnectedRouters, final String reason) throws ResourceUnavailableException { if (connectedRouters.isEmpty() || disconnectedRouters.isEmpty()) { @@ -275,7 +275,7 @@ public class NetworkGeneralHelper { } return priority; } - + //@Override public NicTO getNicTO(final VirtualRouter router, final Long networkId, final String broadcastUri) { NicProfile nicProfile = _networkModel.getNicProfile(router, networkId, broadcastUri); @@ -792,22 +792,22 @@ public class NetworkGeneralHelper { //1) allocate nic for control and source nat public ip final LinkedHashMap> networks = -this.createRouterNetworks(vpcRouterDeploymentDefinition); +createRouterNetworks(vpcRouterDeploymentDefinition); final Long vpcId = vpcRouterDeploymentDefinition.getVpc().getId(); //2) allocate nic for private gateways if needed -final List privateGateways = this._vpcMgr.getVpcPrivateGateways(vpcId); +final List privateGateways = _vpcMgr.getVpcPrivateGateways(vpcId); if (privateGateways != null && !privateGateways.isEmpty()) { for (PrivateGateway privateGateway : privateGateways) { -NicProfile privateNic = this._vpcHelper.createPrivateNicProfileForGateway(privateGateway); +NicProfile privateNic = _vpcHelper.createPrivateNicProfileForGateway(privateGateway); Network privateNetwork = _networkModel.getNetwork(privateGateway.getNetworkId()); networks.put(privateNetwork, new ArrayList(Arrays.asList(privateNic))); } } //3) allocate nic for guest gateway if needed -List guestNetworks = this._vpcMgr.getVpcNetworks(vpcId); +List guestNetworks = _vpcMgr.getVpcNetworks(vpcId); for (Network guestNetwork : guestNetworks) { if (_networkModel.isPrivateGateway(guestNetwork.getId())) { continue; @@ -823,8 +823,8 @@ public class NetworkGeneralHelper { final List publicNics = new ArrayList(); Network publicNetwork = null; for (IPAddressVO ip : ips) { -PublicIp publicIp = PublicIp.createFromAddrAndVlan(ip, this._vlanDao.findById(ip.getVlanId())); -if ((ip.getState() == IpAddress.State.Allocated || ip.getState() == IpAddress.State.Allocating) && this._vpcMgr.isIpAllocatedToVpc(ip) && +PublicIp publicIp = PublicIp.createFromAddrAndVlan(ip, _vlanDao.findById(ip.getVlanId())); +if ((ip.getState() == IpAddress.State.Allocated || ip.getState() == IpAddress.State.Allocating) && _vpcMgr.isIpAllocatedToVpc(ip) && !publicVlans.contains(publicIp.getVlanTag())) { s_logger.debug("Allocating nic for router in vlan " + publicIp.getVlanTag()); NicProfile publicNic = new NicProfile(); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d6b4355e/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java -- diff --git a/server/src/org/a
[32/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Refactor hypervisor retrieval from VpcNwHelper and NwHelper Conflicts: server/src/com/cloud/network/router/NetworkHelperImpl.java server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0d17f3ba Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0d17f3ba Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0d17f3ba Branch: refs/heads/vpc-refactor Commit: 0d17f3bad408dc52e1332e179ff8c51fc6e76dc7 Parents: 1836e0b Author: Antonio Fornie Authored: Thu Aug 21 09:52:28 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../com/cloud/network/router/NetworkHelper.java | 3 +- .../cloud/network/router/NetworkHelperImpl.java | 80 ++-- .../network/router/VpcNetworkHelperImpl.java| 21 - .../com/cloud/network/vpc/VpcManagerImpl.java | 23 -- .../deployment/RouterDeploymentDefinition.java | 7 ++ .../VpcRouterDeploymentDefinition.java | 3 +- .../RouterDeploymentDefinitionTest.java | 2 +- .../VpcRouterDeploymentDefinitionTest.java | 40 +- 8 files changed, 117 insertions(+), 62 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d17f3ba/server/src/com/cloud/network/router/NetworkHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelper.java b/server/src/com/cloud/network/router/NetworkHelper.java index 5cfae8e..635e56c 100644 --- a/server/src/com/cloud/network/router/NetworkHelper.java +++ b/server/src/com/cloud/network/router/NetworkHelper.java @@ -30,7 +30,6 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InsufficientServerCapacityException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.exception.StorageUnavailableException; -import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.vm.DomainRouterVO; @@ -79,7 +78,7 @@ public interface NetworkHelper { public abstract DomainRouterVO deployRouter( RouterDeploymentDefinition routerDeploymentDefinition, -boolean startRouter, List supportedHypervisors) +boolean startRouter) throws InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException, StorageUnavailableException, ResourceUnavailableException; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d17f3ba/server/src/com/cloud/network/router/NetworkHelperImpl.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index 689ef3b..fd1fc17 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -18,15 +18,18 @@ package com.cloud.network.router; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; +import org.apache.cloudstack.framework.config.ConfigKey; import org.apache.log4j.Logger; import org.cloud.network.router.deployment.RouterDeploymentDefinition; @@ -142,9 +145,17 @@ public class NetworkHelperImpl implements NetworkHelper { @Inject protected NetworkOrchestrationService _networkMgr; -/* (non-Javadoc) - * @see com.cloud.network.router.NetworkHelper#getRouterControlIp(long) - */ +protected final Map> hypervisorsMap = new HashMap<>(); + +@PostConstruct +protected void setupHypervisorsMap() { +hypervisorsMap.put(HypervisorType.XenServer, VirtualNetworkApplianceManager.RouterTemplateXen); +hypervisorsMap.put(HypervisorType.KVM, VirtualNetworkApplianceManager.RouterTemplateKvm); +hypervisorsMap.put(HypervisorType.VMware, VirtualNetworkApplianceManager.RouterTemplateVmware); +hypervisorsMap.put(HypervisorType.Hyperv, VirtualNetworkApplianceManager.RouterTemplateHyperV); +hypervisorsMap.put(HypervisorType.LXC, VirtualNetworkApplianceManager.RouterTemplateLxc); +} + @Override public Str
[11/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Splitting Vpc and NonVpc deployment into phases & testing it Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/70644157 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/70644157 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/70644157 Branch: refs/heads/vpc-refactor Commit: 70644157c5f2bda1eb649a1c1cb724ba94e8895e Parents: 6e2cb08 Author: Antonio Fornie Authored: Thu Jul 17 07:48:20 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../deployment/RouterDeploymentDefinition.java | 168 ++- .../VpcRouterDeploymentDefinition.java | 68 +++- 2 files changed, 232 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70644157/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java index df9d49b..01fc774 100644 --- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -116,8 +116,7 @@ public class RouterDeploymentDefinition { protected DeploymentPlan plan; protected List routers = new ArrayList<>(); protected ServiceOfferingVO offering; - - +protected Long tableLockId; protected RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest, @@ -220,6 +219,171 @@ public class RouterDeploymentDefinition { protected void findOrDeployVirtualRouter() throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException { +try { +this.lock(); +this.checkPreconditions(); +// dest has pod=null, for Basic Zone findOrDeployVRs for all Pods +final List destinations = findDestinations(); + +for (final DeployDestination destination : destinations) { +this.dest = destination; +this.planDeploymentRouters(); +this.generateDeploymentPlan(); +this.proceedEffectiveDeployment(); +} +} finally { +this.unlock(); +} +} + +protected void lock() { +final Network lock = networkDao.acquireInLockTable(guestNetwork.getId(), NetworkOrchestrationService.NetworkLockTimeout.value()); +if (lock == null) { +throw new ConcurrentOperationException("Unable to lock network " + guestNetwork.getId()); +} +this.tableLockId = lock.getId(); +} + +protected void unlock() { +if (this.tableLockId != null) { +networkDao.releaseFromLockTable(this.tableLockId); +if (logger.isDebugEnabled()) { +logger.debug("Lock is released for network id " + this.tableLockId ++ " as a part of router startup in " + dest); +} +} +} + +protected void checkPreconditions() throws ResourceUnavailableException { +if (guestNetwork.getState() != Network.State.Implemented && +guestNetwork.getState() != Network.State.Setup && +guestNetwork.getState() != Network.State.Implementing) { +throw new ResourceUnavailableException("Network is not yet fully implemented: " + guestNetwork, +Network.class, this.guestNetwork.getId()); +} + +if (guestNetwork.getTrafficType() != TrafficType.Guest) { +throw new ResourceUnavailableException("Network is not type Guest as expected: " + guestNetwork, +Network.class, this.guestNetwork.getId()); +} +} + +protected List findDestinations() { +// dest has pod=null, for Basic Zone findOrDeployVRs for all Pods +final List destinations = new ArrayList(); + +// for basic zone, if 'dest' has pod set to null then this is network restart scenario otherwise it is a vm deployment scenario +if (this.isBasic() && dest.getPod() == null) { +// Find all pods in the data center with running or starting user vms +final long dcId = dest.getDataCenter().getId(); +final List pods = listByDataCenterIdVMTypeAndStates(dcId, VirtualMachine.Type.User, VirtualMachine.State.Starting, VirtualMachine.State.Running); + +// Loop through all the pods skip those with running or starting VRs +for (final HostPodVO pod : pods) { +// Get list of VRs in starting or running state +final long
[50/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Applygin fix from commit ID aaeadc5c44e3fe16a1deea5348b085b08b5f4f4d Sheng Yang changed 2 classes, ut only one was related to the bug CLOUDSTACK-7605. I applied the changed on the routerslist, used during the deployment of the virtual routers. Tested Advanced Zone against the simulator. 69 happy tests in place Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a8cb7c14 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a8cb7c14 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a8cb7c14 Branch: refs/heads/vpc-refactor Commit: a8cb7c1480499b1c901ff4f69ebf7ccb3587c541 Parents: f79e7cd Author: Wilder Rodrigues Authored: Tue Sep 30 14:18:52 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:29 2014 +0200 -- .../deployment/RouterDeploymentDefinition.java | 217 +-- .../VpcRouterDeploymentDefinition.java | 45 ++-- .../RouterDeploymentDefinitionTest.java | 2 +- 3 files changed, 126 insertions(+), 138 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a8cb7c14/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java index 7728f61..89dde3e 100644 --- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -100,8 +100,7 @@ public class RouterDeploymentDefinition { protected boolean isPublicNetwork; protected PublicIp sourceNatIp; -protected RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest, -final Account owner, final Map params, final boolean isRedundant) { +protected RouterDeploymentDefinition(final Network guestNetwork, final DeployDestination dest, final Account owner, final Map params, final boolean isRedundant) { this.guestNetwork = guestNetwork; this.dest = dest; @@ -111,98 +110,103 @@ public class RouterDeploymentDefinition { } public Long getOfferingId() { -return this.offeringId; +return offeringId; } public Vpc getVpc() { return null; } + public Network getGuestNetwork() { return guestNetwork; } + public DeployDestination getDest() { return dest; } + public Account getOwner() { return owner; } + public Map getParams() { return params; } + public boolean isRedundant() { return isRedundant; } + public DeploymentPlan getPlan() { return plan; } + public boolean isVpcRouter() { return false; } + public Pod getPod() { return dest.getPod(); } + public Long getPodId() { return dest.getPod() == null ? null : dest.getPod().getId(); } + public List getRouters() { return routers; } public VirtualRouterProvider getVirtualProvider() { -return this.vrProvider; +return vrProvider; } public boolean isBasic() { -return this.dest.getDataCenter().getNetworkType() == NetworkType.Basic; +return dest.getDataCenter().getNetworkType() == NetworkType.Basic; } public boolean isPublicNetwork() { -return this.isPublicNetwork; +return isPublicNetwork; } public PublicIp getSourceNatIP() { -return this.sourceNatIp; +return sourceNatIp; } protected void generateDeploymentPlan() { -final long dcId = this.dest.getDataCenter().getId(); +final long dcId = dest.getDataCenter().getId(); Long podId = null; -if (this.isBasic()) { -if (this.dest.getPod() == null) { +if (isBasic()) { +if (dest.getPod() == null) { throw new CloudRuntimeException("Pod id is expected in deployment destination"); } -podId = this.dest.getPod().getId(); +podId = dest.getPod().getId(); } -this.plan = new DataCenterDeployment(dcId, podId, null, null, null, null); +plan = new DataCenterDeployment(dcId, podId, null, null, null, null); } -public List deployVirtualRouter() -throws InsufficientCapacityException, -ConcurrentOperationException, ResourceUnavailableException { +public List deployVirtualRouter() throws InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { -this.findOrDeployVirtualRouter(); +
[14/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Fix unnecessary changes Spring contexts Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9d9e4407 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9d9e4407 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9d9e4407 Branch: refs/heads/vpc-refactor Commit: 9d9e4407a4118dde619b00cd2f7281fc69acf6e5 Parents: 9289f31 Author: Antonio Fornie Authored: Mon Aug 18 07:24:38 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../META-INF/cloudstack/core/spring-server-core-misc-context.xml | 4 .../cloudstack/server-network/spring-server-network-context.xml | 4 2 files changed, 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d9e4407/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml -- diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml index d3f020e..479dc9c 100644 --- a/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml +++ b/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml @@ -37,10 +37,6 @@ - - - - http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d9e4407/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml -- diff --git a/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml b/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml index 831ca1f..553ae44 100644 --- a/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml +++ b/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml @@ -61,8 +61,4 @@ - - - -
[16/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
moving sendCommand to the NetworkGeneralHelper; adding handle single network method to the NetworkGeneralHelper; moving getRealPriority to the NetworkGeneralHelper; making priority constants part of the VirtualNetworkApplianceManager; changing the network topology implementation in order to use the NetworkGeneralManager instead of the appliance Conflicts: server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0ad36615 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0ad36615 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0ad36615 Branch: refs/heads/vpc-refactor Commit: 0ad366156421dfde2bcdeebe06c7a68513e22786 Parents: 9d9e440 Author: wrodrigues Authored: Tue Aug 19 08:04:23 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../network/router/NetworkGeneralHelper.java| 290 +++ .../router/VirtualNetworkApplianceManager.java | 2 + .../VirtualNetworkApplianceManagerImpl.java | 133 ++--- .../VpcVirtualNetworkApplianceManagerImpl.java | 22 +- .../topology/AdvancedNetworkTopology.java | 3 +- .../topology/AdvancedNetworkVisitor.java| 14 +- .../network/topology/BasicNetworkTopology.java | 7 +- .../network/topology/BasicNetworkVisitor.java | 30 +- .../MockVpcVirtualNetworkApplianceManager.java | 8 - 9 files changed, 235 insertions(+), 274 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/com/cloud/network/router/NetworkGeneralHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkGeneralHelper.java b/server/src/com/cloud/network/router/NetworkGeneralHelper.java index 314cbc0..d22631b 100644 --- a/server/src/com/cloud/network/router/NetworkGeneralHelper.java +++ b/server/src/com/cloud/network/router/NetworkGeneralHelper.java @@ -33,8 +33,11 @@ import org.cloud.network.router.deployment.VpcRouterDeploymentDefinition; import com.cloud.agent.AgentManager; import com.cloud.agent.api.Answer; +import com.cloud.agent.api.BumpUpPriorityCommand; +import com.cloud.agent.api.routing.NetworkElementCommand; import com.cloud.agent.api.to.NicTO; import com.cloud.agent.manager.Commands; +import com.cloud.alert.AlertManager; import com.cloud.dc.ClusterVO; import com.cloud.dc.DataCenter; import com.cloud.dc.Pod; @@ -102,58 +105,60 @@ import com.cloud.vm.dao.DomainRouterDao; import com.cloud.vm.dao.NicDao; public class NetworkGeneralHelper { -private static final Logger logger = Logger.getLogger(NetworkGeneralHelper.class); +private static final Logger s_logger = Logger.getLogger(NetworkGeneralHelper.class); @Inject -private NicDao nicDao; +private NicDao _nicDao; @Inject -private NetworkDao networkDao; +private NetworkDao _networkDao; @Inject -private DomainRouterDao routerDao; +private DomainRouterDao _routerDao; @Inject -private AgentManager agentMgr; +private AgentManager _agentMgr; @Inject -private NetworkModel networkModel; +private AlertManager _alertMgr; @Inject -private VirtualMachineManager itMgr; +private NetworkModel _networkModel; @Inject -private AccountManager accountMgr; +private VirtualMachineManager _itMgr; @Inject -private Site2SiteVpnManager s2sVpnMgr; +private AccountManager _accountMgr; @Inject -private HostDao hostDao; +private Site2SiteVpnManager _s2sVpnMgr; @Inject -private VolumeDao volumeDao; +private HostDao _hostDao; @Inject -private ServiceOfferingDao serviceOfferingDao; +private VolumeDao _volumeDao; @Inject -private VMTemplateDao templateDao; +private ServiceOfferingDao _serviceOfferingDao; @Inject -private ResourceManager resourceMgr; +private VMTemplateDao _templateDao; @Inject -private ClusterDao clusterDao; +private ResourceManager _resourceMgr; @Inject -private IPAddressDao ipAddressDao; +private ClusterDao _clusterDao; @Inject -private IpAddressManager ipAddrMgr; +private IPAddressDao _ipAddressDao; @Inject -private UserIpv6AddressDao ipv6Dao; +private IpAddressManager _ipAddrMgr; @Inject -private NetworkOrchestrationService networkMgr; +private UserIpv6AddressDao _ipv6Dao; @Inject -protected VpcVirtualNetworkHelperImpl vpcHelper; +private NetworkOrchestrationService _networkMgr; @Inject -protected Vpc
[26/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
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/51ce9357 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/51ce9357 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/51ce9357 Branch: refs/heads/vpc-refactor Commit: 51ce93579ee8affb8971eaa9e276a9b7a8b78dd7 Parents: 07be494 Author: Wilder Rodrigues Authored: Thu Aug 21 10:17:59 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 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/51ce9357/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 params = new HashMap(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, -Con
[17/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
adding applyStaticRoutes method to the network topology/visitor. it will be used by the VPC virtual net manager appliance. Conflicts: server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/51df3aa0 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/51df3aa0 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/51df3aa0 Branch: refs/heads/vpc-refactor Commit: 51df3aa0f2ee364651c095b40521481563044817 Parents: a515d6c Author: Wilder Rodrigues Authored: Tue Aug 19 15:10:10 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../cloud/network/router/NetworkHelperImpl.java | 6 +- .../VirtualNetworkApplianceManagerImpl.java | 2 +- .../network/router/VirtualNetworkStatus.java| 26 + .../cloud/network/router/VirtualNwStatus.java | 26 - .../network/router/VpcNetworkHelperImpl.java| 2 +- .../com/cloud/network/rules/RuleApplier.java| 7 --- .../cloud/network/rules/StaticRoutesRules.java | 61 .../rules/VirtualNetworkApplianceFactory.java | 3 +- .../topology/AdvancedNetworkTopology.java | 8 +++ .../topology/AdvancedNetworkVisitor.java| 7 +++ .../network/topology/BasicNetworkTopology.java | 6 ++ .../network/topology/BasicNetworkVisitor.java | 6 ++ .../network/topology/NetworkTopology.java | 3 + .../topology/NetworkTopologyVisitor.java| 2 + 14 files changed, 125 insertions(+), 40 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/51df3aa0/server/src/com/cloud/network/router/NetworkHelperImpl.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index bcebcd7..bf4c7af 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -580,7 +580,7 @@ public class NetworkHelperImpl implements NetworkHelper { Long vpcId = routerDeploymentDefinition.getVpc() != null ? routerDeploymentDefinition.getVpc().getId() : null; router = new DomainRouterVO(id, routerOffering.getId(), routerDeploymentDefinition.getVirtualProvider().getId(), -VirtualMachineName.getRouterName(id, VirtualNwStatus.instance), template.getId(), template.getHypervisorType(), +VirtualMachineName.getRouterName(id, VirtualNetworkStatus.instance), template.getId(), template.getHypervisorType(), template.getGuestOSId(), owner.getDomainId(), owner.getId(), routerDeploymentDefinition.isRedundant(), 0, false, RedundantState.UNKNOWN, offerHA, false, vpcId); @@ -774,7 +774,7 @@ public class NetworkHelperImpl implements NetworkHelper { s_logger.debug("Adding nic for Virtual Router in Control network "); List offerings = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork); NetworkOffering controlOffering = offerings.get(0); -Network controlConfig = _networkMgr.setupNetwork(VirtualNwStatus.account, controlOffering, routerDeploymentDefinition.getPlan(), +Network controlConfig = _networkMgr.setupNetwork(VirtualNetworkStatus.account, controlOffering, routerDeploymentDefinition.getPlan(), null, null, false).get(0); networks.put(controlConfig, new ArrayList()); //3) Public network @@ -803,7 +803,7 @@ public class NetworkHelperImpl implements NetworkHelper { defaultNic.setDeviceId(2); } final NetworkOffering publicOffering = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0); -final List publicNetworks = _networkMgr.setupNetwork(VirtualNwStatus.account, publicOffering, +final List publicNetworks = _networkMgr.setupNetwork(VirtualNetworkStatus.account, publicOffering, routerDeploymentDefinition.getPlan(), null, null, false); final String publicIp = defaultNic.getIp4Address(); // We want to use the identical MAC address for RvR on public interface if possible http://git-wip-us.apache.org/repos/asf/cloudstack/blob/51df3aa0/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java -- diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index a798ef5..db1c9e6 100644 --- a/server/sr
[02/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Deployment more OO - Objects with data and behavior Conflicts: server/src/com/cloud/network/element/VirtualRouterElement.java server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/09763596 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/09763596 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/09763596 Branch: refs/heads/vpc-refactor Commit: 09763596d0399f32c5acbbed055572eaf4830d28 Parents: 7de179d Author: Antonio Fornie Authored: Wed Jul 16 12:11:47 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../network/element/VirtualRouterElement.java | 18 +- .../element/VpcVirtualRouterElement.java| 38 +- .../network/router/NetworkGeneralHelper.java| 137 ++-- .../router/RouterDeploymentDefinition.java | 139 .../network/router/RouterDeploymentManager.java | 681 --- .../router/VirtualNetworkApplianceManager.java | 4 - .../VirtualNetworkApplianceManagerImpl.java | 12 +- .../VpcVirtualNetworkApplianceManagerImpl.java | 51 +- .../router/VpcVirtualNetworkHelperImpl.java | 81 +-- .../deployment/RouterDeploymentDefinition.java | 530 +++ .../RouterDeploymentDefinitionBuilder.java | 188 + .../VpcRouterDeploymentDefinition.java | 241 +++ .../MockVpcVirtualNetworkApplianceManager.java | 11 - 13 files changed, 1104 insertions(+), 1027 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/09763596/server/src/com/cloud/network/element/VirtualRouterElement.java -- diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index 65f06b3..90e9a63 100755 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -72,10 +72,11 @@ import com.cloud.network.dao.VirtualRouterProviderDao; import com.cloud.network.lb.LoadBalancingRule; import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy; import com.cloud.network.lb.LoadBalancingRulesManager; -import com.cloud.network.router.RouterDeploymentDefinition; import com.cloud.network.router.VirtualRouter; import com.cloud.network.router.VirtualRouter.Role; import com.cloud.network.router.VpcVirtualNetworkApplianceManager; +import com.cloud.network.router.deployment.RouterDeploymentDefinition; +import com.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder; import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.LbStickinessMethod; import com.cloud.network.rules.LbStickinessMethod.StickinessMethodType; @@ -156,6 +157,8 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Inject NetworkTopologyContext networkTopologyContext; +@Inject +private RouterDeploymentDefinitionBuilder routerDeploymentDefinitionBuilder; protected boolean canHandle(final Network network, final Service service) { Long physicalNetworkId = _networkMdl.getPhysicalNetworkId(network); @@ -197,10 +200,10 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl Map params = new HashMap(1); params.put(VirtualMachineProfile.Param.ReProgramGuestNetworks, true); -RouterDeploymentDefinition routerDeploymentDefinition = new RouterDeploymentDefinition(network, dest, _accountMgr.getAccount(network.getAccountId()), params, -offering.getRedundantRouter()); +RouterDeploymentDefinition routerDeploymentDefinition = routerDeploymentDefinitionBuilder.create().setGuestNetwork(network).setDeployDestination(dest) + .setAccountOwner(_accountMgr.getAccount(network.getAccountId())).setParams(params).setRedundant(offering.getRedundantRouter()).build(); -List routers = _routerMgr.deployVirtualRouter(routerDeploymentDefinition); +List routers = routerDeploymentDefinition.deployVirtualRouter(); int routerCounts = 1; if (offering.getRedundantRouter()) { @@ -232,9 +235,10 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl return false; } -RouterDeploymentDefinition routerDeploymentDefinition = new RouterDeploymentDefinition(network, dest, _accountMgr.getAccount(network.getAccountId()), vm.getParameters(), -offering.getRedundantRouter()); -List routers = _routerMgr.deployVirtualRouter(routerDeploymentDefinition); +RouterDeploymentDefinition routerDeploymentDefinition = routerDeploymen
[40/50] [abbrv] refactor all private methods in the virtual router appliance and VPC appliance
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/PrivateGatewayRules.java -- diff --git a/server/src/com/cloud/network/rules/PrivateGatewayRules.java b/server/src/com/cloud/network/rules/PrivateGatewayRules.java index c62f862..1d13efb 100644 --- a/server/src/com/cloud/network/rules/PrivateGatewayRules.java +++ b/server/src/com/cloud/network/rules/PrivateGatewayRules.java @@ -17,27 +17,15 @@ package com.cloud.network.rules; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; import org.apache.log4j.Logger; -import com.cloud.agent.api.routing.IpAssocVpcCommand; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.to.IpAddressTO; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenterVO; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.Network; import com.cloud.network.router.VirtualRouter; import com.cloud.network.vpc.PrivateGateway; -import com.cloud.network.vpc.PrivateIpAddress; import com.cloud.network.vpc.PrivateIpVO; -import com.cloud.user.Account; import com.cloud.vm.NicProfile; public class PrivateGatewayRules extends RuleApplier { @@ -142,47 +130,4 @@ public class PrivateGatewayRules extends RuleApplier { s_logger.debug("Private gateawy " + _privateGateway + " is removed from router " + _router); return result; } - -public void createVpcAssociatePrivateIPCommands(final VirtualRouter router, final List ips, final Commands cmds, final boolean add) { - -// Ensure that in multiple vlans case we first send all ip addresses of vlan1, then all ip addresses of vlan2, etc.. -Map> vlanIpMap = new HashMap>(); -for (final PrivateIpAddress ipAddress : ips) { -String vlanTag = ipAddress.getBroadcastUri(); -ArrayList ipList = vlanIpMap.get(vlanTag); -if (ipList == null) { -ipList = new ArrayList(); -} - -ipList.add(ipAddress); -vlanIpMap.put(vlanTag, ipList); -} - -for (Map.Entry> vlanAndIp : vlanIpMap.entrySet()) { -List ipAddrList = vlanAndIp.getValue(); -IpAddressTO[] ipsToSend = new IpAddressTO[ipAddrList.size()]; -int i = 0; - -for (final PrivateIpAddress ipAddr : ipAddrList) { -Network network = _networkModel.getNetwork(ipAddr.getNetworkId()); -IpAddressTO ip = -new IpAddressTO(Account.ACCOUNT_ID_SYSTEM, ipAddr.getIpAddress(), add, false, ipAddr.getSourceNat(), ipAddr.getBroadcastUri(), ipAddr.getGateway(), -ipAddr.getNetmask(), ipAddr.getMacAddress(), null, false); - -ip.setTrafficType(network.getTrafficType()); - ip.setNetworkName(_networkModel.getNetworkTag(router.getHypervisorType(), network)); -ipsToSend[i++] = ip; - -} - -IpAssocVpcCommand cmd = new IpAssocVpcCommand(ipsToSend); -cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); -cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, _routerControlHelper.getRouterIpInNetwork(ipAddrList.get(0).getNetworkId(), router.getId())); -cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); -DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); -cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString()); - -cmds.addCommand("IPAssocVpcCommand", cmd); -} -} } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/rules/RuleApplier.java -- diff --git a/server/src/com/cloud/network/rules/RuleApplier.java b/server/src/com/cloud/network/rules/RuleApplier.java index c6f1cc0..4c399ed 100644 --- a/server/src/com/cloud/network/rules/RuleApplier.java +++ b/server/src/com/cloud/network/rules/RuleApplier.java @@ -17,14 +17,8 @@ package com.cloud.network.rules; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; -import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.VmDataCommand; -import com.cloud.agent.manager.Commands; -import com.cloud.dc.DataCenter.NetworkType; -import com.cloud.dc.DataCenterVO; import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.HostPodDao; import com.cloud.dc.dao.VlanDao; @@ -32,29 +26,20
[31/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Removing the VirtualNetworkStatus, it was not being used properly; fixing the injection of the network DAO in the PrivateGatewayRules; all tests that were failing in Travis have been tested before the commit. Conflicts: server/src/com/cloud/network/router/NetworkHelperImpl.java server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/70bd734b Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/70bd734b Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/70bd734b Branch: refs/heads/vpc-refactor Commit: 70bd734be7fc44e7174a3c81dc1fa3d884e6d2e2 Parents: 13ccdcb Author: Wilder Rodrigues Authored: Thu Sep 4 16:49:49 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../com/cloud/network/router/NetworkHelper.java | 1 - .../cloud/network/router/NetworkHelperImpl.java | 18 +++--- .../VirtualNetworkApplianceManagerImpl.java | 25 ++- .../network/router/VirtualNetworkStatus.java| 26 .../network/router/VpcNetworkHelperImpl.java| 23 + .../rules/VirtualNetworkApplianceFactory.java | 3 ++- 6 files changed, 40 insertions(+), 56 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70bd734b/server/src/com/cloud/network/router/NetworkHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelper.java b/server/src/com/cloud/network/router/NetworkHelper.java index 59338f7..711c02d 100644 --- a/server/src/com/cloud/network/router/NetworkHelper.java +++ b/server/src/com/cloud/network/router/NetworkHelper.java @@ -78,5 +78,4 @@ public interface NetworkHelper { throws InsufficientAddressCapacityException, InsufficientServerCapacityException, InsufficientCapacityException, StorageUnavailableException, ResourceUnavailableException; - } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70bd734b/server/src/com/cloud/network/router/NetworkHelperImpl.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index 6c695d5..357802f 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -106,6 +106,9 @@ public class NetworkHelperImpl implements NetworkHelper { private static final Logger s_logger = Logger.getLogger(NetworkHelperImpl.class); +protected static Account s_systemAccount; +protected static String s_vmInstanceName; + @Inject protected NicDao _nicDao; @Inject @@ -559,7 +562,7 @@ public class NetworkHelperImpl implements NetworkHelper { Long vpcId = routerDeploymentDefinition.getVpc() != null ? routerDeploymentDefinition.getVpc().getId() : null; router = new DomainRouterVO(id, routerOffering.getId(), routerDeploymentDefinition.getVirtualProvider().getId(), VirtualMachineName.getRouterName(id, -VirtualNetworkStatus.instance), template.getId(), template.getHypervisorType(), template.getGuestOSId(), owner.getDomainId(), owner.getId(), +s_vmInstanceName), template.getId(), template.getHypervisorType(), template.getGuestOSId(), owner.getDomainId(), owner.getId(), routerDeploymentDefinition.isRedundant(), 0, false, RedundantState.UNKNOWN, offerHA, false, vpcId); router.setDynamicallyScalable(template.isDynamicallyScalable()); @@ -747,7 +750,7 @@ public class NetworkHelperImpl implements NetworkHelper { s_logger.debug("Adding nic for Virtual Router in Control network "); List offerings = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork); NetworkOffering controlOffering = offerings.get(0); -Network controlConfig = _networkMgr.setupNetwork(VirtualNetworkStatus.account, controlOffering, routerDeploymentDefinition.getPlan(), null, null, false).get(0); +Network controlConfig = _networkMgr.setupNetwork(s_systemAccount, controlOffering, routerDeploymentDefinition.getPlan(), null, null, false).get(0); networks.put(controlConfig, new ArrayList()); // 3) Public network if (routerDeploymentDefinition.isPublicNetwork()) { @@ -776,8 +779,7 @@ public class NetworkHelperImpl implements NetworkHelper { defaultNic.setDeviceId(2); } final NetworkOffering publicOffering = _
[46/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
fixing checkstyle in the virtual network manager. problem appeared after a rebase. probably due to my saving action in the eclipse workspace Conflicts: server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9379d1a1 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9379d1a1 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9379d1a1 Branch: refs/heads/vpc-refactor Commit: 9379d1a104ca581b03cd4fd1ded590da6720 Parents: b948576 Author: wrodrigues Authored: Tue Sep 9 22:52:05 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:29 2014 +0200 -- .../cloud/network/router/VirtualNetworkApplianceManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9379d1a1/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java -- diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 8d9ac7a..75cbfeb 100644 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -2594,4 +2594,4 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V public boolean completeAggregatedExecution(final Network network, final List routers) throws AgentUnavailableException { return aggregationExecution(Action.Finish, network, routers); } -} \ No newline at end of file +}
[08/50] [abbrv] More refactoring and testing in the same classes
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0467731/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java -- diff --git a/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java b/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java index 6941e9a..10d4b42 100644 --- a/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java +++ b/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java @@ -1,9 +1,19 @@ package org.cloud.network.router.deployment; import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertNotNull; +import static junit.framework.Assert.assertNull; +import static junit.framework.Assert.assertTrue; +import static junit.framework.Assert.fail; +import static org.mockito.Matchers.anyBoolean; +import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyLong; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -14,7 +24,6 @@ import java.util.List; import java.util.Map; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -27,29 +36,59 @@ import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter.NetworkType; import com.cloud.dc.HostPodVO; import com.cloud.dc.Pod; +import com.cloud.dc.dao.HostPodDao; import com.cloud.deploy.DeployDestination; +import com.cloud.deploy.DeploymentPlan; import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientAddressCapacityException; +import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.ResourceUnavailableException; +import com.cloud.network.IpAddressManager; import com.cloud.network.Network; +import com.cloud.network.Network.Provider; +import com.cloud.network.Network.Service; +import com.cloud.network.NetworkModel; import com.cloud.network.Networks.TrafficType; +import com.cloud.network.VirtualRouterProvider.Type; +import com.cloud.network.addr.PublicIp; import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkVO; +import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; +import com.cloud.network.dao.PhysicalNetworkServiceProviderVO; +import com.cloud.network.dao.VirtualRouterProviderDao; +import com.cloud.network.element.VirtualRouterProviderVO; +import com.cloud.network.router.NetworkGeneralHelper; +import com.cloud.network.router.VirtualRouter.Role; +import com.cloud.offerings.NetworkOfferingVO; +import com.cloud.offerings.dao.NetworkOfferingDao; +import com.cloud.service.ServiceOfferingVO; import com.cloud.user.Account; +import com.cloud.user.AccountManager; +import com.cloud.utils.db.SearchBuilder; +import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.DomainRouterVO; +import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachineProfile.Param; import com.cloud.vm.dao.DomainRouterDao; +import com.cloud.vm.dao.VMInstanceDao; @RunWith(MockitoJUnitRunner.class) public class RouterDeploymentDefinitionTest { +private static final long OFFERING_ID = 16L; +private static final String NUMBER_OF_ROUTERS_TO_DEPLOY_IS_NOT_THE_EXPECTED = "Number of routers to deploy is not the expected"; private static final String ONLY_THE_PROVIDED_AS_DEFAULT_DESTINATION_WAS_EXPECTED = "Only the provided as default destination was expected"; protected static final Long DATA_CENTER_ID = 100l; +protected static final Long NW_ID = 102l; protected static final Long POD_ID1 = 111l; protected static final Long POD_ID2 = 112l; protected static final Long POD_ID3 = 113l; -protected static final Long NW_ID = 102l; +protected static final Long ROUTER1_ID = 121l; +protected static final Long ROUTER2_ID = 122l; +private static final long PROVIDER_ID = 131L; +private static final long PHYSICAL_NW_ID = 141L; // General delegates (Daos, Mgrs...) @Mock @@ -69,11 +108,32 @@ public class RouterDeploymentDefinitionTest { @Mock protected HostPodVO mockHostPodVO3; @Mock -protected NetworkVO mockNwLock; +protected NetworkVO mockNw; +@Mock +NetworkOfferingVO mockNwOfferingVO; @Mock protected Account mockOwner; @Mock protected DomainRouterDao mockRouterDao; +@Mock +protected NetworkG
[49/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Fixing the NetworkHelperImpl class. It was throwing a NPE due to a hypervisor type SIMULATOR not being in the hashmap. When the refactor took place, we should have changed first structure, then behaviour. By refactoring the deployRouter method we changed how the templateName was retrieved. Fixed and tested using the simulator and the following Marvin tests test_privategateway_acl test_routers test_vpc_vpn test_service_offerings test_volumes test_reset_vm_on_reboot test_multipleips_per_nic Conflicts: server/src/com/cloud/network/router/NetworkHelperImpl.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/53703c98 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/53703c98 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/53703c98 Branch: refs/heads/vpc-refactor Commit: 53703c98fea54a835f794aa358745794591b420e Parents: 9379d1a Author: wrodrigues Authored: Thu Sep 11 20:41:23 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:29 2014 +0200 -- .../cloud/network/router/NetworkHelperImpl.java | 28 +++- 1 file changed, 10 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/53703c98/server/src/com/cloud/network/router/NetworkHelperImpl.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index 357802f..f589394 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -372,14 +372,6 @@ public class NetworkHelperImpl implements NetworkHelper { return null; } -// @Override -/* - * (non-Javadoc) - * - * @see - * com.cloud.network.router.NetworkHelper#startRouters(org.cloud.network - * .router.deployment.RouterDeploymentDefinition) - */ @Override public List startRouters(final RouterDeploymentDefinition routerDeploymentDefinition) throws StorageUnavailableException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { @@ -407,15 +399,6 @@ public class NetworkHelperImpl implements NetworkHelper { return runningRouters; } -// @Override -/* - * (non-Javadoc) - * - * @see - * com.cloud.network.router.NetworkHelper#startVirtualRouter(com.cloud.vm - * .DomainRouterVO, com.cloud.user.User, com.cloud.user.Account, - * java.util.Map) - */ @Override public DomainRouterVO startVirtualRouter(final DomainRouterVO router, final User user, final Account caller, final Map params) throws StorageUnavailableException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { @@ -513,7 +496,16 @@ public class NetworkHelperImpl implements NetworkHelper { } } -return hypervisorsMap.get(hType).valueIn(datacenterId); +// Returning NULL is fine because the simulator will need it when being +// used instead of a real hypervisor. +// The hypervisorsMap contains only real hypervisors. +String templateName = null; +ConfigKey hypervisorConfigKey = hypervisorsMap.get(hType); + +if (hypervisorConfigKey != null) { +templateName = hypervisorConfigKey.valueIn(datacenterId); +} +return templateName; } @Override
[05/50] [abbrv] adding new bean to spring context file; renaming package from "com" to "org"
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6852f312/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java new file mode 100644 index 000..41ec4b3 --- /dev/null +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -0,0 +1,530 @@ +// 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 org.cloud.network.router.deployment; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import javax.inject.Inject; + +import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; +import org.apache.log4j.Logger; + +import com.cloud.dc.DataCenter.NetworkType; +import com.cloud.dc.HostPodVO; +import com.cloud.dc.Pod; +import com.cloud.dc.dao.HostPodDao; +import com.cloud.deploy.DataCenterDeployment; +import com.cloud.deploy.DeployDestination; +import com.cloud.deploy.DeploymentPlan; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientAddressCapacityException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.network.IpAddressManager; +import com.cloud.network.Network; +import com.cloud.network.Network.Provider; +import com.cloud.network.Network.Service; +import com.cloud.network.NetworkModel; +import com.cloud.network.Networks.BroadcastDomainType; +import com.cloud.network.Networks.IsolationType; +import com.cloud.network.Networks.TrafficType; +import com.cloud.network.PhysicalNetworkServiceProvider; +import com.cloud.network.VirtualRouterProvider; +import com.cloud.network.VirtualRouterProvider.Type; +import com.cloud.network.addr.PublicIp; +import com.cloud.network.dao.IPAddressDao; +import com.cloud.network.dao.NetworkDao; +import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; +import com.cloud.network.dao.UserIpv6AddressDao; +import com.cloud.network.dao.VirtualRouterProviderDao; +import com.cloud.network.router.NetworkGeneralHelper; +import com.cloud.network.router.VirtualNwStatus; +import com.cloud.network.router.VirtualRouter.Role; +import com.cloud.network.router.VpcVirtualNetworkHelperImpl; +import com.cloud.network.vpc.Vpc; +import com.cloud.offering.NetworkOffering; +import com.cloud.offerings.dao.NetworkOfferingDao; +import com.cloud.service.ServiceOfferingVO; +import com.cloud.user.Account; +import com.cloud.user.AccountManager; +import com.cloud.utils.Pair; +import com.cloud.utils.db.DB; +import com.cloud.utils.db.JoinBuilder; +import com.cloud.utils.db.SearchBuilder; +import com.cloud.utils.db.SearchCriteria; +import com.cloud.utils.exception.CloudRuntimeException; +import com.cloud.utils.net.NetUtils; +import com.cloud.vm.DomainRouterVO; +import com.cloud.vm.Nic; +import com.cloud.vm.NicProfile; +import com.cloud.vm.NicVO; +import com.cloud.vm.VMInstanceVO; +import com.cloud.vm.VirtualMachine; +import com.cloud.vm.VirtualMachineProfile.Param; +import com.cloud.vm.dao.DomainRouterDao; +import com.cloud.vm.dao.NicDao; +import com.cloud.vm.dao.VMInstanceDao; + +public class RouterDeploymentDefinition { +private static final Logger logger = Logger.getLogger(RouterDeploymentDefinition.class); + +protected NetworkDao networkDao; +protected DomainRouterDao routerDao; +protected PhysicalNetworkServiceProviderDao physicalProviderDao; +protected NetworkModel networkModel; +protected VirtualRouterProviderDao vrProviderDao; +protected NetworkOfferingDao networkOfferingDao; +protected IpAddressManager ipAddrMgr; +protected VMInstanceDao vmDao; +protected HostPodDao podDao; +protected AccountManager accountMgr; +protected NetworkOrchestrationService networkMgr; +protected NicDao nicDao; +protected UserIpv6AddressDao ipv6Dao; +protected IPAddressDao ipAddressDao; + + +@Inject +protected NetworkGeneralHelper nwHelper; +@Inject +
[03/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
fixing import in virtual router element and checkstyle in dhcp entry related changes Conflicts: server/src/com/cloud/network/element/VirtualRouterElement.java server/src/com/cloud/network/rules/DhcpEntryRules.java server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4ae9e67a Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4ae9e67a Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4ae9e67a Branch: refs/heads/vpc-refactor Commit: 4ae9e67a5b13b90bae35c1e1c77d35cf2aac9592 Parents: e6b1a3c Author: Wilder Rodrigues Authored: Thu Jul 17 07:57:29 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../network/element/VirtualRouterElement.java | 4 + .../com/cloud/network/rules/DhcpEntryRules.java | 95 +--- .../topology/AdvancedNetworkTopology.java | 17 .../network/topology/BasicNetworkTopology.java | 21 + .../network/topology/BasicNetworkVisitor.java | 14 ++- .../topology/NetworkTopologyContext.java| 2 - 6 files changed, 139 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4ae9e67a/server/src/com/cloud/network/element/VirtualRouterElement.java -- diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index 90e9a63..0ea6c18 100755 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -157,6 +157,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl @Inject NetworkTopologyContext networkTopologyContext; + @Inject private RouterDeploymentDefinitionBuilder routerDeploymentDefinitionBuilder; @@ -959,6 +960,9 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl throw new ResourceUnavailableException("Can't find at least one router!", DataCenter.class, network.getDataCenterId()); } +DataCenterVO dcVO = _dcDao.findById(network.getDataCenterId()); +NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO); + return _routerMgr.applyDhcpEntry(network, nic, uservm, dest, routers); } return false; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4ae9e67a/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 7e0eae0..2bfa4e6 100644 --- a/server/src/com/cloud/network/rules/DhcpEntryRules.java +++ b/server/src/com/cloud/network/rules/DhcpEntryRules.java @@ -19,43 +19,116 @@ package com.cloud.network.rules; import org.apache.cloudstack.network.topology.NetworkTopologyVisitor; +import com.cloud.agent.api.routing.DhcpEntryCommand; +import com.cloud.agent.api.routing.NetworkElementCommand; +import com.cloud.agent.manager.Commands; +import com.cloud.dc.DataCenterVO; import com.cloud.deploy.DeployDestination; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.Network; +import com.cloud.network.Network.Provider; +import com.cloud.network.Network.Service; import com.cloud.network.router.VirtualRouter; +import com.cloud.offering.NetworkOffering; +import com.cloud.uservm.UserVm; +import com.cloud.utils.net.NetUtils; +import com.cloud.vm.Nic; import com.cloud.vm.NicProfile; +import com.cloud.vm.NicVO; +import com.cloud.vm.UserVmVO; import com.cloud.vm.VirtualMachineProfile; public class DhcpEntryRules extends RuleApplier { -private final NicProfile nic; -private final VirtualMachineProfile profile; -private final DeployDestination destination; +private final NicProfile _nic; +private final VirtualMachineProfile _profile; +private final DeployDestination _destination; + +private NicVO _nicVo; +private UserVmVO _userVM; public DhcpEntryRules(final Network network, final NicProfile nic, final VirtualMachineProfile profile, final DeployDestination destination) { super(network); -this.nic = nic; -this.profile = profile; -this.destination = destination; +_nic = nic; +_profile = profile; +_destination = destination; }
[27/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Factor out prepareDeployment and update tests Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f0cae57e Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f0cae57e Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f0cae57e Branch: refs/heads/vpc-refactor Commit: f0cae57e2d697a1e0ad6f35434f36cb41fee6bcb Parents: eff9b8d Author: Antonio Fornie Authored: Tue Jul 29 06:47:50 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../deployment/RouterDeploymentDefinition.java | 53 + .../VpcRouterDeploymentDefinition.java | 37 +++--- .../RouterDeploymentDefinitionTest.java | 118 +-- .../VpcRouterDeploymentDefinitionTest.java | 7 +- 4 files changed, 137 insertions(+), 78 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f0cae57e/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java index ea22faf..09192d3 100644 --- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -302,6 +302,32 @@ public class RouterDeploymentDefinition { } /** + * It executes last pending tasks to prepare the deployment and checks the deployment + * can proceed. If it can't it return false + * + * @return if the deployment can proceed + */ +protected boolean prepareDeployment() { +boolean canProceed = true; +if (networkModel.isNetworkSystem(guestNetwork) || guestNetwork.getGuestType() == Network.GuestType.Shared) { +this.owner = accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM); +} + +// Check if public network has to be set on VR +this.isPublicNetwork = networkModel.isProviderSupportServiceInNetwork( +guestNetwork.getId(), Service.SourceNat, Provider.VirtualRouter); + +if (this.isRedundant && !this.isPublicNetwork) { +// TODO Shouldn't be this throw an exception instead of log error and empty list of routers +logger.error("Didn't support redundant virtual router without public network!"); +this.routers = new ArrayList<>(); +canProceed = false; +} + +return canProceed; +} + +/** * Executes preparation and deployment of the routers. After this method ends, {@link this#routers} * should have all of the deployed routers ready for start, and no more. * @@ -313,28 +339,13 @@ public class RouterDeploymentDefinition { throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException { //Check current redundant routers, if possible(all routers are stopped), reset the priority -// TODO Why shouldn't we call this method also for VPC -setupPriorityOfRedundantRouter(); +this.setupPriorityOfRedundantRouter(); -if (this.getNumberOfRoutersToDeploy() > 0) { -if (networkModel.isNetworkSystem(guestNetwork) || guestNetwork.getGuestType() == Network.GuestType.Shared) { -this.owner = accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM); -} - -// Check if public network has to be set on VR -this.isPublicNetwork = networkModel.isProviderSupportServiceInNetwork( -guestNetwork.getId(), Service.SourceNat, Provider.VirtualRouter); - -if (this.isRedundant && !this.isPublicNetwork) { -// TODO Shouldn't be this throw an exception instead of log error and empty list of routers -logger.error("Didn't support redundant virtual router without public network!"); -this.routers = new ArrayList<>(); -} else { -this.findVirtualProvider(); -this.findOfferingId(); -this.findSourceNatIP(); -this.deployAllVirtualRouters(); -} +if (this.getNumberOfRoutersToDeploy() > 0 && this.prepareDeployment()) { +this.findVirtualProvider(); +this.findOfferingId(); +this.findSourceNatIP(); +this.deployAllVirtualRouters(); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f0cae57e/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java -- diff --git a/server/src/o
[47/50] [abbrv] Applying the latest chances from the VPC Refactor branch onto the new one.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f79e7cdc/server/test/com/cloud/network/router/VirtualNetworkApplianceManagerImplTest.java -- diff --git a/server/test/com/cloud/network/router/VirtualNetworkApplianceManagerImplTest.java b/server/test/com/cloud/network/router/VirtualNetworkApplianceManagerImplTest.java index f1bd84b..a7fa5f0 100644 --- a/server/test/com/cloud/network/router/VirtualNetworkApplianceManagerImplTest.java +++ b/server/test/com/cloud/network/router/VirtualNetworkApplianceManagerImplTest.java @@ -1,32 +1,3 @@ -// 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.router; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.when; - -import java.util.LinkedHashMap; -import java.util.List; - -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; package com.cloud.network.router; import org.apache.cloudstack.framework.config.dao.ConfigurationDao; @@ -36,19 +7,10 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import com.cloud.cluster.dao.ManagementServerHostDao; -import com.cloud.dc.DataCenter; -import com.cloud.dc.DataCenter.NetworkType; -import com.cloud.dc.DataCenterVO; import com.cloud.dc.dao.ClusterDao; import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.HostPodDao; import com.cloud.dc.dao.VlanDao; -import com.cloud.deploy.DataCenterDeployment; -import com.cloud.deploy.DeployDestination; -import com.cloud.deploy.DeploymentPlan; -import com.cloud.host.dao.HostDao; -import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.network.Network; import com.cloud.host.dao.HostDao; import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.IPAddressDao; @@ -65,26 +27,6 @@ import com.cloud.network.dao.Site2SiteVpnGatewayDao; import com.cloud.network.dao.UserIpv6AddressDao; import com.cloud.network.dao.VirtualRouterProviderDao; import com.cloud.network.dao.VpnUserDao; -import com.cloud.network.element.VirtualRouterProviderVO; -import com.cloud.network.router.VirtualRouter.RedundantState; -import com.cloud.network.rules.dao.PortForwardingRulesDao; -import com.cloud.offerings.dao.NetworkOfferingDao; -import com.cloud.resource.ResourceManager; -import com.cloud.service.ServiceOfferingVO; -import com.cloud.service.dao.ServiceOfferingDao; -import com.cloud.storage.Storage.ProvisioningType; -import com.cloud.storage.VMTemplateVO; -import com.cloud.storage.dao.GuestOSDao; -import com.cloud.storage.dao.VMTemplateDao; -import com.cloud.storage.dao.VolumeDao; -import com.cloud.user.AccountManager; -import com.cloud.user.AccountVO; -import com.cloud.user.dao.UserDao; -import com.cloud.user.dao.UserStatisticsDao; -import com.cloud.user.dao.UserStatsLogDao; -import com.cloud.vm.DomainRouterVO; -import com.cloud.vm.NicProfile; -import com.cloud.vm.VirtualMachine; import com.cloud.network.rules.dao.PortForwardingRulesDao; import com.cloud.offerings.dao.NetworkOfferingDao; import com.cloud.service.dao.ServiceOfferingDao; @@ -104,7 +46,6 @@ import com.cloud.vm.dao.VMInstanceDao; @RunWith(MockitoJUnitRunner.class) public class VirtualNetworkApplianceManagerImplTest { - @Mock private ClusterDao _clusterDao; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f79e7cdc/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java -- diff --git a/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java b/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java index fa780c0..9fab707 100644 --- a/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java +++ b/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java @@ -35,11 +35,9 @@ import com.cloud.network.Network; import com.cloud.network.RemoteAccessVpn; import com.cloud.network.Site2SiteVpnConnection; import com.cloud.network.VpcVirtualNetworkApplianceService; -import com.cloud.network.VpnUser; import
[01/50] [abbrv] Deployment more OO - Objects with data and behavior
Repository: cloudstack Updated Branches: refs/heads/vpc-refactor [created] a8cb7c148 http://git-wip-us.apache.org/repos/asf/cloudstack/blob/09763596/server/src/com/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/com/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/com/cloud/network/router/deployment/RouterDeploymentDefinition.java new file mode 100644 index 000..5d740a4 --- /dev/null +++ b/server/src/com/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -0,0 +1,530 @@ +// 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.router.deployment; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import javax.inject.Inject; + +import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; +import org.apache.log4j.Logger; + +import com.cloud.dc.DataCenter.NetworkType; +import com.cloud.dc.HostPodVO; +import com.cloud.dc.Pod; +import com.cloud.dc.dao.HostPodDao; +import com.cloud.deploy.DataCenterDeployment; +import com.cloud.deploy.DeployDestination; +import com.cloud.deploy.DeploymentPlan; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientAddressCapacityException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.network.IpAddressManager; +import com.cloud.network.Network; +import com.cloud.network.Network.Provider; +import com.cloud.network.Network.Service; +import com.cloud.network.NetworkModel; +import com.cloud.network.Networks.BroadcastDomainType; +import com.cloud.network.Networks.IsolationType; +import com.cloud.network.Networks.TrafficType; +import com.cloud.network.PhysicalNetworkServiceProvider; +import com.cloud.network.VirtualRouterProvider; +import com.cloud.network.VirtualRouterProvider.Type; +import com.cloud.network.addr.PublicIp; +import com.cloud.network.dao.IPAddressDao; +import com.cloud.network.dao.NetworkDao; +import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; +import com.cloud.network.dao.UserIpv6AddressDao; +import com.cloud.network.dao.VirtualRouterProviderDao; +import com.cloud.network.router.NetworkGeneralHelper; +import com.cloud.network.router.VirtualNwStatus; +import com.cloud.network.router.VirtualRouter.Role; +import com.cloud.network.router.VpcVirtualNetworkHelperImpl; +import com.cloud.network.vpc.Vpc; +import com.cloud.offering.NetworkOffering; +import com.cloud.offerings.dao.NetworkOfferingDao; +import com.cloud.service.ServiceOfferingVO; +import com.cloud.user.Account; +import com.cloud.user.AccountManager; +import com.cloud.utils.Pair; +import com.cloud.utils.db.DB; +import com.cloud.utils.db.JoinBuilder; +import com.cloud.utils.db.SearchBuilder; +import com.cloud.utils.db.SearchCriteria; +import com.cloud.utils.exception.CloudRuntimeException; +import com.cloud.utils.net.NetUtils; +import com.cloud.vm.DomainRouterVO; +import com.cloud.vm.Nic; +import com.cloud.vm.NicProfile; +import com.cloud.vm.NicVO; +import com.cloud.vm.VMInstanceVO; +import com.cloud.vm.VirtualMachine; +import com.cloud.vm.VirtualMachineProfile.Param; +import com.cloud.vm.dao.DomainRouterDao; +import com.cloud.vm.dao.NicDao; +import com.cloud.vm.dao.VMInstanceDao; + +public class RouterDeploymentDefinition { +private static final Logger logger = Logger.getLogger(RouterDeploymentDefinition.class); + +protected NetworkDao networkDao; +protected DomainRouterDao routerDao; +protected PhysicalNetworkServiceProviderDao physicalProviderDao; +protected NetworkModel networkModel; +protected VirtualRouterProviderDao vrProviderDao; +protected NetworkOfferingDao networkOfferingDao; +protected IpAddressManager ipAddrMgr; +protected VMInstanceDao vmDao; +protected HostPodDao podDao; +protected AccountManager accountMgr; +protected NetworkOrchestrationService networkMgr; +protected NicDao nicDao; +protected UserIpv6AddressDao ipv6Dao; +protected IPAddressDao ipAddr
[34/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
fixing nic plug unplug rule Conflicts: server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/00e3af45 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/00e3af45 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/00e3af45 Branch: refs/heads/vpc-refactor Commit: 00e3af45847e2aa7b51c90d97391176632f03976 Parents: bb66060 Author: wrodrigues Authored: Mon Aug 25 20:35:07 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../network/router/CommandSetupHelper.java | 259 ++- .../cloud/network/rules/NicPlugInOutRules.java | 99 +++ .../network/topology/BasicNetworkVisitor.java | 10 +- 3 files changed, 190 insertions(+), 178 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/00e3af45/server/src/com/cloud/network/router/CommandSetupHelper.java -- diff --git a/server/src/com/cloud/network/router/CommandSetupHelper.java b/server/src/com/cloud/network/router/CommandSetupHelper.java index 124ed54..798bcfb 100644 --- a/server/src/com/cloud/network/router/CommandSetupHelper.java +++ b/server/src/com/cloud/network/router/CommandSetupHelper.java @@ -195,7 +195,7 @@ public class CommandSetupHelper { final List addUsers = new ArrayList(); final List removeUsers = new ArrayList(); for (final VpnUser user : users) { -if (user.getState() == VpnUser.State.Add || user.getState() == VpnUser.State.Active) { +if ((user.getState() == VpnUser.State.Add) || (user.getState() == VpnUser.State.Active)) { addUsers.add(user); } else if (user.getState() == VpnUser.State.Revoke) { removeUsers.add(user); @@ -213,12 +213,12 @@ public class CommandSetupHelper { } public void createDhcpEntryCommand(final VirtualRouter router, final UserVm vm, final NicVO nic, final Commands cmds) { -final DhcpEntryCommand dhcpCommand = -new DhcpEntryCommand(nic.getMacAddress(), nic.getIp4Address(), vm.getHostName(), nic.getIp6Address(), _networkModel.getExecuteInSeqNtwkElmtCmd()); +final DhcpEntryCommand dhcpCommand = new DhcpEntryCommand(nic.getMacAddress(), nic.getIp4Address(), vm.getHostName(), nic.getIp6Address(), +_networkModel.getExecuteInSeqNtwkElmtCmd()); final DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); final Nic defaultNic = findGatewayIp(vm.getId()); String gatewayIp = defaultNic.getGateway(); -if (gatewayIp != null && !gatewayIp.equals(nic.getGateway())) { +if ((gatewayIp != null) && !gatewayIp.equals(nic.getGateway())) { gatewayIp = "0.0.0.0"; } dhcpCommand.setDefaultRouter(gatewayIp); @@ -269,8 +269,8 @@ public class CommandSetupHelper { for (final NicIpAliasVO ipAliasVO : ipAliasVOList) { final DhcpTO DhcpTO = new DhcpTO(ipAliasVO.getIp4Address(), ipAliasVO.getGateway(), ipAliasVO.getNetmask(), ipAliasVO.getStartIpOfSubnet()); if (s_logger.isTraceEnabled()) { -s_logger.trace("configDnsMasq : adding ip {" + DhcpTO.getGateway() + ", " + DhcpTO.getNetmask() + ", " + DhcpTO.getRouterIp() + ", " + -DhcpTO.getStartIpOfSubnet() + "}"); +s_logger.trace("configDnsMasq : adding ip {" + DhcpTO.getGateway() + ", " + DhcpTO.getNetmask() + ", " + DhcpTO.getRouterIp() + ", " + DhcpTO.getStartIpOfSubnet() ++ "}"); } ipList.add(DhcpTO); ipAliasVO.setVmId(router.getId()); @@ -307,13 +307,15 @@ public class CommandSetupHelper { if (router instanceof DomainRouterVO) { final DomainRouterVO domr = _routerDao.findById(router.getId()); routerPublicIp = domr.getPublicIpAddress(); +if (routerPublicIp == null) { +routerPublicIp = router.getPublicIpAddress(); +} } final Network guestNetwork = _networkModel.getNetwork(guestNetworkId); final Nic nic = _nicDao.findByNtwkIdAndInstanceId(guestNetwork.getId(), router.getId()); -final NicProfile nicProfile = -new NicProfile(nic, guestNetwork, nic.getBroadcastUri(), nic.getIsolationUri(), _networkModel.getNetworkRate(guestNetwork.getId(), router.getId()), - _networkModel.isSecurityGroupSupportedInNetwork(guestNetwork), _networkModel.getNetworkTag(router.getHypervisorType(), guestNetwork)); +final NicProfile nicProfile = new NicProfile(nic, guestNetwork, nic.getBroadcastUri(), nic.getIsolationUri
[18/50] [abbrv] Refactor to include network creation as actual deployment
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a515d6c3/server/src/com/cloud/network/router/NetworkHelperImpl.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java new file mode 100644 index 000..bcebcd7 --- /dev/null +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -0,0 +1,820 @@ +// 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.router; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import javax.ejb.Local; +import javax.inject.Inject; + +import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; +import org.apache.log4j.Logger; +import org.cloud.network.router.deployment.RouterDeploymentDefinition; +import org.springframework.stereotype.Component; + +import com.cloud.agent.AgentManager; +import com.cloud.agent.api.Answer; +import com.cloud.agent.api.BumpUpPriorityCommand; +import com.cloud.agent.api.routing.NetworkElementCommand; +import com.cloud.agent.api.to.NicTO; +import com.cloud.agent.manager.Commands; +import com.cloud.alert.AlertManager; +import com.cloud.dc.ClusterVO; +import com.cloud.dc.DataCenter; +import com.cloud.dc.Pod; +import com.cloud.dc.dao.ClusterDao; +import com.cloud.deploy.DataCenterDeployment; +import com.cloud.deploy.DeployDestination; +import com.cloud.deploy.DeploymentPlan; +import com.cloud.deploy.DeploymentPlanner.ExcludeList; +import com.cloud.exception.AgentUnavailableException; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientAddressCapacityException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.InsufficientServerCapacityException; +import com.cloud.exception.OperationTimedoutException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.exception.StorageUnavailableException; +import com.cloud.host.HostVO; +import com.cloud.host.Status; +import com.cloud.host.dao.HostDao; +import com.cloud.hypervisor.Hypervisor.HypervisorType; +import com.cloud.maint.Version; +import com.cloud.network.IpAddressManager; +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.Networks.TrafficType; +import com.cloud.network.VirtualNetworkApplianceService; +import com.cloud.network.addr.PublicIp; +import com.cloud.network.dao.IPAddressDao; +import com.cloud.network.dao.NetworkDao; +import com.cloud.network.dao.NetworkVO; +import com.cloud.network.dao.UserIpv6AddressDao; +import com.cloud.network.router.VirtualRouter.RedundantState; +import com.cloud.network.router.VirtualRouter.Role; +import com.cloud.network.vpn.Site2SiteVpnManager; +import com.cloud.offering.NetworkOffering; +import com.cloud.resource.ResourceManager; +import com.cloud.service.ServiceOfferingVO; +import com.cloud.service.dao.ServiceOfferingDao; +import com.cloud.storage.VMTemplateVO; +import com.cloud.storage.Volume; +import com.cloud.storage.VolumeVO; +import com.cloud.storage.dao.VMTemplateDao; +import com.cloud.storage.dao.VolumeDao; +import com.cloud.user.Account; +import com.cloud.user.AccountManager; +import com.cloud.user.User; +import com.cloud.utils.exception.CloudRuntimeException; +import com.cloud.utils.net.NetUtils; +import com.cloud.vm.DomainRouterVO; +import com.cloud.vm.Nic; +import com.cloud.vm.NicProfile; +import com.cloud.vm.NicVO; +import com.cloud.vm.VirtualMachine.State; +import com.cloud.vm.VirtualMachineManager; +import com.cloud.vm.VirtualMachineName; +import com.cloud.vm.VirtualMachineProfile.Param; +import com.cloud.vm.dao.DomainRouterDao; +import com.cloud.vm.dao.NicDao; + +@Component +//This will not be a public service anymore, but a helper for the only public service +@Local(value = {NetworkHelperImpl.class}) +public class NetworkHelperImpl implements NetworkHelper { + +private static final Logger s_logger = Logger.getLo
[07/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
removing bean from the xml Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ea34c11d Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ea34c11d Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ea34c11d Branch: refs/heads/vpc-refactor Commit: ea34c11d83e1d3392db53635c40aa40eed6129ac Parents: 83a2cd9 Author: Wilder Rodrigues Authored: Thu Jul 17 09:55:10 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../cloudstack/core/spring-server-core-managers-context.xml | 4 1 file changed, 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ea34c11d/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml -- diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml index 6459ddb..b6cfa16 100644 --- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml +++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml @@ -209,10 +209,6 @@ - - -
[15/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Increasing test coverage for Vpc Deployment Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9289f310 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9289f310 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9289f310 Branch: refs/heads/vpc-refactor Commit: 9289f3109167e29a307cded290f572139d19e62c Parents: f0cae57 Author: Antonio Fornie Authored: Tue Jul 29 09:20:33 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../deployment/RouterDeploymentDefinition.java | 12 +- .../VpcRouterDeploymentDefinition.java | 4 +- .../RouterDeploymentDefinitionTest.java | 201 +++ .../RouterDeploymentDefinitionTestBase.java | 5 +- .../VpcRouterDeploymentDefinitionTest.java | 65 +- 5 files changed, 147 insertions(+), 140 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9289f310/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java index 09192d3..c8742be 100644 --- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -301,6 +301,12 @@ public class RouterDeploymentDefinition { 0 : routersExpected - this.routers.size(); } +protected void setupAccountOwner() { +if (networkModel.isNetworkSystem(guestNetwork) || guestNetwork.getGuestType() == Network.GuestType.Shared) { +this.owner = accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM); +} +} + /** * It executes last pending tasks to prepare the deployment and checks the deployment * can proceed. If it can't it return false @@ -308,15 +314,13 @@ public class RouterDeploymentDefinition { * @return if the deployment can proceed */ protected boolean prepareDeployment() { -boolean canProceed = true; -if (networkModel.isNetworkSystem(guestNetwork) || guestNetwork.getGuestType() == Network.GuestType.Shared) { -this.owner = accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM); -} +this.setupAccountOwner(); // Check if public network has to be set on VR this.isPublicNetwork = networkModel.isProviderSupportServiceInNetwork( guestNetwork.getId(), Service.SourceNat, Provider.VirtualRouter); +boolean canProceed = true; if (this.isRedundant && !this.isPublicNetwork) { // TODO Shouldn't be this throw an exception instead of log error and empty list of routers logger.error("Didn't support redundant virtual router without public network!"); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9289f310/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java index a1e1bc4..8ec05d6 100644 --- a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java @@ -116,7 +116,7 @@ public class VpcRouterDeploymentDefinition extends RouterDeploymentDefinition { @Override protected int getNumberOfRoutersToDeploy() { // TODO Should we make our changes here in order to enable Redundant Router for VPC? -return 1 - this.routers.size(); +return this.routers.isEmpty() ? 1 : 0; } /** @@ -144,8 +144,6 @@ public class VpcRouterDeploymentDefinition extends RouterDeploymentDefinition { protected void findVirtualProvider() { List pNtwks = pNtwkDao.listByZone(vpc.getZoneId()); -this.vrProvider = null; - for (PhysicalNetwork pNtwk : pNtwks) { PhysicalNetworkServiceProvider provider = physicalProviderDao.findByServiceProvider(pNtwk.getId(), Type.VPCVirtualRouter.toString()); if (provider == null) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9289f310/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java -- diff --git a/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java b/server/test/org/cloud/network/router/deployment/RouterDe
[24/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Complete tests for normal deployment and start vpc one Conflicts: server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/eff9b8d5 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/eff9b8d5 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/eff9b8d5 Branch: refs/heads/vpc-refactor Commit: eff9b8d5708780db17f2cb506b008b0bb959b557 Parents: 3008ce3 Author: Antonio Fornie Authored: Mon Jul 28 08:09:48 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../core/spring-server-core-misc-context.xml| 4 + .../spring-server-network-context.xml | 4 + .../network/element/VirtualRouterElement.java | 2 +- .../network/router/NetworkGeneralHelper.java| 255 +-- .../deployment/RouterDeploymentDefinition.java | 140 +- .../RouterDeploymentDefinitionBuilder.java | 6 +- .../VpcRouterDeploymentDefinition.java | 93 +-- .../element/VirtualRouterElementTest.java | 10 +- .../RouterDeploymentDefinitionTest.java | 129 ++ .../RouterDeploymentDefinitionTestBase.java | 130 ++ .../VpcRouterDeploymentDefinitionTest.java | 81 +- 11 files changed, 510 insertions(+), 344 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eff9b8d5/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml -- diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml index 479dc9c..d3f020e 100644 --- a/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml +++ b/server/resources/META-INF/cloudstack/core/spring-server-core-misc-context.xml @@ -37,6 +37,10 @@ + + + + http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eff9b8d5/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml -- diff --git a/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml b/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml index 553ae44..831ca1f 100644 --- a/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml +++ b/server/resources/META-INF/cloudstack/server-network/spring-server-network-context.xml @@ -61,4 +61,8 @@ + + + + http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eff9b8d5/server/src/com/cloud/network/element/VirtualRouterElement.java -- diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index 0fd22bd..83153fa 100755 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -162,7 +162,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl NetworkTopologyContext networkTopologyContext; @Inject -private RouterDeploymentDefinitionBuilder routerDeploymentDefinitionBuilder; +protected RouterDeploymentDefinitionBuilder routerDeploymentDefinitionBuilder; protected boolean canHandle(final Network network, final Service service) { Long physicalNetworkId = _networkMdl.getPhysicalNetworkId(network); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eff9b8d5/server/src/com/cloud/network/router/NetworkGeneralHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkGeneralHelper.java b/server/src/com/cloud/network/router/NetworkGeneralHelper.java index dd90bef..314cbc0 100644 --- a/server/src/com/cloud/network/router/NetworkGeneralHelper.java +++ b/server/src/com/cloud/network/router/NetworkGeneralHelper.java @@ -17,16 +17,19 @@ package com.cloud.network.router; import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.TreeSet; import javax.inject.Inject; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.log4j.Logger; import org.cloud.network.router.deployment.RouterDeploymentDefinition; +import org.cloud.network.router.deployment.VpcRouterDeploymentDefinition; import com.cloud.agent.A
[42/50] [abbrv] refactor all private methods in the virtual router appliance and VPC appliance
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bc90ce08/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java -- diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index db1c9e6..40f95b0 100644 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -21,8 +21,6 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; -import java.util.Collections; -import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -81,30 +79,11 @@ import com.cloud.agent.api.StartupCommand; import com.cloud.agent.api.check.CheckSshCommand; import com.cloud.agent.api.routing.AggregationControlCommand; import com.cloud.agent.api.routing.AggregationControlCommand.Action; -import com.cloud.agent.api.routing.CreateIpAliasCommand; -import com.cloud.agent.api.routing.DeleteIpAliasCommand; -import com.cloud.agent.api.routing.DhcpEntryCommand; -import com.cloud.agent.api.routing.DnsMasqConfigCommand; import com.cloud.agent.api.routing.GetRouterAlertsCommand; import com.cloud.agent.api.routing.IpAliasTO; -import com.cloud.agent.api.routing.IpAssocCommand; -import com.cloud.agent.api.routing.LoadBalancerConfigCommand; import com.cloud.agent.api.routing.NetworkElementCommand; -import com.cloud.agent.api.routing.RemoteAccessVpnCfgCommand; -import com.cloud.agent.api.routing.SetFirewallRulesCommand; import com.cloud.agent.api.routing.SetMonitorServiceCommand; -import com.cloud.agent.api.routing.SetPortForwardingRulesCommand; -import com.cloud.agent.api.routing.SetPortForwardingRulesVpcCommand; -import com.cloud.agent.api.routing.SetStaticNatRulesCommand; -import com.cloud.agent.api.routing.VmDataCommand; -import com.cloud.agent.api.routing.VpnUsersCfgCommand; -import com.cloud.agent.api.to.DhcpTO; -import com.cloud.agent.api.to.FirewallRuleTO; -import com.cloud.agent.api.to.IpAddressTO; -import com.cloud.agent.api.to.LoadBalancerTO; import com.cloud.agent.api.to.MonitorServiceTO; -import com.cloud.agent.api.to.PortForwardingRuleTO; -import com.cloud.agent.api.to.StaticNatRuleTO; import com.cloud.agent.manager.Commands; import com.cloud.alert.AlertManager; import com.cloud.api.ApiAsyncJobDispatcher; @@ -155,8 +134,6 @@ import com.cloud.network.Site2SiteVpnConnection; import com.cloud.network.SshKeysDistriMonitor; import com.cloud.network.VirtualNetworkApplianceService; import com.cloud.network.VirtualRouterProvider; -import com.cloud.network.VpnUser; -import com.cloud.network.VpnUserVO; import com.cloud.network.addr.PublicIp; import com.cloud.network.dao.FirewallRulesDao; import com.cloud.network.dao.IPAddressDao; @@ -189,7 +166,6 @@ import com.cloud.network.router.VirtualRouter.RedundantState; import com.cloud.network.router.VirtualRouter.Role; import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.FirewallRule.Purpose; -import com.cloud.network.rules.FirewallRuleVO; import com.cloud.network.rules.LoadBalancerContainer.Scheme; import com.cloud.network.rules.PortForwardingRule; import com.cloud.network.rules.RulesManager; @@ -200,13 +176,11 @@ import com.cloud.network.rules.dao.PortForwardingRulesDao; import com.cloud.network.vpn.Site2SiteVpnManager; import com.cloud.offering.NetworkOffering; import com.cloud.offering.ServiceOffering; -import com.cloud.offerings.NetworkOfferingVO; import com.cloud.offerings.dao.NetworkOfferingDao; import com.cloud.resource.ResourceManager; import com.cloud.server.ConfigurationServer; import com.cloud.service.ServiceOfferingVO; import com.cloud.service.dao.ServiceOfferingDao; -import com.cloud.storage.GuestOSVO; import com.cloud.storage.Storage.ProvisioningType; import com.cloud.storage.dao.GuestOSDao; import com.cloud.storage.dao.VMTemplateDao; @@ -220,9 +194,7 @@ import com.cloud.user.UserVO; import com.cloud.user.dao.UserDao; import com.cloud.user.dao.UserStatisticsDao; import com.cloud.user.dao.UserStatsLogDao; -import com.cloud.uservm.UserVm; import com.cloud.utils.NumbersUtil; -import com.cloud.utils.StringUtils; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; @@ -247,7 +219,6 @@ import com.cloud.vm.NicProfile; import com.cloud.vm.NicVO; import com.cloud.vm.ReservationContext; import com.cloud.vm.ReservationContextImpl; -import com.cloud.vm.UserVmVO; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachineGuru; @@ -387,6 +358,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V @Inject protected N
[37/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Fix: VpcRouter has always PublicIp setup as it did before refactoring Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/961e7156 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/961e7156 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/961e7156 Branch: refs/heads/vpc-refactor Commit: 961e71562bc7621ff7ae9c6d6ba9dd32a58e093a Parents: a18e01c Author: Antonio Fornie Authored: Wed Aug 27 19:39:53 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../router/deployment/VpcRouterDeploymentDefinition.java| 5 + 1 file changed, 5 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/961e7156/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java index 8e8a6ea..acd764b 100644 --- a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java @@ -71,6 +71,11 @@ public class VpcRouterDeploymentDefinition extends RouterDeploymentDefinition { } @Override +public boolean isPublicNetwork() { +return true; +} + +@Override protected void lock() { Vpc vpcLock = vpcDao.acquireInLockTable(vpc.getId()); if (vpcLock == null) {
[44/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
removing the root password becuase it was breaking the simulator tests. Root password must always be empty Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/13ccdcb0 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/13ccdcb0 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/13ccdcb0 Branch: refs/heads/vpc-refactor Commit: 13ccdcb0ce008661c5d3e0968540bf4a3d1393f5 Parents: 3ba8599 Author: wrodrigues Authored: Tue Sep 2 19:36:29 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- utils/conf/db.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/13ccdcb0/utils/conf/db.properties -- diff --git a/utils/conf/db.properties b/utils/conf/db.properties index 09a88c3..cdd2909 100644 --- a/utils/conf/db.properties +++ b/utils/conf/db.properties @@ -27,7 +27,7 @@ region.id=1 # CloudStack database settings db.cloud.username=cloud db.cloud.password=cloud -db.root.password=changeme +db.root.password= db.cloud.host=localhost db.cloud.port=3306 db.cloud.name=cloud
[12/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
fixing VPC IP Association and ACL rules. Have to rewrite in a better why the apply rules method in the Advanced Topology Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6e2cb083 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6e2cb083 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6e2cb083 Branch: refs/heads/vpc-refactor Commit: 6e2cb083758c4e7f2cbe65d07b41bdedfe0a5d85 Parents: acc3f23 Author: Wilder Rodrigues Authored: Fri Jul 18 16:50:47 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../VpcVirtualNetworkApplianceManagerImpl.java | 7 -- .../cloud/network/rules/NicPlugInOutRules.java | 2 +- .../rules/VirtualNetworkApplianceFactory.java | 4 +- .../network/rules/VpcIpAssociationRules.java| 9 +- .../topology/AdvancedNetworkTopology.java | 110 ++- .../topology/AdvancedNetworkVisitor.java| 5 +- 6 files changed, 116 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6e2cb083/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java -- diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index 9d11d12..6a4376c 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -397,13 +397,6 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian return super.finalizeVirtualMachineProfile(profile, dest, context); } -protected boolean sendNetworkACLs(final VirtualRouter router, final List rules, final long guestNetworkId, final boolean isPrivateGateway) -throws ResourceUnavailableException { -Commands cmds = new Commands(Command.OnError.Continue); -createNetworkACLsCommands(rules, router, cmds, guestNetworkId, isPrivateGateway); -return sendCommandsToRouter(router, cmds); -} - private void createNetworkACLsCommands(final List rules, final VirtualRouter router, final Commands cmds, final long guestNetworkId, final boolean privateGateway) { List rulesTO = new ArrayList(); String guestVlan = null; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6e2cb083/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 f4be96f..b96e2b1 100644 --- a/server/src/com/cloud/network/rules/NicPlugInOutRules.java +++ b/server/src/com/cloud/network/rules/NicPlugInOutRules.java @@ -127,7 +127,7 @@ public class NicPlugInOutRules extends RuleApplier { } } -// Let the IpAssociationRule call the visitor fot the NicPlugInOutRule +// The visit will be done from the AdvancedNetworkTopology, after the VpcIpAssociation is done. return true; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6e2cb083/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 32f61ce..356f3bb 100644 --- a/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java +++ b/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java @@ -158,8 +158,8 @@ public class VirtualNetworkApplianceFactory { return ipAssociationRules; } -public VpcIpAssociationRules createVpcIpAssociationRules(final Network network, final List ipAddresses, final NicPlugInOutRules nicPlugInOutRules) { -VpcIpAssociationRules ipAssociationRules = new VpcIpAssociationRules(network, ipAddresses, nicPlugInOutRules); +public VpcIpAssociationRules createVpcIpAssociationRules(final Network network, final List ipAddresses) { +VpcIpAssociationRules ipAssociationRules = new VpcIpAssociationRules(network, ipAddresses); initBeans(ipAssociationRules); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6e2cb083/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 bcda360..e3c9be
[10/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
RouterDeployment and VPC. Improving code and Unit Testing Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3f021625 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3f021625 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3f021625 Branch: refs/heads/vpc-refactor Commit: 3f021625a2c4b6626e6e79ecc870d343bd7186ee Parents: 7064415 Author: Antonio Fornie Authored: Wed Jul 23 07:48:07 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../deployment/RouterDeploymentDefinition.java | 33 +- .../RouterDeploymentDefinitionBuilder.java | 2 +- .../VpcRouterDeploymentDefinition.java | 62 +--- .../RouterDeploymentDefinitionTest.java | 363 +++ .../VpcRouterDeploymentDefinitionTest.java | 52 +++ 5 files changed, 427 insertions(+), 85 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3f021625/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java -- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java index 01fc774..a5e3ec7 100644 --- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java @@ -129,7 +129,7 @@ public class RouterDeploymentDefinition { this.isRedundant = isRedundant; } -public void setOffering(ServiceOfferingVO offering) { +protected void setOffering(ServiceOfferingVO offering) { this.offering = offering; } public Vpc getVpc() { @@ -138,37 +138,21 @@ public class RouterDeploymentDefinition { public Network getGuestNetwork() { return guestNetwork; } -public void setGuestNetwork(final Network guestNetwork) { -this.guestNetwork = guestNetwork; -} public DeployDestination getDest() { return dest; } -public void setDest(final DeployDestination dest) { -this.dest = dest; -} public Account getOwner() { return owner; } -public void setOwner(final Account owner) { -this.owner = owner; -} public Map getParams() { return params; } -public void setParams(final Map params) { -this.params = params; -} public boolean isRedundant() { return isRedundant; } -public void setRedundant(final boolean isRedundant) { -this.isRedundant = isRedundant; -} public DeploymentPlan getPlan() { return plan; } - public boolean isVpcRouter() { return false; } @@ -178,13 +162,9 @@ public class RouterDeploymentDefinition { public Long getPodId() { return dest.getPod() == null ? null : dest.getPod().getId(); } - public List getRouters() { return routers; } -public void setRouters(List routers) { -this.routers = routers; -} public boolean isBasic() { return this.dest.getDataCenter().getNetworkType() == NetworkType.Basic; @@ -194,7 +174,7 @@ public class RouterDeploymentDefinition { return offering == null ? null : offering.getId(); } -public void generateDeploymentPlan() { +protected void generateDeploymentPlan() { final long dcId = this.dest.getDataCenter().getId(); Long podId = null; if (this.isBasic()) { @@ -229,7 +209,7 @@ public class RouterDeploymentDefinition { this.dest = destination; this.planDeploymentRouters(); this.generateDeploymentPlan(); -this.proceedEffectiveDeployment(); +this.executeDeployment(); } } finally { this.unlock(); @@ -284,7 +264,10 @@ public class RouterDeploymentDefinition { final long podId = pod.getId(); final List virtualRouters = routerDao.listByPodIdAndStates(podId, VirtualMachine.State.Starting, VirtualMachine.State.Running); -assert (virtualRouters.size() <= 1) : "Pod can have utmost one VR in Basic Zone, please check!"; +if (virtualRouters.size() > 1) { +// FIXME Find or create a better and more specific exception for this +throw new CloudRuntimeException("Pod can have utmost one VR in Basic Zone, please check!"); +} // Add virtualRouters to the routers, this avoids the situation when // all routers are skipped and VirtualRouterElement throws exception @@ -305,7 +288,7 @@ public class Rout
[33/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Adding fixes for the add user data and vpn rules Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7ad7c568 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7ad7c568 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7ad7c568 Branch: refs/heads/vpc-refactor Commit: 7ad7c568d85ded95d2b4001ad924c0ae85c57697 Parents: 70bd734 Author: Wilder Rodrigues Authored: Mon Sep 8 17:30:01 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../cloud/network/element/VpcVirtualRouterElement.java | 4 ++-- .../src/com/cloud/network/router/CommandSetupHelper.java | 11 ++- .../network/rules/VirtualNetworkApplianceFactory.java| 1 + 3 files changed, 13 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ad7c568/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 b6b5ccf..4a29fd1 100644 --- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java @@ -576,8 +576,8 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc return null; } -Network network = _networkDao.findById(vpn.getNetworkId()); -DataCenterVO dcVO = _dcDao.findById(network.getDataCenterId()); +Vpc vpc = _entityMgr.findById(Vpc.class, vpn.getVpcId()); +DataCenterVO dcVO = _dcDao.findById(vpc.getZoneId()); NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO); return networkTopology.applyVpnUsers(vpn, users, routers.get(0)); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ad7c568/server/src/com/cloud/network/router/CommandSetupHelper.java -- diff --git a/server/src/com/cloud/network/router/CommandSetupHelper.java b/server/src/com/cloud/network/router/CommandSetupHelper.java index 92a3bb1..df5ad48 100644 --- a/server/src/com/cloud/network/router/CommandSetupHelper.java +++ b/server/src/com/cloud/network/router/CommandSetupHelper.java @@ -657,8 +657,17 @@ public class CommandSetupHelper { final IpAddress ip = _networkModel.getIp(vpn.getServerAddressId()); +// This block is needed due to the line 206 of the +// RemoteAccessVpnManagenerImpl: +// TODO: assumes one virtual network / domr per account per zone +final String cidr; final Network network = _networkDao.findById(vpn.getNetworkId()); -final String cidr = network.getCidr(); +if (network == null) { +Vpc vpc = _vpcDao.findById(vpn.getVpcId()); +cidr = vpc.getCidr(); +} else { +cidr = network.getCidr(); +} final RemoteAccessVpnCfgCommand startVpnCmd = new RemoteAccessVpnCfgCommand(isCreate, ip.getAddress().addr(), vpn.getLocalIp(), vpn.getIpRange(), vpn.getIpsecPresharedKey(), vpn.getVpcId() != null); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ad7c568/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 a1944e0..5a551f0 100644 --- a/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java +++ b/server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java @@ -273,6 +273,7 @@ public class VirtualNetworkApplianceFactory { AdvancedVpnRules vpnRules = new AdvancedVpnRules(remoteAccessVpn, users); initBeans(vpnRules); +vpnRules._vpcDao = _vpcDao; return vpnRules; }
[06/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
adding new bean to spring context file; renaming package from "com" to "org" Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6852f312 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6852f312 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6852f312 Branch: refs/heads/vpc-refactor Commit: 6852f312716fe400483714662e5589994517ccb7 Parents: ea34c11 Author: Wilder Rodrigues Authored: Thu Jul 17 10:00:02 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:26 2014 +0200 -- .../spring-server-core-managers-context.xml | 3 + .../network/element/VirtualRouterElement.java | 4 +- .../element/VpcVirtualRouterElement.java| 81 +-- .../network/router/NetworkGeneralHelper.java| 2 +- .../VirtualNetworkApplianceManagerImpl.java | 2 +- .../deployment/RouterDeploymentDefinition.java | 530 --- .../RouterDeploymentDefinitionBuilder.java | 188 --- .../VpcRouterDeploymentDefinition.java | 241 - .../deployment/RouterDeploymentDefinition.java | 530 +++ .../RouterDeploymentDefinitionBuilder.java | 188 +++ .../VpcRouterDeploymentDefinition.java | 241 + 11 files changed, 1009 insertions(+), 1001 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6852f312/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml -- diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml index b6cfa16..37004d2 100644 --- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml +++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml @@ -209,6 +209,9 @@ + + http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6852f312/server/src/com/cloud/network/element/VirtualRouterElement.java -- diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index 0ea6c18..4481a20 100755 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -34,6 +34,8 @@ import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.network.topology.NetworkTopology; import org.apache.cloudstack.network.topology.NetworkTopologyContext; import org.apache.log4j.Logger; +import org.cloud.network.router.deployment.RouterDeploymentDefinition; +import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder; import com.cloud.agent.api.to.LoadBalancerTO; import com.cloud.configuration.ConfigurationManager; @@ -75,8 +77,6 @@ import com.cloud.network.lb.LoadBalancingRulesManager; import com.cloud.network.router.VirtualRouter; import com.cloud.network.router.VirtualRouter.Role; import com.cloud.network.router.VpcVirtualNetworkApplianceManager; -import com.cloud.network.router.deployment.RouterDeploymentDefinition; -import com.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder; import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.LbStickinessMethod; import com.cloud.network.rules.LbStickinessMethod.StickinessMethodType; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6852f312/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 77346c8..c1bfb9f 100644 --- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java @@ -24,9 +24,13 @@ import java.util.Set; import javax.ejb.Local; import javax.inject.Inject; +import org.apache.cloudstack.network.topology.NetworkTopology; import org.apache.log4j.Logger; +import org.cloud.network.router.deployment.RouterDeploymentDefinition; +import org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder; import com.cloud.dc.DataCenter; +import com.cloud.dc.DataCenterVO; import com.cloud.deploy.DeployDestination; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientCapacityException; @@ -50,8 +54,6 @@ import com.cloud.network.dao.Site2SiteVpnGatewayDao; import com.cloud.network.router.VirtualRouter; import com.cloud.network.router.V
[39/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Missing license headers Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/085bbb71 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/085bbb71 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/085bbb71 Branch: refs/heads/vpc-refactor Commit: 085bbb71b2cbe786d883132c932c1885d96fdfb0 Parents: 8061c5c Author: Antonio Fornie Authored: Thu Aug 21 03:45:45 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../src/com/cloud/network/router/NetworkHelper.java | 16 .../com/cloud/network/router/NicProfileHelper.java | 16 2 files changed, 32 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/085bbb71/server/src/com/cloud/network/router/NetworkHelper.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelper.java b/server/src/com/cloud/network/router/NetworkHelper.java index 01beb91..5cfae8e 100644 --- a/server/src/com/cloud/network/router/NetworkHelper.java +++ b/server/src/com/cloud/network/router/NetworkHelper.java @@ -1,3 +1,19 @@ +// 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.router; import java.util.List; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/085bbb71/server/src/com/cloud/network/router/NicProfileHelper.java -- diff --git a/server/src/com/cloud/network/router/NicProfileHelper.java b/server/src/com/cloud/network/router/NicProfileHelper.java index e75fa9a..12f3038 100644 --- a/server/src/com/cloud/network/router/NicProfileHelper.java +++ b/server/src/com/cloud/network/router/NicProfileHelper.java @@ -1,3 +1,19 @@ +// 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.router; import com.cloud.network.Network;
[30/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
fix dhcp subnet rules. we can create VMs again. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/bb66060c Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/bb66060c Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/bb66060c Branch: refs/heads/vpc-refactor Commit: bb66060c4046e1b4c030ac3dec3e94c77fbf0052 Parents: 34f2863 Author: wrodrigues Authored: Sat Aug 23 14:10:46 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:28 2014 +0200 -- .../cloud/network/rules/DhcpSubNetRules.java| 39 +--- 1 file changed, 17 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bb66060c/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 37b3857..ec99f44 100644 --- a/server/src/com/cloud/network/rules/DhcpSubNetRules.java +++ b/server/src/com/cloud/network/rules/DhcpSubNetRules.java @@ -73,17 +73,20 @@ public class DhcpSubNetRules extends RuleApplier { final UserVmVO vm = _userVmDao.findById(_profile.getId()); _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()), VirtualMachine.Type.DomainRouter); -//check if the router ip address and the vm ip address belong to same subnet. -//if they do not belong to same netwoek check for the alias ips. if not create one. -// This should happen only in case of Basic and Advanced SG enabled networks. +// check if this is not the primary subnet. +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. +// if they do not belong to same netwoek check for the alias ips. if not +// 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 aliasIps = _nicIpAliasDao.listByNetworkIdAndState(domr_guest_nic.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. +// check if any of the alias ips belongs to the Vm's subnet. if (NetUtils.sameSubnet(alias.getIp4Address(), _nic.getIp4Address(), _nic.getNetmask())) { ipInVmsubnet = true; break; @@ -94,7 +97,7 @@ public class DhcpSubNetRules extends RuleApplier { final DataCenter dc = _dcDao.findById(router.getDataCenterId()); if (ipInVmsubnet == false) { try { -if (_network.getTrafficType() == TrafficType.Guest && _network.getGuestType() == GuestType.Shared) { +if ((_network.getTrafficType() == TrafficType.Guest) && (_network.getGuestType() == GuestType.Shared)) { _podDao.findById(vm.getPodIdToDeployIn()); final Account caller = CallContext.current().getCallingAccount(); final List vlanList = _vlanDao.listVlansByNetworkIdAndGateway(_network.getId(), _nic.getGateway()); @@ -103,13 +106,11 @@ 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, -vlanDbIdList, _nic.getNetworkId(), null, false); +routerPublicIP = _ipAddrMgr.assignPublicIpAddressFromVlans(router.getDataCenterId(), vm.getPodIdToDeployIn(), caller, Vlan.VlanType.DirectAttached, +vlanDbIdList, _nic.getNetworkId(), null, false); } else { -routerPublicIP = - _ipAddrMgr.assignPublicIpAddressFromVlans(router.getDataC
[25/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Refactor and test NetworkHelper#sendCommandsToRouterWithNoAnswers Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8061c5ca Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8061c5ca Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8061c5ca Branch: refs/heads/vpc-refactor Commit: 8061c5cadbbda6ce51b30d55ca36de7efe35b961 Parents: 51ce935 Author: Antonio Fornie Authored: Thu Aug 21 03:31:02 2014 -0500 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:27 2014 +0200 -- .../spring-server-core-managers-context.xml | 3 - .../cloud/network/router/NetworkHelperImpl.java | 18 +-- .../network/router/RouterControlHelper.java | 2 +- .../VpcVirtualNetworkApplianceManagerImpl.java | 8 +- .../topology/AdvancedNetworkTopology.java | 1 + .../network/topology/BasicNetworkTopology.java | 1 + .../network/router/NetworkHelperImplTest.java | 156 +++ .../network/router/RouterControlHelperTest.java | 105 + 8 files changed, 274 insertions(+), 20 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8061c5ca/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml -- diff --git a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml index 2b46ca3..7a9044b 100644 --- a/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml +++ b/server/resources/META-INF/cloudstack/core/spring-server-core-managers-context.xml @@ -206,9 +206,6 @@ - - http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8061c5ca/server/src/com/cloud/network/router/NetworkHelperImpl.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index ece0c0f..689ef3b 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -195,22 +195,16 @@ public class NetworkHelperImpl implements NetworkHelper { throw new AgentUnavailableException("Unable to send commands to virtual router ", router.getHostId(), e); } -if (answers == null) { -return false; -} - -if (answers.length != cmds.size()) { +if (answers == null || answers.length != cmds.size()) { return false; } // FIXME: Have to return state for individual command in the future boolean result = true; -if (answers.length > 0) { -for (final Answer answer : answers) { -if (!answer.getResult()) { -result = false; -break; -} +for (final Answer answer : answers) { +if (!answer.getResult()) { +result = false; +break; } } return result; @@ -253,7 +247,7 @@ public class NetworkHelperImpl implements NetworkHelper { final int connRouterPR = getRealPriority(connectedRouter); final int disconnRouterPR = getRealPriority(disconnectedRouter); if (connRouterPR < disconnRouterPR) { -//connRouterPR < disconnRouterPR, they won't equal at anytime +//connRouterPR < disconnRouterPR, they won't equal at any time if (!connectedRouter.getIsPriorityBumpUp()) { final BumpUpPriorityCommand command = new BumpUpPriorityCommand(); command.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(connectedRouter.getId())); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8061c5ca/server/src/com/cloud/network/router/RouterControlHelper.java -- diff --git a/server/src/com/cloud/network/router/RouterControlHelper.java b/server/src/com/cloud/network/router/RouterControlHelper.java index 583bd58..68fd6e3 100644 --- a/server/src/com/cloud/network/router/RouterControlHelper.java +++ b/server/src/com/cloud/network/router/RouterControlHelper.java @@ -35,7 +35,7 @@ public class RouterControlHelper { private static final Logger logger = Logger.getLogger(RouterControlHelper.class); @Inject -private final DomainRouterDao routerDao = null; +private DomainRouterDao routerDao; @Inject private NetworkDao networkDao; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8061c5ca/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManag
[45/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
CLOUDSTACK-6278 Baremetal Advanced Networking support from commit id e06fa18ed2ee2ee6a417e089cf5ac6bde11d0079 by Frank Zhang Conflicts: server/src/com/cloud/network/router/NetworkHelperImpl.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fb558516 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fb558516 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fb558516 Branch: refs/heads/vpc-refactor Commit: fb5585161425f0fd0eac4a5b283b9e8568cae886 Parents: 53703c9 Author: wrodrigues Authored: Thu Sep 11 22:17:02 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:29 2014 +0200 -- .../cloud/network/router/NetworkHelperImpl.java | 35 +++- 1 file changed, 12 insertions(+), 23 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fb558516/server/src/com/cloud/network/router/NetworkHelperImpl.java -- diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index f589394..5acad2c 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -30,7 +30,6 @@ import javax.inject.Inject; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.cloudstack.framework.config.ConfigKey; -import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.log4j.Logger; import org.cloud.network.router.deployment.RouterDeploymentDefinition; @@ -41,7 +40,6 @@ import com.cloud.agent.api.routing.NetworkElementCommand; import com.cloud.agent.api.to.NicTO; import com.cloud.agent.manager.Commands; import com.cloud.alert.AlertManager; -import com.cloud.configuration.Config; import com.cloud.dc.ClusterVO; import com.cloud.dc.DataCenter; import com.cloud.dc.Pod; @@ -148,8 +146,6 @@ public class NetworkHelperImpl implements NetworkHelper { @Inject private RouterControlHelper _routerControlHelper; @Inject -private ConfigurationDao _configDao; -@Inject protected NetworkOrchestrationService _networkMgr; protected final Map> hypervisorsMap = new HashMap<>(); @@ -481,30 +477,23 @@ public class NetworkHelperImpl implements NetworkHelper { return result; } -protected String retrieveTemplateName(HypervisorType hType, final long datacenterId) { +protected String retrieveTemplateName(final HypervisorType hType, final long datacenterId) { +String templateName = null; + if (hType == HypervisorType.BareMetal) { -String peerHvType = _configDao.getValue(Config.BaremetalPeerHypervisorType.key()); -if (peerHvType == null) { -throw new CloudRuntimeException(String.format("To use baremetal in advanced networking, you must set %s to type of hypervisor(e.g XenServer)" -+ " that exists in the same zone with baremetal host. That hyperivsor is used to spring up virtual router for baremetal instance", -Config.BaremetalPeerHypervisorType.key())); -} +ConfigKey hypervisorConfigKey = hypervisorsMap.get(HypervisorType.VMware); +templateName = hypervisorConfigKey.valueIn(datacenterId); +} else { +// Returning NULL is fine because the simulator will need it when +// being used instead of a real hypervisor. +// The hypervisorsMap contains only real hypervisors. +ConfigKey hypervisorConfigKey = hypervisorsMap.get(hType); -hType = HypervisorType.getType(peerHvType); -if (HypervisorType.XenServer != hType && HypervisorType.KVM != hType && HypervisorType.VMware != hType) { -throw new CloudRuntimeException(String.format("Baremetal only supports peer hypervisor(XenServer/KVM/VMWare) right now, you specified %s", peerHvType)); +if (hypervisorConfigKey != null) { +templateName = hypervisorConfigKey.valueIn(datacenterId); } } -// Returning NULL is fine because the simulator will need it when being -// used instead of a real hypervisor. -// The hypervisorsMap contains only real hypervisors. -String templateName = null; -ConfigKey hypervisorConfigKey = hypervisorsMap.get(hType); - -if (hypervisorConfigKey != null) { -templateName = hypervisorConfigKey.valueIn(datacenterId); -} return templateName; }
git commit: CLOUDSTACK-7670: Avoid color output when non-interactive
Repository: cloudstack-cloudmonkey Updated Branches: refs/heads/master 6153b8f86 -> b4bf97c38 CLOUDSTACK-7670: Avoid color output when non-interactive Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/b4bf97c3 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/b4bf97c3 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/b4bf97c3 Branch: refs/heads/master Commit: b4bf97c38dbf1c7a7389938b68547d93e9c3684e Parents: 6153b8f Author: Rohit Yadav Authored: Fri Oct 3 13:10:55 2014 +0200 Committer: Rohit Yadav Committed: Fri Oct 3 13:10:55 2014 +0200 -- cloudmonkey/cloudmonkey.py | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/b4bf97c3/cloudmonkey/cloudmonkey.py -- diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py index 549d653..3e67f5d 100644 --- a/cloudmonkey/cloudmonkey.py +++ b/cloudmonkey/cloudmonkey.py @@ -590,6 +590,7 @@ def main(): shell.set_attr("display", args.displayType) if len(args.commands) > 0: +shell.set_attr("color", "false") shell.onecmd(" ".join(map(lambda x: x.replace("\\ ", " ") .replace(" ", "\\ "), args.commands)))
[48/50] [abbrv] git commit: updated refs/heads/vpc-refactor to a8cb7c1
Applying the latest chances from the VPC Refactor branch onto the new one. We will keep this branch as clean as possible to avoid problems with merge. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f79e7cdc Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f79e7cdc Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f79e7cdc Branch: refs/heads/vpc-refactor Commit: f79e7cdcffdb75487b4426ce43f8a4bf0bc09765 Parents: fb55851 Author: Wilder Rodrigues Authored: Mon Sep 29 16:14:34 2014 +0200 Committer: Wilder Rodrigues Committed: Fri Oct 3 06:21:29 2014 +0200 -- .../network/element/VirtualRouterElement.java | 10 +- .../network/router/CommandSetupHelper.java | 19 +- .../cloud/network/router/NetworkHelperImpl.java | 64 ++--- .../VpcVirtualNetworkApplianceManager.java | 13 +- .../com/cloud/network/rules/BasicVpnRules.java | 48 .../com/cloud/network/rules/DhcpEntryRules.java | 8 +- .../com/cloud/network/rules/DhcpPvlanRules.java | 67 ++ .../src/com/cloud/network/rules/DhcpRules.java | 67 -- .../cloud/network/rules/LoadBalancingRules.java | 3 +- .../rules/VirtualNetworkApplianceFactory.java | 8 +- .../src/com/cloud/network/rules/VpnRules.java | 48 .../topology/AdvancedNetworkTopology.java | 22 +- .../topology/AdvancedNetworkVisitor.java| 25 +- .../network/topology/BasicNetworkTopology.java | 32 ++- .../network/topology/BasicNetworkVisitor.java | 50 +++- .../network/topology/NetworkTopology.java | 23 +- .../topology/NetworkTopologyVisitor.java| 33 +-- .../deployment/RouterDeploymentDefinition.java | 232 +-- .../RouterDeploymentDefinitionBuilder.java | 17 +- .../VpcRouterDeploymentDefinition.java | 46 ++-- .../VirtualNetworkApplianceManagerImplTest.java | 59 - .../MockVpcVirtualNetworkApplianceManager.java | 16 +- 22 files changed, 387 insertions(+), 523 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f79e7cdc/server/src/com/cloud/network/element/VirtualRouterElement.java -- diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index 83153fa..546aab4 100755 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -717,11 +717,14 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl VirtualMachineProfile uservm = vm; +DataCenterVO dcVO = _dcDao.findById(network.getDataCenterId()); +NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO); + // If any router is running then send save password command otherwise // save the password in DB for (VirtualRouter router : routers) { if (router.getState() == State.Running) { -return _routerMgr.savePasswordToRouter(network, nic, uservm, routers); +return networkTopology.savePasswordToRouter(network, nic, uservm, routers); } } String password = (String) uservm.getParameter(VirtualMachineProfile.Param.VmPassword); @@ -735,10 +738,7 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl userVmVO.setUpdateParameters(true); _userVmDao.update(userVmVO.getId(), userVmVO); -DataCenterVO dcVO = _dcDao.findById(network.getDataCenterId()); -NetworkTopology networkTopology = networkTopologyContext.retrieveNetworkTopology(dcVO); - -return networkTopology.savePasswordToRouter(network, nic, uservm, routers); +return true; } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f79e7cdc/server/src/com/cloud/network/router/CommandSetupHelper.java -- diff --git a/server/src/com/cloud/network/router/CommandSetupHelper.java b/server/src/com/cloud/network/router/CommandSetupHelper.java index df5ad48..7ef04ad 100644 --- a/server/src/com/cloud/network/router/CommandSetupHelper.java +++ b/server/src/com/cloud/network/router/CommandSetupHelper.java @@ -107,6 +107,8 @@ import com.cloud.offering.NetworkOffering; import com.cloud.offerings.NetworkOfferingVO; import com.cloud.offerings.dao.NetworkOfferingDao; import com.cloud.service.dao.ServiceOfferingDao; +import com.cloud.storage.GuestOSVO; +import com.cloud.storage.dao.GuestOSDao; import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; @@ -173,6 +175,8 @@ public class CommandSetupHelper { privat
[3/3] git commit: requester: write to standard err if API fails
requester: write to standard err if API fails Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/76bc92b5 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/76bc92b5 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/76bc92b5 Branch: refs/heads/master Commit: 76bc92b59061290511d5ecf7eba1afb23508702b Parents: 0981f6c Author: Rohit Yadav Authored: Fri Oct 3 14:08:09 2014 +0200 Committer: Rohit Yadav Committed: Fri Oct 3 14:08:09 2014 +0200 -- cloudmonkey/requester.py | 15 ++- 1 file changed, 10 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/76bc92b5/cloudmonkey/requester.py -- diff --git a/cloudmonkey/requester.py b/cloudmonkey/requester.py index 210b377..8e5e211 100644 --- a/cloudmonkey/requester.py +++ b/cloudmonkey/requester.py @@ -41,6 +41,11 @@ def logger_debug(logger, message): logger.debug(message) +def writeError(msg): +sys.stderr.write(msg) +print msg + + def login(url, username, password): """ Login and obtain a session to be used for subsequent API calls @@ -60,18 +65,18 @@ def login(url, username, password): try: resp = session.post(url, params=args) except requests.exceptions.ConnectionError, e: -print "Connection refused by server" +writeError("Connection refused by server: %s" % e) return None, None if resp.status_code == 200: sessionkey = resp.json()['loginresponse']['sessionkey'] elif resp.status_code == 405: -print "Method not allowed, unauthorized access on URL: %s" % url +writeError("Method not allowed, unauthorized access on URL: %s" % url) session = None sessionkey = None elif resp.status_code == 531: -print "Error authenticating at %s, with username: %s" \ - ", and password: %s" % (url, username, password) +writeError("Error authenticating at %s using username: %s" \ + ", and password: %s" % (url, username, password)) session = None sessionkey = None else: @@ -220,7 +225,7 @@ def monkeyrequest(command, args, isasync, asyncblock, logger, url, response = json.loads(str(response)) except ValueError, e: logger_debug(logger, "Error processing json: %s" % e) -print "Error processing json:", str(e) +writeError("Error processing json: %s" % e) response = None error = e return response
[1/3] git commit: cloudmonkey: on error monkeyprint to stderr
Repository: cloudstack-cloudmonkey Updated Branches: refs/heads/master b4bf97c38 -> 76bc92b59 cloudmonkey: on error monkeyprint to stderr Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/3d081964 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/3d081964 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/3d081964 Branch: refs/heads/master Commit: 3d081964ba52552db2265a5c65465e3a5817051b Parents: b4bf97c Author: Rohit Yadav Authored: Fri Oct 3 13:24:46 2014 +0200 Committer: Rohit Yadav Committed: Fri Oct 3 13:24:46 2014 +0200 -- cloudmonkey/cloudmonkey.py | 2 +- cloudmonkey/printer.py | 5 - 2 files changed, 5 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/3d081964/cloudmonkey/cloudmonkey.py -- diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py index 3e67f5d..886381e 100644 --- a/cloudmonkey/cloudmonkey.py +++ b/cloudmonkey/cloudmonkey.py @@ -329,7 +329,7 @@ class CloudMonkeyShell(cmd.Cmd, object): self.print_result(result[responsekey], field_filter) print except Exception as e: -self.monkeyprint("ð Error on parsing and printing", e) +self.monkeyprint("Error on parsing and printing", e) def completedefault(self, text, line, begidx, endidx): partitions = line.partition(" ") http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/3d081964/cloudmonkey/printer.py -- diff --git a/cloudmonkey/printer.py b/cloudmonkey/printer.py index 6fe324f..e548d2c 100644 --- a/cloudmonkey/printer.py +++ b/cloudmonkey/printer.py @@ -116,4 +116,7 @@ def monkeyprint(text): lexer = MonkeyLexer() lexer.encoding = 'utf-8' fmter.encoding = 'utf-8' -highlight(text, lexer, fmter, sys.stdout) +if text.startswith("Error"): +highlight(text, lexer, fmter, sys.stderr) +else: +highlight(text, lexer, fmter, sys.stdout)
[2/3] git commit: cloudmonkey: autocompletion for set/option values
cloudmonkey: autocompletion for set/option values Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/0981f6c8 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/0981f6c8 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/0981f6c8 Branch: refs/heads/master Commit: 0981f6c82c93e252c2a6c0c44fbec9e8540d2c7f Parents: 3d08196 Author: Rohit Yadav Authored: Fri Oct 3 14:03:02 2014 +0200 Committer: Rohit Yadav Committed: Fri Oct 3 14:03:02 2014 +0200 -- cloudmonkey/cloudmonkey.py | 20 cloudmonkey/config.py | 14 ++ 2 files changed, 26 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/0981f6c8/cloudmonkey/cloudmonkey.py -- diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py index 886381e..6801cef 100644 --- a/cloudmonkey/cloudmonkey.py +++ b/cloudmonkey/cloudmonkey.py @@ -71,6 +71,7 @@ class CloudMonkeyShell(cmd.Cmd, object): ". Type help or ? to list commands.\n") ruler = "=" config_options = [] +profile_names = [] verbs = [] prompt = "ðµ > " protocol = "http" @@ -446,10 +447,21 @@ class CloudMonkeyShell(cmd.Cmd, object): print def complete_set(self, text, line, begidx, endidx): -mline = line.partition(" ")[2] -offs = len(mline) - len(text) -return [s[offs:] for s in self.config_options -if s.startswith(mline)] +mline = line.partition(" ")[2].lstrip().partition(" ") +option = mline[0].strip() +separator = mline[1] +value = mline[2].lstrip() +if separator == "": +return [s for s in self.config_options if s.startswith(option)] +elif option == "profile": +return [s for s in self.profile_names if s.startswith(value)] +elif option == "display": +return [s for s in ["default", "table", "json"] +if s.startswith(value)] +elif option == "asyncblock" or option == "color": +return [s for s in ["true", "false"] if s.startswith(value)] + +return [] def do_login(self, args): """ http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/0981f6c8/cloudmonkey/config.py -- diff --git a/cloudmonkey/config.py b/cloudmonkey/config.py index 6880c1a..3336274 100644 --- a/cloudmonkey/config.py +++ b/cloudmonkey/config.py @@ -16,7 +16,7 @@ # specific language governing permissions and limitations # under the License. -__version__ = "5.2.0" +__version__ = "5.3.0" __description__ = "Command Line Interface for Apache CloudStack" __maintainer__ = "The Apache CloudStack Team" __maintaineremail__ = "d...@cloudstack.apache.org" @@ -69,8 +69,10 @@ default_profile['password'] = 'password' default_profile['apikey'] = '' default_profile['secretkey'] = '' + def write_config(get_attr, config_file): -global config_fields, mandatory_sections, default_profile, default_profile_name +global config_fields, mandatory_sections +global default_profile, default_profile_name config = ConfigParser() if os.path.exists(config_file): try: @@ -128,7 +130,8 @@ def write_config(get_attr, config_file): def read_config(get_attr, set_attr, config_file): -global config_fields, config_dir, mandatory_sections, default_profile, default_profile_name +global config_fields, config_dir, mandatory_sections +global default_profile, default_profile_name if not os.path.exists(config_dir): os.makedirs(config_dir) @@ -155,8 +158,11 @@ def read_config(get_attr, set_attr, config_file): print "Server profile cannot be", profile sys.exit(1) +set_attr("profile_names", filter(lambda x: x != "core" and x != "ui", + config.sections())) + if not config.has_section(profile): -print "Selected profile (%s) does not exit, will use the defaults" % profile +print "Selected profile (%s) does not exist, using defaults" % profile try: config.add_section(profile) except ValueError, e:
git commit: cloudmonkey: strip strings in setting config options
Repository: cloudstack-cloudmonkey Updated Branches: refs/heads/master 76bc92b59 -> 0ae940815 cloudmonkey: strip strings in setting config options Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/0ae94081 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/0ae94081 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/0ae94081 Branch: refs/heads/master Commit: 0ae9408150dd2feb91a3969c3509a18731351555 Parents: 76bc92b Author: Rohit Yadav Authored: Fri Oct 3 14:14:42 2014 +0200 Committer: Rohit Yadav Committed: Fri Oct 3 14:14:42 2014 +0200 -- cloudmonkey/cloudmonkey.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/0ae94081/cloudmonkey/cloudmonkey.py -- diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py index 6801cef..2d88786 100644 --- a/cloudmonkey/cloudmonkey.py +++ b/cloudmonkey/cloudmonkey.py @@ -423,7 +423,7 @@ class CloudMonkeyShell(cmd.Cmd, object): set log_file /var/log/cloudmonkey.log """ args = args.strip().partition(" ") -key, value = (args[0], args[2]) +key, value = (args[0].strip(), args[2].strip()) if not key: return if not value: @@ -441,7 +441,7 @@ class CloudMonkeyShell(cmd.Cmd, object): read_config(self.get_attr, self.set_attr, self.config_file) self.init_credential_store() if key.strip() == 'profile': -print "\nLoaded server profile '%s' with options:" % key +print "\nLoaded server profile '%s' with options:" % value for option in default_profile.keys(): print "%s = %s" % (option, self.get_attr(option)) print
git commit: cloudmonkey: have filter applicable for list outputs as well
Repository: cloudstack-cloudmonkey Updated Branches: refs/heads/master 0ae940815 -> ad69d2b9b cloudmonkey: have filter applicable for list outputs as well If filter is used for list output (default output) now, it filters out keys based on the filter passed. If only one filter is applied say 'id', then only the values are printed. For example; $ cloudmonkey list domains filter=id 111b3bf9-4234-11e4-be95-00012e4ff7d0 In the above example, only UUIDs are printed. This can be useful for people to just grab uuids and do interesting things with it. Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/ad69d2b9 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/ad69d2b9 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/ad69d2b9 Branch: refs/heads/master Commit: ad69d2b9b4d8bf022d62c12d7d79c0035dc8752e Parents: 0ae9408 Author: Rohit Yadav Authored: Fri Oct 3 14:51:14 2014 +0200 Committer: Rohit Yadav Committed: Fri Oct 3 14:51:30 2014 +0200 -- cloudmonkey/cloudmonkey.py | 20 +++- 1 file changed, 15 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/ad69d2b9/cloudmonkey/cloudmonkey.py -- diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py index 2d88786..bb01247 100644 --- a/cloudmonkey/cloudmonkey.py +++ b/cloudmonkey/cloudmonkey.py @@ -247,8 +247,16 @@ class CloudMonkeyShell(cmd.Cmd, object): x not in ['id', 'count', 'name'] and x): if not (isinstance(result[key], list) or isinstance(result[key], dict)): -self.monkeyprint("%s = %s" % (key, result[key])) +if result_filter != None and key not in result_filter: +continue +if result_filter != None and len(result_filter) == 1: +self.monkeyprint(result[key]) +else: +self.monkeyprint("%s = %s" % (key, result[key])) else: +if result_filter != None and key not in result_filter: +self.print_result(result[key], result_filter) +continue self.monkeyprint(key + ":") self.print_result(result[key], result_filter) @@ -257,7 +265,7 @@ class CloudMonkeyShell(cmd.Cmd, object): if isinstance(node, dict) and self.display == 'table': print_result_tabular(result, result_filter) break -self.print_result(node) +self.print_result(node, result_filter) if len(result) > 1: self.monkeyprint(self.ruler * 80) @@ -298,7 +306,7 @@ class CloudMonkeyShell(cmd.Cmd, object): args.append(next_val.replace('\x00', '')) args_dict = dict(map(lambda x: [x.partition("=")[0], -urllib.quote(x.partition("=")[2])], +x.partition("=")[2]], args[1:])[x] for x in range(len(args) - 1)) field_filter = None if 'filter' in args_dict: @@ -320,6 +328,9 @@ class CloudMonkeyShell(cmd.Cmd, object): if 'asyncapis' in self.apicache: isasync = apiname in self.apicache['asyncapis'] +for key in args_dict.keys(): +args_dict[key] = urllib.quote(args_dict[key]) + result = self.make_request(apiname, args_dict, isasync) if result is None: @@ -377,8 +388,7 @@ class CloudMonkeyShell(cmd.Cmd, object): autocompletions = uuids search_string = value -if subject != "" and (self.display == "table" or - self.display == "json"): +if subject != "": autocompletions.append("filter=") return [s for s in autocompletions if s.startswith(search_string)]
git commit: cloudmonkey: write errors to stderr
Repository: cloudstack-cloudmonkey Updated Branches: refs/heads/master ad69d2b9b -> 901154990 cloudmonkey: write errors to stderr Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/90115499 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/90115499 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/90115499 Branch: refs/heads/master Commit: 901154990a23a7744cde7f49c552b99031c0c29b Parents: ad69d2b Author: Rohit Yadav Authored: Fri Oct 3 15:00:58 2014 +0200 Committer: Rohit Yadav Committed: Fri Oct 3 15:00:58 2014 +0200 -- cloudmonkey/cloudmonkey.py | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/90115499/cloudmonkey/cloudmonkey.py -- diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py index bb01247..bd0f6c7 100644 --- a/cloudmonkey/cloudmonkey.py +++ b/cloudmonkey/cloudmonkey.py @@ -174,7 +174,10 @@ class CloudMonkeyShell(cmd.Cmd, object): if self.color == 'true': monkeyprint(output) else: -print(output) +if output.startswith("Error"): +sys.stderr.write(output) +else: +print output def print_result(self, result, result_filter=None): if result is None or len(result) == 0: @@ -284,7 +287,7 @@ class CloudMonkeyShell(cmd.Cmd, object): self.url, self.credentials, self.timeout, self.expires) if error is not None: -self.monkeyprint(error) +self.monkeyprint("Error " + error) return response def default(self, args): @@ -483,7 +486,7 @@ class CloudMonkeyShell(cmd.Cmd, object): self.credentials['session'] = session self.credentials['sessionkey'] = sessionkey except Exception, e: -print "Error while trying to log in to the server: ", str(e) +self.monkeyprint("Error: Login failed to the server: ", str(e)) def do_logout(self, args): """
git commit: cloudmonkey: display current profile in parenthesis in the prompt
Repository: cloudstack-cloudmonkey Updated Branches: refs/heads/master 901154990 -> c6318fc13 cloudmonkey: display current profile in parenthesis in the prompt Signed-off-by: Rohit Yadav Project: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/commit/c6318fc1 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/tree/c6318fc1 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/diff/c6318fc1 Branch: refs/heads/master Commit: c6318fc13b2640af35b9b19d7355269a96e13f56 Parents: 9011549 Author: Rohit Yadav Authored: Fri Oct 3 16:38:40 2014 +0200 Committer: Rohit Yadav Committed: Fri Oct 3 16:38:40 2014 +0200 -- cloudmonkey/cloudmonkey.py | 10 +- cloudmonkey/requester.py | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/c6318fc1/cloudmonkey/cloudmonkey.py -- diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py index bd0f6c7..e137aab 100644 --- a/cloudmonkey/cloudmonkey.py +++ b/cloudmonkey/cloudmonkey.py @@ -109,6 +109,13 @@ class CloudMonkeyShell(cmd.Cmd, object): self.host = parsed_url.netloc self.port = "8080" if not parsed_url.port else parsed_url.port self.path = parsed_url.path +self.set_prompt() + +def get_prompt(self): +return self.prompt.split(") ")[-1] + +def set_prompt(self): +self.prompt = "(%s) %s" % (self.profile, self.get_prompt()) def get_attr(self, field): return getattr(self, field) @@ -175,7 +182,7 @@ class CloudMonkeyShell(cmd.Cmd, object): monkeyprint(output) else: if output.startswith("Error"): -sys.stderr.write(output) +sys.stderr.write(output + "\n") else: print output @@ -443,6 +450,7 @@ class CloudMonkeyShell(cmd.Cmd, object): print "Blank value of %s is not allowed" % key return +self.prompt = self.get_prompt() setattr(self, key, value) if key in ['host', 'port', 'path', 'protocol']: key = 'url' http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/c6318fc1/cloudmonkey/requester.py -- diff --git a/cloudmonkey/requester.py b/cloudmonkey/requester.py index 8e5e211..08876c9 100644 --- a/cloudmonkey/requester.py +++ b/cloudmonkey/requester.py @@ -114,7 +114,7 @@ def make_request_with_password(command, args, logger, url, credentials): if not (session and sessionkey): session, sessionkey = login(url, username, password) if not (session and sessionkey): -return None, 'Error authenticating' +return None, 'Authentication failed' credentials['session'] = session credentials['sessionkey'] = sessionkey