You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/01/18 12:42:08 UTC

git commit: updated refs/heads/4.5 to 065c556

Repository: cloudstack
Updated Branches:
  refs/heads/4.5 2c515395d -> 065c556cf


CLOUDSTACK-8166: add boundary checks in various usage parsers

- Add boundary condition to continue looping if creation data is after end date
- Add null pointer fix for create snapshot bug

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/065c556c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/065c556c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/065c556c

Branch: refs/heads/4.5
Commit: 065c556cf5fe92dc6a4063538280e728c2719e51
Parents: 2c51539
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Sun Jan 18 17:06:39 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Sun Jan 18 17:11:07 2015 +0530

----------------------------------------------------------------------
 usage/src/com/cloud/usage/UsageManagerImpl.java                 | 2 +-
 usage/src/com/cloud/usage/parser/IPAddressUsageParser.java      | 5 +++++
 usage/src/com/cloud/usage/parser/LoadBalancerUsageParser.java   | 4 ++++
 .../src/com/cloud/usage/parser/NetworkOfferingUsageParser.java  | 4 ++++
 usage/src/com/cloud/usage/parser/PortForwardingUsageParser.java | 4 ++++
 usage/src/com/cloud/usage/parser/SecurityGroupUsageParser.java  | 4 ++++
 usage/src/com/cloud/usage/parser/StorageUsageParser.java        | 4 ++++
 usage/src/com/cloud/usage/parser/VMInstanceUsageParser.java     | 4 ++++
 usage/src/com/cloud/usage/parser/VPNUserUsageParser.java        | 4 ++++
 usage/src/com/cloud/usage/parser/VolumeUsageParser.java         | 4 ++++
 10 files changed, 38 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/UsageManagerImpl.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java
index 8429c60..8f13aa2 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();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/IPAddressUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/IPAddressUsageParser.java b/usage/src/com/cloud/usage/parser/IPAddressUsageParser.java
index adeff01..6bd35d3 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);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/LoadBalancerUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/LoadBalancerUsageParser.java b/usage/src/com/cloud/usage/parser/LoadBalancerUsageParser.java
index 1b813b7..fd51bf1 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);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/NetworkOfferingUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/NetworkOfferingUsageParser.java b/usage/src/com/cloud/usage/parser/NetworkOfferingUsageParser.java
index 4a5a1d2..d541dda 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);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/PortForwardingUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/PortForwardingUsageParser.java b/usage/src/com/cloud/usage/parser/PortForwardingUsageParser.java
index 37c7751..f58ca0c 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);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/SecurityGroupUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/SecurityGroupUsageParser.java b/usage/src/com/cloud/usage/parser/SecurityGroupUsageParser.java
index ea86d49..4fce2f2 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);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/StorageUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/StorageUsageParser.java b/usage/src/com/cloud/usage/parser/StorageUsageParser.java
index f1091a1..6745afe 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);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/VMInstanceUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/VMInstanceUsageParser.java b/usage/src/com/cloud/usage/parser/VMInstanceUsageParser.java
index 684412f..7711bbb 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) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/VPNUserUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/VPNUserUsageParser.java b/usage/src/com/cloud/usage/parser/VPNUserUsageParser.java
index 619c861..c8ad327 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);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/065c556c/usage/src/com/cloud/usage/parser/VolumeUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/VolumeUsageParser.java b/usage/src/com/cloud/usage/parser/VolumeUsageParser.java
index 81ebdc0..876cfc7 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);