From faa3f3d935c482e5297e36257eb9d9dbc47ac8e2 Mon Sep 17 00:00:00 2001 From: Kaiyan Sheng Date: Wed, 16 Dec 2015 17:42:33 -0700 Subject: [PATCH] Bug in return 3 digit timestamp Previous code change didnt consider when millisecond=000 condition. Change-Id: I6af60c7193d51e7ddfb3737ed4db5d1f1c775289 --- .../influxdb/InfluxV9MeasurementRepo.java | 7 +------ .../persistence/influxdb/InfluxV9Utils.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/InfluxV9MeasurementRepo.java b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/InfluxV9MeasurementRepo.java index 2b9d2cbdf..cd7ab596a 100644 --- a/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/InfluxV9MeasurementRepo.java +++ b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/InfluxV9MeasurementRepo.java @@ -21,7 +21,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.commons.lang.StringUtils; import java.io.IOException; import java.util.HashMap; @@ -141,11 +140,7 @@ public class InfluxV9MeasurementRepo implements MeasurementRepo { influxV9Utils.filterPrivateTags(serie.getTags())); for (String[] values : serie.getValues()) { - final int length = values[0].length(); - final String millisecond = values[0].substring(20, length-1); - final String millisecond_3d = StringUtils.rightPad(millisecond, 3, '0'); - final String timestamp = values[0].substring(0, 19) + '.' + millisecond_3d + 'Z'; - + final String timestamp = influxV9Utils.threeDigitMillisTimestamp(values[0]); measurements.addMeasurement( new Object[]{timestamp, Double.parseDouble(values[1]), getValueMeta(values)}); } diff --git a/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/InfluxV9Utils.java b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/InfluxV9Utils.java index 031380e55..9b21432e7 100644 --- a/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/InfluxV9Utils.java +++ b/java/src/main/java/monasca/api/infrastructure/persistence/influxdb/InfluxV9Utils.java @@ -15,6 +15,7 @@ package monasca.api.infrastructure.persistence.influxdb; import com.google.inject.Inject; +import org.apache.commons.lang.StringUtils; import org.joda.time.DateTime; import org.joda.time.format.ISODateTimeFormat; @@ -258,4 +259,17 @@ public class InfluxV9Utils { return filteredMap; } + + public String threeDigitMillisTimestamp(String origTimestamp) { + final int length = origTimestamp.length(); + final String timestamp; + if (length == 20) { + timestamp = origTimestamp.substring(0, 19) + ".000Z"; + } else { + final String millisecond = origTimestamp.substring(20, length - 1); + final String millisecond_3d = StringUtils.rightPad(millisecond, 3, '0'); + timestamp = origTimestamp.substring(0, 19) + '.' + millisecond_3d + 'Z'; + } + return timestamp; + } }