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 <[email protected]>
Authored: Wed Aug 20 04:21:53 2014 -0500
Committer: Wilder Rodrigues <[email protected]>
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 @@
<bean id="routerControlHelper"
class="com.cloud.network.router.RouterControlHelper" />
- <bean id="networkGeneralHelper"
- class="com.cloud.network.router.NetworkGeneralHelper" />
+ <bean id="networkHelper"
+ class="com.cloud.network.router.NetworkHelperImpl" />
+
+ <bean id="vpcNetworkHelper"
+ class="com.cloud.network.router.VpcNetworkHelperImpl" />
<bean id="vpcVirtualNetworkHelper"
class="com.cloud.network.router.VpcVirtualNetworkHelperImpl" />
+ <bean id="nicProfileHelper"
+ class="com.cloud.network.router.NicProfileHelperImpl" />
+
<bean id="routerDeploymentDefinitionBuilder"
class="org.cloud.network.router.deployment.RouterDeploymentDefinitionBuilder" />
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<DomainRouterVO> startRouters(
RouterDeploymentDefinition routerDeploymentDefinition)
throws StorageUnavailableException, InsufficientCapacityException,
ConcurrentOperationException, ResourceUnavailableException;
- // @Override
public abstract DomainRouterVO startVirtualRouter(DomainRouterVO router,
User user, Account caller, Map<Param, Object> params)
throws StorageUnavailableException, InsufficientCapacityException,
ConcurrentOperationException, ResourceUnavailableException;
- // @Override
public abstract DomainRouterVO deployRouter(
RouterDeploymentDefinition routerDeploymentDefinition,
- LinkedHashMap<Network, List<? extends NicProfile>> networks,
boolean startRouter, List<HypervisorType> supportedHypervisors)
throws InsufficientAddressCapacityException,
InsufficientServerCapacityException, InsufficientCapacityException,
StorageUnavailableException, ResourceUnavailableException;
- public abstract LinkedHashMap<Network, List<? extends NicProfile>>
createRouterNetworks(
- RouterDeploymentDefinition routerDeploymentDefinition)
- throws ConcurrentOperationException,
- InsufficientAddressCapacityException;
-
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/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 bf4c7af..ece0c0f 100644
--- a/server/src/com/cloud/network/router/NetworkHelperImpl.java
+++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java
@@ -29,7 +29,6 @@ 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;
@@ -99,9 +98,7 @@ 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})
+@Local(value = {NetworkHelper.class})
public class NetworkHelperImpl implements NetworkHelper {
private static final Logger s_logger =
Logger.getLogger(NetworkHelperImpl.class);
@@ -506,19 +503,8 @@ public class NetworkHelperImpl implements NetworkHelper {
return result;
}
- // @Override
-// public DomainRouterVO deployRouter(final RouterDeploymentDefinition
routerDeploymentDefinition) {
-// routerDeploymentDefinition.createNetwork();
-// doDeployRouter
-// }
-
- // @Override
- /* (non-Javadoc)
- * @see
com.cloud.network.router.NetworkHelper#deployRouter(org.cloud.network.router.deployment.RouterDeploymentDefinition,
java.util.LinkedHashMap, boolean, java.util.List)
- */
@Override
public DomainRouterVO deployRouter(final RouterDeploymentDefinition
routerDeploymentDefinition,
- final LinkedHashMap<Network, List<? extends NicProfile>> networks,
final boolean startRouter, final List<HypervisorType>
supportedHypervisors)
throws InsufficientAddressCapacityException,
InsufficientServerCapacityException,
InsufficientCapacityException,
@@ -587,6 +573,7 @@ public class NetworkHelperImpl implements NetworkHelper {
router.setDynamicallyScalable(template.isDynamicallyScalable());
router.setRole(Role.VIRTUAL_ROUTER);
router = _routerDao.persist(router);
+ LinkedHashMap<Network, List<? extends NicProfile>> networks =
this.createRouterNetworks(routerDeploymentDefinition);
_itMgr.allocate(router.getInstanceName(), template,
routerOffering, networks, routerDeploymentDefinition.getPlan(), null);
router = _routerDao.findById(router.getId());
} catch (final InsufficientCapacityException ex) {
@@ -701,10 +688,6 @@ public class NetworkHelperImpl implements NetworkHelper {
}
- /* (non-Javadoc)
- * @see
com.cloud.network.router.NetworkHelper#createRouterNetworks(org.cloud.network.router.deployment.RouterDeploymentDefinition)
- */
- @Override
public LinkedHashMap<Network, List<? extends NicProfile>>
createRouterNetworks(
final RouterDeploymentDefinition routerDeploymentDefinition)
throws ConcurrentOperationException,
InsufficientAddressCapacityException {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/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
new file mode 100644
index 0000000..e75fa9a
--- /dev/null
+++ b/server/src/com/cloud/network/router/NicProfileHelper.java
@@ -0,0 +1,15 @@
+package com.cloud.network.router;
+
+import com.cloud.network.Network;
+import com.cloud.network.vpc.VpcGateway;
+import com.cloud.vm.NicProfile;
+
+public interface NicProfileHelper {
+
+ public abstract NicProfile createPrivateNicProfileForGateway(
+ VpcGateway privateGateway);
+
+ public abstract NicProfile createGuestNicProfileForVpcRouter(
+ Network guestNetwork);
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/server/src/com/cloud/network/router/NicProfileHelperImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/NicProfileHelperImpl.java
b/server/src/com/cloud/network/router/NicProfileHelperImpl.java
new file mode 100644
index 0000000..a06dbff
--- /dev/null
+++ b/server/src/com/cloud/network/router/NicProfileHelperImpl.java
@@ -0,0 +1,110 @@
+// 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.net.URI;
+
+import javax.ejb.Local;
+import javax.inject.Inject;
+
+import com.cloud.network.Network;
+import com.cloud.network.NetworkModel;
+import com.cloud.network.Networks.AddressFormat;
+import com.cloud.network.Networks.BroadcastDomainType;
+import com.cloud.network.vpc.PrivateIpAddress;
+import com.cloud.network.vpc.PrivateIpVO;
+import com.cloud.network.vpc.VpcGateway;
+import com.cloud.network.vpc.VpcManager;
+import com.cloud.network.vpc.dao.PrivateIpDao;
+import com.cloud.utils.db.DB;
+import com.cloud.utils.net.NetUtils;
+import com.cloud.vm.Nic;
+import com.cloud.vm.NicProfile;
+import com.cloud.vm.VirtualMachine;
+import com.cloud.vm.dao.NicDao;
+import com.cloud.vm.dao.VMInstanceDao;
+
+
+@Local(value = {NicProfileHelper.class})
+public class NicProfileHelperImpl implements NicProfileHelper {
+
+ @Inject
+ private VMInstanceDao _vmDao;
+ @Inject
+ private PrivateIpDao _privateIpDao;
+ @Inject
+ protected NetworkModel _networkModel;
+ @Inject
+ protected VpcManager _vpcMgr;
+ @Inject
+ protected NicDao _nicDao;
+
+
+ @Override
+ @DB
+ public NicProfile createPrivateNicProfileForGateway(VpcGateway
privateGateway) {
+ Network privateNetwork =
_networkModel.getNetwork(privateGateway.getNetworkId());
+ PrivateIpVO ipVO =
_privateIpDao.allocateIpAddress(privateNetwork.getDataCenterId(),
privateNetwork.getId(), privateGateway.getIp4Address());
+ Nic privateNic =
_nicDao.findByIp4AddressAndNetworkId(ipVO.getIpAddress(),
privateNetwork.getId());
+
+ NicProfile privateNicProfile = new NicProfile();
+
+ if (privateNic != null) {
+ VirtualMachine vm = _vmDao.findById(privateNic.getInstanceId());
+ privateNicProfile =
+ new NicProfile(privateNic, privateNetwork,
privateNic.getBroadcastUri(), privateNic.getIsolationUri(),
_networkModel.getNetworkRate(
+ privateNetwork.getId(), vm.getId()),
_networkModel.isSecurityGroupSupportedInNetwork(privateNetwork),
_networkModel.getNetworkTag(
+ vm.getHypervisorType(), privateNetwork));
+ } else {
+ String netmask = NetUtils.getCidrNetmask(privateNetwork.getCidr());
+ PrivateIpAddress ip =
+ new PrivateIpAddress(ipVO,
privateNetwork.getBroadcastUri().toString(), privateNetwork.getGateway(),
netmask,
+
NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())));
+
+ URI netUri = BroadcastDomainType.fromString(ip.getBroadcastUri());
+ privateNicProfile.setIp4Address(ip.getIpAddress());
+ privateNicProfile.setGateway(ip.getGateway());
+ privateNicProfile.setNetmask(ip.getNetmask());
+ privateNicProfile.setIsolationUri(netUri);
+ privateNicProfile.setBroadcastUri(netUri);
+ // can we solve this in setBroadcastUri()???
+ // or more plugable construct is desirable
+
privateNicProfile.setBroadcastType(BroadcastDomainType.getSchemeValue(netUri));
+ privateNicProfile.setFormat(AddressFormat.Ip4);
+
privateNicProfile.setReservationId(String.valueOf(ip.getBroadcastUri()));
+ privateNicProfile.setMacAddress(ip.getMacAddress());
+ }
+
+ return privateNicProfile;
+ }
+
+ @Override
+ public NicProfile createGuestNicProfileForVpcRouter(final Network
guestNetwork) {
+ NicProfile guestNic = new NicProfile();
+ guestNic.setIp4Address(guestNetwork.getGateway());
+ guestNic.setBroadcastUri(guestNetwork.getBroadcastUri());
+ guestNic.setBroadcastType(guestNetwork.getBroadcastDomainType());
+ guestNic.setIsolationUri(guestNetwork.getBroadcastUri());
+ guestNic.setMode(guestNetwork.getMode());
+ String gatewayCidr = guestNetwork.getCidr();
+ guestNic.setNetmask(NetUtils.getCidrNetmask(gatewayCidr));
+
+ return guestNic;
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/server/src/com/cloud/network/router/VpcNetworkHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VpcNetworkHelper.java
b/server/src/com/cloud/network/router/VpcNetworkHelper.java
deleted file mode 100644
index fb26883..0000000
--- a/server/src/com/cloud/network/router/VpcNetworkHelper.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.cloud.network.router;
-
-import com.cloud.network.Network;
-import com.cloud.network.vpc.VpcGateway;
-import com.cloud.vm.NicProfile;
-
-public interface VpcNetworkHelper extends NetworkHelper {
-
- public abstract NicProfile createPrivateNicProfileForGateway(
- VpcGateway privateGateway);
-
- public abstract NicProfile createGuestNicProfileForVpcRouter(
- Network guestNetwork);
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/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 64ee2b0..c6c3785 100644
--- a/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java
+++ b/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java
@@ -17,121 +17,45 @@
package com.cloud.network.router;
-import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.TreeSet;
-import javax.ejb.Local;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import org.cloud.network.router.deployment.RouterDeploymentDefinition;
-import org.springframework.stereotype.Component;
import com.cloud.dc.dao.VlanDao;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.network.IpAddress;
import com.cloud.network.Network;
-import com.cloud.network.Networks.AddressFormat;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.IsolationType;
import com.cloud.network.addr.PublicIp;
import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.vpc.PrivateGateway;
-import com.cloud.network.vpc.PrivateIpAddress;
-import com.cloud.network.vpc.PrivateIpVO;
-import com.cloud.network.vpc.VpcGateway;
import com.cloud.network.vpc.VpcManager;
-import com.cloud.network.vpc.dao.PrivateIpDao;
import com.cloud.offering.NetworkOffering;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.net.NetUtils;
-import com.cloud.vm.Nic;
import com.cloud.vm.NicProfile;
-import com.cloud.vm.VirtualMachine;
-import com.cloud.vm.dao.VMInstanceDao;
-@Component
-// This will not be a public service anymore, but a helper for the only public
service
-@Local(value = {VpcNetworkHelperImpl.class})
-public class VpcNetworkHelperImpl extends NetworkHelperImpl implements
VpcNetworkHelper {
+public class VpcNetworkHelperImpl extends NetworkHelperImpl {
private static final Logger s_logger =
Logger.getLogger(VpcNetworkHelperImpl.class);
@Inject
- private VMInstanceDao _vmDao;
- @Inject
- private PrivateIpDao _privateIpDao;
- @Inject
private VlanDao _vlanDao;
@Inject
protected VpcManager _vpcMgr;
+ @Inject
+ protected NicProfileHelper nicProfileHelper;
@Override
- @DB
- public NicProfile createPrivateNicProfileForGateway(VpcGateway
privateGateway) {
- Network privateNetwork =
_networkModel.getNetwork(privateGateway.getNetworkId());
- PrivateIpVO ipVO =
_privateIpDao.allocateIpAddress(privateNetwork.getDataCenterId(),
privateNetwork.getId(), privateGateway.getIp4Address());
- Nic privateNic =
_nicDao.findByIp4AddressAndNetworkId(ipVO.getIpAddress(),
privateNetwork.getId());
-
- NicProfile privateNicProfile = new NicProfile();
-
- if (privateNic != null) {
- VirtualMachine vm = _vmDao.findById(privateNic.getInstanceId());
- privateNicProfile =
- new NicProfile(privateNic, privateNetwork,
privateNic.getBroadcastUri(), privateNic.getIsolationUri(),
_networkModel.getNetworkRate(
- privateNetwork.getId(), vm.getId()),
_networkModel.isSecurityGroupSupportedInNetwork(privateNetwork),
_networkModel.getNetworkTag(
- vm.getHypervisorType(), privateNetwork));
- } else {
- String netmask = NetUtils.getCidrNetmask(privateNetwork.getCidr());
- PrivateIpAddress ip =
- new PrivateIpAddress(ipVO,
privateNetwork.getBroadcastUri().toString(), privateNetwork.getGateway(),
netmask,
-
NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress())));
-
- URI netUri = BroadcastDomainType.fromString(ip.getBroadcastUri());
- privateNicProfile.setIp4Address(ip.getIpAddress());
- privateNicProfile.setGateway(ip.getGateway());
- privateNicProfile.setNetmask(ip.getNetmask());
- privateNicProfile.setIsolationUri(netUri);
- privateNicProfile.setBroadcastUri(netUri);
- // can we solve this in setBroadcastUri()???
- // or more plugable construct is desirable
-
privateNicProfile.setBroadcastType(BroadcastDomainType.getSchemeValue(netUri));
- privateNicProfile.setFormat(AddressFormat.Ip4);
-
privateNicProfile.setReservationId(String.valueOf(ip.getBroadcastUri()));
- privateNicProfile.setMacAddress(ip.getMacAddress());
- }
-
- return privateNicProfile;
- }
-
- /* (non-Javadoc)
- * @see
com.cloud.network.router.VpcNetworkHelper#createGuestNicProfileForVpcRouter(com.cloud.network.Network)
- */
- @Override
- public NicProfile createGuestNicProfileForVpcRouter(final Network
guestNetwork) {
- NicProfile guestNic = new NicProfile();
- guestNic.setIp4Address(guestNetwork.getGateway());
- guestNic.setBroadcastUri(guestNetwork.getBroadcastUri());
- guestNic.setBroadcastType(guestNetwork.getBroadcastDomainType());
- guestNic.setIsolationUri(guestNetwork.getBroadcastUri());
- guestNic.setMode(guestNetwork.getMode());
- String gatewayCidr = guestNetwork.getCidr();
- guestNic.setNetmask(NetUtils.getCidrNetmask(gatewayCidr));
-
- return guestNic;
- }
-
- /* (non-Javadoc)
- * @see
com.cloud.network.router.VpcNetworkHelper#createVpcRouterNetworks(org.cloud.network.router.deployment.VpcRouterDeploymentDefinition)
- */
- @Override
public LinkedHashMap<Network, List<? extends NicProfile>>
createRouterNetworks(
final RouterDeploymentDefinition vpcRouterDeploymentDefinition)
throws ConcurrentOperationException,
InsufficientAddressCapacityException {
@@ -149,7 +73,7 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl
implements VpcNetwor
final List<PrivateGateway> privateGateways =
this._vpcMgr.getVpcPrivateGateways(vpcId);
if (privateGateways != null && !privateGateways.isEmpty()) {
for (PrivateGateway privateGateway : privateGateways) {
- NicProfile privateNic =
this.createPrivateNicProfileForGateway(privateGateway);
+ NicProfile privateNic =
this.nicProfileHelper.createPrivateNicProfileForGateway(privateGateway);
Network privateNetwork =
_networkModel.getNetwork(privateGateway.getNetworkId());
networks.put(privateNetwork, new
ArrayList<NicProfile>(Arrays.asList(privateNic)));
}
@@ -162,7 +86,7 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl
implements VpcNetwor
continue;
}
if (guestNetwork.getState() == Network.State.Implemented ||
guestNetwork.getState() == Network.State.Setup) {
- NicProfile guestNic =
createGuestNicProfileForVpcRouter(guestNetwork);
+ NicProfile guestNic =
this.nicProfileHelper.createGuestNicProfileForVpcRouter(guestNetwork);
networks.put(guestNetwork, new
ArrayList<NicProfile>(Arrays.asList(guestNic)));
}
}
@@ -197,6 +121,7 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl
implements VpcNetwor
}
if (publicNetwork != null) {
if (networks.get(publicNetwork) != null) {
+ @SuppressWarnings("unchecked")
List<NicProfile> publicNicProfiles =
(List<NicProfile>)networks.get(publicNetwork);
publicNicProfiles.addAll(publicNics);
networks.put(publicNetwork, publicNicProfiles);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/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 b3993d9..1edea75 100644
---
a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
+++
b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
@@ -135,7 +135,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
private EntityManager _entityMgr;
@Inject
- private VpcNetworkHelper vpcHelper;
+ private NicProfileHelper vpcHelper;
@Override
public boolean configure(final String name, final Map<String, Object>
params) throws ConfigurationException {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/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 77c7f33..1867a22 100644
---
a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java
+++
b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinition.java
@@ -17,7 +17,6 @@
package org.cloud.network.router.deployment;
import java.util.ArrayList;
-import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -64,7 +63,6 @@ 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.NicProfile;
import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile.Param;
@@ -398,10 +396,8 @@ public class RouterDeploymentDefinition {
int routersToDeploy = this.getNumberOfRoutersToDeploy();
for(int i = 0; i < routersToDeploy; i++) {
- LinkedHashMap<Network, List<? extends NicProfile>> networks =
- this.nwHelper.createRouterNetworks(this);
- //don't start the router as we are holding the network lock that
needs to be released at the end of router allocation
- DomainRouterVO router = this.nwHelper.deployRouter(this, networks,
false, null);
+ // Don't start the router as we are holding the network lock that
needs to be released at the end of router allocation
+ DomainRouterVO router = this.nwHelper.deployRouter(this, false,
null);
if (router != null) {
this.routerDao.addRouterToGuestNetwork(router,
this.guestNetwork);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
----------------------------------------------------------------------
diff --git
a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
index 82ea004..7c76bd7 100644
---
a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
+++
b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
@@ -37,7 +37,7 @@ import
com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
import com.cloud.network.dao.UserIpv6AddressDao;
import com.cloud.network.dao.VirtualRouterProviderDao;
import com.cloud.network.router.NetworkHelper;
-import com.cloud.network.router.VpcNetworkHelper;
+import com.cloud.network.router.VpcNetworkHelperImpl;
import com.cloud.network.vpc.Vpc;
import com.cloud.network.vpc.VpcManager;
import com.cloud.network.vpc.dao.VpcDao;
@@ -95,7 +95,7 @@ public class RouterDeploymentDefinitionBuilder {
@Inject
protected NetworkHelper nwHelper;
@Inject
- protected VpcNetworkHelper vpcNwHelper;
+ protected VpcNetworkHelperImpl vpcNwHelper;
protected Long offeringId;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/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 6710a12..cccdf23 100644
---
a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java
+++
b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java
@@ -17,7 +17,6 @@
package org.cloud.network.router.deployment;
import java.util.ArrayList;
-import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -30,12 +29,10 @@ import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.network.Network;
import com.cloud.network.PhysicalNetwork;
import com.cloud.network.PhysicalNetworkServiceProvider;
import com.cloud.network.VirtualRouterProvider.Type;
import com.cloud.network.dao.PhysicalNetworkDao;
-import com.cloud.network.router.VpcNetworkHelper;
import com.cloud.network.vpc.Vpc;
import com.cloud.network.vpc.VpcManager;
import com.cloud.network.vpc.dao.VpcDao;
@@ -43,7 +40,6 @@ import com.cloud.network.vpc.dao.VpcOfferingDao;
import com.cloud.user.Account;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.DomainRouterVO;
-import com.cloud.vm.NicProfile;
import com.cloud.vm.VirtualMachineProfile.Param;
import com.cloud.vm.dao.DomainRouterDao;
@@ -56,7 +52,6 @@ public class VpcRouterDeploymentDefinition extends
RouterDeploymentDefinition {
protected PhysicalNetworkDao pNtwkDao;
protected VpcManager vpcMgr;
protected VlanDao vlanDao;
- protected VpcNetworkHelper vpcNetworkHelper;
protected Vpc vpc;
@@ -164,9 +159,7 @@ public class VpcRouterDeploymentDefinition extends
RouterDeploymentDefinition {
@Override
protected void deployAllVirtualRouters() throws
ConcurrentOperationException, InsufficientCapacityException,
ResourceUnavailableException {
- LinkedHashMap<Network, List<? extends NicProfile>> networks =
vpcNetworkHelper.createRouterNetworks(this);
-
- DomainRouterVO router = nwHelper.deployRouter(this, networks, true,
vpcMgr.getSupportedVpcHypervisors());
+ DomainRouterVO router = nwHelper.deployRouter(this, true,
vpcMgr.getSupportedVpcHypervisors());
if (router != null) {
routers.add(router);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/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 e76186f..74b704d 100644
---
a/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java
+++
b/server/test/org/cloud/network/router/deployment/RouterDeploymentDefinitionTest.java
@@ -798,11 +798,10 @@ public class RouterDeploymentDefinitionTest extends
RouterDeploymentDefinitionTe
//this.deployment.routers.add(routerVO1);
RouterDeploymentDefinition deploymentUT = spy(this.deployment);
doReturn(2).when(deploymentUT).getNumberOfRoutersToDeploy();
-
doReturn(null).when(this.mockNetworkGeneralHelper).createRouterNetworks(deploymentUT);
final DomainRouterVO routerVO1 = mock(DomainRouterVO.class);
final DomainRouterVO routerVO2 = mock(DomainRouterVO.class);
- when(this.mockNetworkGeneralHelper.deployRouter(deploymentUT, null,
false, null))
+ when(this.mockNetworkGeneralHelper.deployRouter(deploymentUT, false,
null))
.thenReturn(routerVO1).thenReturn(routerVO2);
// Execute
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c43e6efd/server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java
----------------------------------------------------------------------
diff --git
a/server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java
b/server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java
index 3a72fa9..7b06aa0 100644
---
a/server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java
+++
b/server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java
@@ -36,7 +36,7 @@ import com.cloud.deploy.DeployDestination;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
-import com.cloud.network.router.VpcNetworkHelper;
+import com.cloud.network.router.NicProfileHelper;
import com.cloud.network.vpc.VpcManager;
import com.cloud.network.vpc.VpcVO;
import com.cloud.network.vpc.dao.VpcDao;
@@ -64,7 +64,7 @@ public class VpcRouterDeploymentDefinitionTest extends
RouterDeploymentDefinitio
@Mock
protected VpcManager vpcMgr;
@Mock
- protected VpcNetworkHelper vpcHelper;
+ protected NicProfileHelper vpcHelper;
protected RouterDeploymentDefinition deployment;