From 1f45148a296e40ffe33c76b69f58e3711213b063 Mon Sep 17 00:00:00 2001 From: alena Date: Tue, 13 Sep 2011 16:27:32 -0700 Subject: [PATCH] Don't update resource count for system account --- .../com/cloud/network/NetworkManagerImpl.java | 31 ++++++++----------- .../com/cloud/user/AccountManagerImpl.java | 10 ++++++ 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index a686fa892c8..6878debe727 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -2933,28 +2933,23 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag if (ip.getState() != State.Releasing) { txn.start(); - Account owner = _accountMgr.getAccount(ip.getAccountId()); + // don't decrement resource count for direct ips + if (ip.getAssociatedWithNetworkId() != null) { + _accountMgr.decrementResourceCount(_ipAddressDao.findById(addrId).getAccountId(), ResourceType.public_ip); + } + + long isSourceNat = (ip.isSourceNat()) ? 1 : 0; // Save usage event - if (owner.getAccountId() != Account.ACCOUNT_ID_SYSTEM) { - // don't decrement resource count for direct ips - if (ip.getAssociatedWithNetworkId() != null) { - _accountMgr.decrementResourceCount(_ipAddressDao.findById(addrId).getAccountId(), ResourceType.public_ip); - } - - long isSourceNat = (ip.isSourceNat()) ? 1 : 0; - - if (ip.getAccountId() != Account.ACCOUNT_ID_SYSTEM) { - NetworkVO network = _networksDao.findByIdIncludingRemoved(ip.getSourceNetworkId()); - String guestType = ""; - if( (network != null) && (network.getGuestType() != null)){ - guestType = network.getGuestType().toString(); - } - - UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_NET_IP_RELEASE, ip.getAccountId(), ip.getDataCenterId(), addrId, ip.getAddress().addr(), isSourceNat, guestType); - _usageEventDao.persist(usageEvent); + if (ip.getAccountId() != Account.ACCOUNT_ID_SYSTEM) { + NetworkVO network = _networksDao.findByIdIncludingRemoved(ip.getSourceNetworkId()); + String guestType = ""; + if( (network != null) && (network.getGuestType() != null)){ + guestType = network.getGuestType().toString(); } + UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_NET_IP_RELEASE, ip.getAccountId(), ip.getDataCenterId(), addrId, ip.getAddress().addr(), isSourceNat, guestType); + _usageEventDao.persist(usageEvent); } ip = _ipAddressDao.markAsUnavailable(addrId); diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index fa45b840f65..2d256a987bc 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -258,6 +258,11 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag @Override public void incrementResourceCount(long accountId, ResourceType type, Long... delta) { + //don't upgrade resource count for system account + if (accountId == Account.ACCOUNT_ID_SYSTEM) { + s_logger.trace("Not incrementing resource count for system accounts, returning"); + return; + } long numToIncrement = (delta.length == 0) ? 1 : delta[0].longValue(); if (!updateResourceCount(accountId, type, true, numToIncrement)) { @@ -268,6 +273,11 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag @Override public void decrementResourceCount(long accountId, ResourceType type, Long... delta) { + //don't upgrade resource count for system account + if (accountId == Account.ACCOUNT_ID_SYSTEM) { + s_logger.trace("Not decrementing resource count for system accounts, returning"); + return; + } long numToDecrement = (delta.length == 0) ? 1 : delta[0].longValue(); if (!updateResourceCount(accountId, type, false, numToDecrement)) {