From 3bd089acb529c5884e8f5ececd7c7cba3ae97b55 Mon Sep 17 00:00:00 2001 From: edison Date: Sat, 4 Dec 2010 16:49:05 -0800 Subject: [PATCH] don't break old code --- .../src/com/cloud/alert/AlertManagerImpl.java | 8 ++++++-- .../com/cloud/capacity/dao/CapacityDao.java | 1 + .../cloud/capacity/dao/CapacityDaoImpl.java | 19 ++++++++++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/alert/AlertManagerImpl.java b/server/src/com/cloud/alert/AlertManagerImpl.java index 96958e9cd49..65736c16e06 100644 --- a/server/src/com/cloud/alert/AlertManagerImpl.java +++ b/server/src/com/cloud/alert/AlertManagerImpl.java @@ -357,8 +357,12 @@ public class AlertManagerImpl implements AlertManager { try { txn.start(); // delete the old records - _capacityDao.clearNonStorageCapacities(); - + if (_useNewNetworking) { + _capacityDao.clearNonStorageCapacities2(); + } else { + _capacityDao.clearNonStorageCapacities(); + } + for (CapacityVO newCapacity : newCapacities) { s_logger.trace("Executing capacity update"); _capacityDao.persist(newCapacity); diff --git a/server/src/com/cloud/capacity/dao/CapacityDao.java b/server/src/com/cloud/capacity/dao/CapacityDao.java index 36502e06d1d..9d26287abce 100644 --- a/server/src/com/cloud/capacity/dao/CapacityDao.java +++ b/server/src/com/cloud/capacity/dao/CapacityDao.java @@ -26,5 +26,6 @@ public interface CapacityDao extends GenericDao { void clearNonStorageCapacities(); void clearStorageCapacities(); CapacityVO findByHostIdType(Long hostId, short capacityType); + void clearNonStorageCapacities2(); } diff --git a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java index b1f5cdb258e..6a23621a2de 100644 --- a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java +++ b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java @@ -40,7 +40,8 @@ public class CapacityDaoImpl extends GenericDaoBase implements private static final String ADD_ALLOCATED_SQL = "UPDATE `cloud`.`op_host_capacity` SET used_capacity = used_capacity + ? WHERE host_id = ? AND capacity_type = ?"; private static final String SUBTRACT_ALLOCATED_SQL = "UPDATE `cloud`.`op_host_capacity` SET used_capacity = used_capacity - ? WHERE host_id = ? AND capacity_type = ?"; private static final String CLEAR_STORAGE_CAPACITIES = "DELETE FROM `cloud`.`op_host_capacity` WHERE capacity_type=2 OR capacity_type=3 OR capacity_type=6"; //clear storage and secondary_storage capacities - private static final String CLEAR_NON_STORAGE_CAPACITIES = "DELETE FROM `cloud`.`op_host_capacity` WHERE capacity_type<>2 AND capacity_type<>3 AND capacity_type<>6 AND capacity_type<>0 AND capacity_type<>1"; //clear non-storage and non-secondary_storage capacities + private static final String CLEAR_NON_STORAGE_CAPACITIES = "DELETE FROM `cloud`.`op_host_capacity` WHERE capacity_type<>2 AND capacity_type<>3 AND capacity_type<>6"; //clear non-storage and non-secondary_storage capacities + private static final String CLEAR_NON_STORAGE_CAPACITIES2 = "DELETE FROM `cloud`.`op_host_capacity` WHERE capacity_type<>2 AND capacity_type<>3 AND capacity_type<>6 AND capacity_type<>0 AND capacity_type<>1"; //clear non-storage and non-secondary_storage capacities private SearchBuilder _hostIdTypeSearch; public CapacityDaoImpl() { @@ -88,6 +89,22 @@ public class CapacityDaoImpl extends GenericDaoBase implements txn.rollback(); s_logger.warn("Exception clearing non storage capacities", e); } + } + + @Override + public void clearNonStorageCapacities2() { + Transaction txn = Transaction.currentTxn(); + PreparedStatement pstmt = null; + try { + txn.start(); + String sql = CLEAR_NON_STORAGE_CAPACITIES2; + pstmt = txn.prepareAutoCloseStatement(sql); + pstmt.executeUpdate(); + txn.commit(); + } catch (Exception e) { + txn.rollback(); + s_logger.warn("Exception clearing non storage capacities", e); + } } @Override