From 470c80a2c6d4d43dcb197c36ffd2c6bcd96d6910 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Mon, 20 Jun 2011 12:01:01 -0700 Subject: [PATCH] bug 9154: Update addVirtualMachineIntoNetwork to accept routers as parameter --- server/src/com/cloud/network/element/DhcpElement.java | 4 +++- .../src/com/cloud/network/element/VirtualRouterElement.java | 5 +++-- .../cloud/network/router/VirtualNetworkApplianceManager.java | 2 +- .../network/router/VirtualNetworkApplianceManagerImpl.java | 4 +--- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/server/src/com/cloud/network/element/DhcpElement.java b/server/src/com/cloud/network/element/DhcpElement.java index 092f74588f2..f4f82a5ea58 100644 --- a/server/src/com/cloud/network/element/DhcpElement.java +++ b/server/src/com/cloud/network/element/DhcpElement.java @@ -118,7 +118,9 @@ public class DhcpElement extends AdapterBase implements NetworkElement, Password VirtualMachineProfile uservm = (VirtualMachineProfile)vm; Map params = new HashMap(1); params.put(VirtualMachineProfile.Param.RestartNetwork, true); - return _routerMgr.addVirtualMachineIntoNetwork(network, nic, uservm, dest, context, true) != null; + List routers = _routerMgr.deployDhcp(network, dest, uservm.getOwner(), uservm.getParameters()); + List rets = _routerMgr.addVirtualMachineIntoNetwork(network, nic, uservm, dest, context, routers); + return (rets != null) && (!rets.isEmpty()); } else { return false; } diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index b31688b588a..82ce21d75e5 100644 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -115,8 +115,9 @@ public class VirtualRouterElement extends DhcpElement implements NetworkElement, @SuppressWarnings("unchecked") VirtualMachineProfile uservm = (VirtualMachineProfile)vm; - - return _routerMgr.addVirtualMachineIntoNetwork(network, nic, uservm, dest, context, false) != null; + List routers = _routerMgr.deployVirtualRouter(network, dest, uservm.getOwner(), uservm.getParameters()); + List rets = _routerMgr.addVirtualMachineIntoNetwork(network, nic, uservm, dest, context, routers); + return (rets != null) && (!rets.isEmpty()); } else { return false; } diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java index b97b0658c02..738180bc078 100644 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java @@ -76,7 +76,7 @@ public interface VirtualNetworkApplianceManager extends Manager, VirtualNetworkA boolean deleteRemoteAccessVpn(Network network, RemoteAccessVpn vpn) throws ResourceUnavailableException; - List addVirtualMachineIntoNetwork(Network config, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context, Boolean startDhcp) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException; + List addVirtualMachineIntoNetwork(Network config, NicProfile nic, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context, List routers) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException; boolean associateIP (Network network, List ipAddress) throws ResourceUnavailableException; diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 3e2bcb8271b..9c42893fc25 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1406,10 +1406,9 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian } @Override - public List addVirtualMachineIntoNetwork(Network network, NicProfile nic, VirtualMachineProfile profile, DeployDestination dest, ReservationContext context, Boolean startDhcp) + public List addVirtualMachineIntoNetwork(Network network, NicProfile nic, VirtualMachineProfile profile, DeployDestination dest, ReservationContext context, List routers) throws ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException { - List routers = startDhcp ? deployDhcp(network, dest, profile.getOwner(), profile.getParameters()) : deployVirtualRouter(network, dest, profile.getOwner(), profile.getParameters()); List rets = new ArrayList(routers.size()); for (DomainRouterVO router : routers) { @@ -1484,7 +1483,6 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian } rets.add(router); } - /* Notice we just return the first router in the list, not all */ return rets; }