From 7d7817ecba4ab279c1d36d79e96d68bf5ca48d85 Mon Sep 17 00:00:00 2001 From: alena Date: Fri, 10 Dec 2010 20:31:47 -0800 Subject: [PATCH] Delete corresponding networks during zone deletion. --- .../com/cloud/configuration/ConfigurationManagerImpl.java | 8 ++++++++ server/src/com/cloud/network/dao/NetworkDao.java | 2 ++ server/src/com/cloud/network/dao/NetworkDaoImpl.java | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index b4a2625c330..08b51a8b6ed 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -860,6 +860,14 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura try { // Delete vNet _zoneDao.deleteVnet(zoneId); + + //Delete networks + List networks = _networkDao.listByZone(zoneId); + if (networks != null && !networks.isEmpty()) { + for (NetworkVO network : networks) { + _networkDao.remove(network.getId()); + } + } } catch (Exception ex) { s_logger.error("Failed to delete zone " + zoneId); throw new CloudRuntimeException("Failed to delete zone " + zoneId); diff --git a/server/src/com/cloud/network/dao/NetworkDao.java b/server/src/com/cloud/network/dao/NetworkDao.java index 2ebd8ad170d..63c07360835 100644 --- a/server/src/com/cloud/network/dao/NetworkDao.java +++ b/server/src/com/cloud/network/dao/NetworkDao.java @@ -49,6 +49,8 @@ public interface NetworkDao extends GenericDao { List listBy(long zoneId, String broadcastUri); + List listByZone(long zoneId); + void changeActiveNicsBy(long networkId, int nicsCount); int getActiveNicsIn(long networkId); diff --git a/server/src/com/cloud/network/dao/NetworkDaoImpl.java b/server/src/com/cloud/network/dao/NetworkDaoImpl.java index ddbb1514bd3..afce8133008 100644 --- a/server/src/com/cloud/network/dao/NetworkDaoImpl.java +++ b/server/src/com/cloud/network/dao/NetworkDaoImpl.java @@ -210,6 +210,13 @@ public class NetworkDaoImpl extends GenericDaoBase implements N return search(sc, null); } + @Override + public List listByZone(long zoneId) { + SearchCriteria sc = ZoneBroadcastUriSearch.create(); + sc.setParameters("dataCenterId", zoneId); + return search(sc, null); + } + @Override public void changeActiveNicsBy(long networkId, int count) { _opDao.changeActiveNicsBy(networkId, count);