diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java index 8429c6073de..8f13aa25927 100644 --- a/usage/src/com/cloud/usage/UsageManagerImpl.java +++ b/usage/src/com/cloud/usage/UsageManagerImpl.java @@ -1726,7 +1726,7 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna Long offeringId = event.getOfferingId(); Long zoneId = event.getZoneId(); Long accountId = event.getAccountId(); - long size = event.getSize(); + long size = event.getSize() == null ? 0L : event.getSize().longValue(); Date created = event.getCreateDate(); Account acct = _accountDao.findByIdIncludingRemoved(event.getAccountId()); Long domainId = acct.getDomainId(); diff --git a/usage/src/com/cloud/usage/parser/IPAddressUsageParser.java b/usage/src/com/cloud/usage/parser/IPAddressUsageParser.java index adeff01dae4..6bd35d3ca7c 100644 --- a/usage/src/com/cloud/usage/parser/IPAddressUsageParser.java +++ b/usage/src/com/cloud/usage/parser/IPAddressUsageParser.java @@ -101,6 +101,11 @@ public class IPAddressUsageParser { IpAssignDate = startDate; } + // ignore if assign date is after end date + if (IpAssignDate.after(endDate)) { + continue; + } + long currentDuration = (IpReleaseDeleteDate.getTime() - IpAssignDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) updateIpUsageData(usageMap, key, usageIp.getId(), currentDuration); diff --git a/usage/src/com/cloud/usage/parser/LoadBalancerUsageParser.java b/usage/src/com/cloud/usage/parser/LoadBalancerUsageParser.java index 1b813b7a845..fd51bf14ff1 100644 --- a/usage/src/com/cloud/usage/parser/LoadBalancerUsageParser.java +++ b/usage/src/com/cloud/usage/parser/LoadBalancerUsageParser.java @@ -98,6 +98,10 @@ public class LoadBalancerUsageParser { lbCreateDate = startDate; } + if (lbCreateDate.after(endDate)) { + continue; + } + long currentDuration = (lbDeleteDate.getTime() - lbCreateDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) updateLBUsageData(usageMap, key, usageLB.getId(), currentDuration); diff --git a/usage/src/com/cloud/usage/parser/NetworkOfferingUsageParser.java b/usage/src/com/cloud/usage/parser/NetworkOfferingUsageParser.java index 4a5a1d2e58c..d541ddab821 100644 --- a/usage/src/com/cloud/usage/parser/NetworkOfferingUsageParser.java +++ b/usage/src/com/cloud/usage/parser/NetworkOfferingUsageParser.java @@ -99,6 +99,10 @@ public class NetworkOfferingUsageParser { noCreateDate = startDate; } + if (noCreateDate.after(endDate)) { + continue; + } + long currentDuration = (noDeleteDate.getTime() - noCreateDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) updateNOUsageData(usageMap, key, usageNO.getVmInstanceId(), currentDuration); diff --git a/usage/src/com/cloud/usage/parser/PortForwardingUsageParser.java b/usage/src/com/cloud/usage/parser/PortForwardingUsageParser.java index 37c7751cff4..f58ca0c958e 100644 --- a/usage/src/com/cloud/usage/parser/PortForwardingUsageParser.java +++ b/usage/src/com/cloud/usage/parser/PortForwardingUsageParser.java @@ -98,6 +98,10 @@ public class PortForwardingUsageParser { pfCreateDate = startDate; } + if (pfCreateDate.after(endDate)) { + continue; + } + long currentDuration = (pfDeleteDate.getTime() - pfCreateDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) updatePFUsageData(usageMap, key, usagePF.getId(), currentDuration); diff --git a/usage/src/com/cloud/usage/parser/SecurityGroupUsageParser.java b/usage/src/com/cloud/usage/parser/SecurityGroupUsageParser.java index ea86d49f14f..4fce2f2a0a2 100644 --- a/usage/src/com/cloud/usage/parser/SecurityGroupUsageParser.java +++ b/usage/src/com/cloud/usage/parser/SecurityGroupUsageParser.java @@ -99,6 +99,10 @@ public class SecurityGroupUsageParser { sgCreateDate = startDate; } + if (sgCreateDate.after(endDate)) { + continue; + } + long currentDuration = (sgDeleteDate.getTime() - sgCreateDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) updateSGUsageData(usageMap, key, usageSG.getVmInstanceId(), currentDuration); diff --git a/usage/src/com/cloud/usage/parser/StorageUsageParser.java b/usage/src/com/cloud/usage/parser/StorageUsageParser.java index f1091a17643..6745afe2605 100644 --- a/usage/src/com/cloud/usage/parser/StorageUsageParser.java +++ b/usage/src/com/cloud/usage/parser/StorageUsageParser.java @@ -107,6 +107,10 @@ public class StorageUsageParser { storageCreateDate = startDate; } + if (storageCreateDate.after(endDate)) { + continue; + } + long currentDuration = (storageDeleteDate.getTime() - storageCreateDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) updateStorageUsageData(usageMap, key, usageStorage.getId(), currentDuration); diff --git a/usage/src/com/cloud/usage/parser/VMInstanceUsageParser.java b/usage/src/com/cloud/usage/parser/VMInstanceUsageParser.java index 684412f0458..7711bbb86c8 100644 --- a/usage/src/com/cloud/usage/parser/VMInstanceUsageParser.java +++ b/usage/src/com/cloud/usage/parser/VMInstanceUsageParser.java @@ -104,6 +104,10 @@ public class VMInstanceUsageParser { vmStartDate = startDate; } + if (vmStartDate.after(endDate)) { + continue; + } + long currentDuration = (vmEndDate.getTime() - vmStartDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) switch (usageType) { diff --git a/usage/src/com/cloud/usage/parser/VPNUserUsageParser.java b/usage/src/com/cloud/usage/parser/VPNUserUsageParser.java index 619c8619398..c8ad3272df7 100644 --- a/usage/src/com/cloud/usage/parser/VPNUserUsageParser.java +++ b/usage/src/com/cloud/usage/parser/VPNUserUsageParser.java @@ -94,6 +94,10 @@ public class VPNUserUsageParser { vuCreateDate = startDate; } + if (vuCreateDate.after(endDate)) { + continue; + } + long currentDuration = (vuDeleteDate.getTime() - vuCreateDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) updateVUUsageData(usageMap, key, usageVU.getUserId(), currentDuration); diff --git a/usage/src/com/cloud/usage/parser/VolumeUsageParser.java b/usage/src/com/cloud/usage/parser/VolumeUsageParser.java index 81ebdc0e515..876cfc7eb30 100644 --- a/usage/src/com/cloud/usage/parser/VolumeUsageParser.java +++ b/usage/src/com/cloud/usage/parser/VolumeUsageParser.java @@ -103,6 +103,10 @@ public class VolumeUsageParser { volCreateDate = startDate; } + if (volCreateDate.after(endDate)) { + continue; + } + long currentDuration = (volDeleteDate.getTime() - volCreateDate.getTime()) + 1; // make sure this is an inclusive check for milliseconds (i.e. use n - m + 1 to find total number of millis to charge) updateVolUsageData(usageMap, key, usageVol.getId(), currentDuration);