From f47cfc6eb16bf0fa5830327207a2d3fdf24ab700 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Mon, 28 Jul 2014 15:47:44 -0700 Subject: [PATCH] CLOUDSTACK-7186: Revert "CLOUDSTACK-7182: NPE while trying to deploy VMs in parallel in isolated network" This reverts commit 47d6a64b319ab064c4b855346f2bfdb250fb9ad8, which broke VPC completely. --- .../orchestration/NetworkOrchestrator.java | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java index 20f8212e742..64a1f3a4994 100755 --- a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java +++ b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java @@ -925,7 +925,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra boolean isNetworkImplemented(NetworkVO network) { Network.State state = network.getState(); - if (state == Network.State.Implemented) { + if (state == Network.State.Implemented || state == Network.State.Implementing) { return true; } else if (state == Network.State.Setup) { DataCenterVO zone = _dcDao.findById(network.getDataCenterId()); @@ -1277,19 +1277,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra }); for (NicVO nic : nics) { - Pair implemented = null; - if (vmProfile.getVirtualMachine().getType() != Type.DomainRouter) { - implemented = implementNetwork(nic.getNetworkId(), dest, context); - } else { - // At the time of implementing network (using implementNetwork() method), if the VR needs to be deployed then - // it follows the same path of regular VM deployment. This leads to a nested call to implementNetwork() while - // preparing VR nics. This flow creates issues in dealing with network state transitions. The original call - // puts network in "Implementing" state and then the nested call again tries to put it into same state resulting - // in issues. In order to avoid it, implementNetwork() call for VR is replaced with below code. - NetworkVO network = _networksDao.findById(nic.getNetworkId()); - NetworkGuru guru = AdapterBase.getAdapterByName(networkGurus, network.getGuruName()); - implemented = new Pair(guru, network); - } + Pair implemented = implementNetwork(nic.getNetworkId(), dest, context); if (implemented == null || implemented.first() == null) { s_logger.warn("Failed to implement network id=" + nic.getNetworkId() + " as a part of preparing nic id=" + nic.getId()); throw new CloudRuntimeException("Failed to implement network id=" + nic.getNetworkId() + " as a part preparing nic id=" + nic.getId());