From 54b3fff12340dbc5150ce82ecd4ada3bfc63b834 Mon Sep 17 00:00:00 2001 From: alena Date: Wed, 23 Feb 2011 18:50:34 -0800 Subject: [PATCH] When network is removed, remove it from network GC list --- .../com/cloud/network/NetworkManagerImpl.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 10e798cbe83..d6aa345fb0f 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -1814,6 +1814,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag @Override @DB public void shutdownNetwork(long networkId, ReservationContext context) { + Transaction txn = Transaction.currentTxn(); txn.start(); NetworkVO network = _networksDao.lockRow(networkId, true); @@ -2014,16 +2015,23 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag _lastNetworkIdsToFree = stillFree; for (Long networkId : shutdownList) { - try { - - User caller = _accountMgr.getSystemUser(); - Account owner = _accountMgr.getAccount(getNetwork(networkId).getAccountId()); - - ReservationContext context = new ReservationContextImpl(null, null, caller, owner); - - shutdownNetwork(networkId, context); - } catch (Exception e) { - s_logger.warn("Unable to shutdown network: " + networkId); + + //If network is removed, unset gc flag for it + if (getNetwork(networkId) == null) { + s_logger.debug("Network id=" + networkId + " is removed, so clearing up corresponding gc check"); + _networksDao.clearCheckForGc(networkId); + } else { + try { + + User caller = _accountMgr.getSystemUser(); + Account owner = _accountMgr.getAccount(getNetwork(networkId).getAccountId()); + + ReservationContext context = new ReservationContextImpl(null, null, caller, owner); + + shutdownNetwork(networkId, context); + } catch (Exception e) { + s_logger.warn("Unable to shutdown network: " + networkId); + } } } } catch (Exception e) {