From b586291912459da1841651f1b3938a5774aceb62 Mon Sep 17 00:00:00 2001 From: George Tziavas Date: Thu, 19 Jun 2025 14:26:06 +0300 Subject: [PATCH 1/2] mapper turns all OffsetDateTimes to UTC --- .../org/etsi/osl/metrico/mapper/JobMapper.java | 16 ++++++++++++++++ .../metrico/prometheus/PrometheusQueries.java | 9 +++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/etsi/osl/metrico/mapper/JobMapper.java b/src/main/java/org/etsi/osl/metrico/mapper/JobMapper.java index b42468d..13083ed 100644 --- a/src/main/java/org/etsi/osl/metrico/mapper/JobMapper.java +++ b/src/main/java/org/etsi/osl/metrico/mapper/JobMapper.java @@ -8,6 +8,8 @@ import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -61,6 +63,20 @@ public class JobMapper { job.setEndDateTime(measurementCollectionJob.getScheduleDefinition().get(0).getScheduleDefinitionEndTime()); } + if (job.getStartDateTime() == null) { + job.setStartDateTime(OffsetDateTime.now()); + } else if (job.getEndDateTime().getOffset() != ZoneOffset.UTC) { + OffsetDateTime startDateTimeUTC = job.getStartDateTime().withOffsetSameInstant(ZoneOffset.UTC); + job.setStartDateTime(startDateTimeUTC); + } + + if (job.getEndDateTime() == null) { + job.setEndDateTime(job.getStartDateTime().plusHours(1)); + } else if (job.getEndDateTime().getOffset() != ZoneOffset.UTC) { + OffsetDateTime endDateTimeUTC = job.getEndDateTime().withOffsetSameInstant(ZoneOffset.UTC); + job.setEndDateTime(endDateTimeUTC); + } + if (measurementCollectionJob.getGranularity() != null){ Granularity granularity = measurementCollectionJob.getGranularity(); diff --git a/src/main/java/org/etsi/osl/metrico/prometheus/PrometheusQueries.java b/src/main/java/org/etsi/osl/metrico/prometheus/PrometheusQueries.java index 71c9a6c..95491d7 100644 --- a/src/main/java/org/etsi/osl/metrico/prometheus/PrometheusQueries.java +++ b/src/main/java/org/etsi/osl/metrico/prometheus/PrometheusQueries.java @@ -19,6 +19,7 @@ import reactor.core.publisher.Mono; import java.time.Duration; import java.time.OffsetDateTime; +import java.time.ZoneOffset; import java.util.concurrent.TimeUnit; @Component @@ -90,12 +91,8 @@ public class PrometheusQueries { public Job startPeriodicQuery(String prometheusUrl, String query, final Job ajob, MeasurementCollectionJob mcj) { Job job = ajob; - if (job.getStartDateTime() == null) { - job.setStartDateTime(OffsetDateTime.now()); - } - if (job.getEndDateTime() == null) { - job.setEndDateTime(job.getStartDateTime().plusHours(1)); - } + + if (job.getExecutionInterval() == null) { job.setExecutionInterval(180); } -- GitLab From 59e6753d63acb716fe08caa6ffeb9f40adc5f5ec Mon Sep 17 00:00:00 2001 From: George Tziavas Date: Thu, 19 Jun 2025 14:36:03 +0300 Subject: [PATCH 2/2] Fixed test (default values are defined in the mapper --- .../etsi/osl/metrico/prometheus/PrometheusQueriesTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/test/java/org/etsi/osl/metrico/prometheus/PrometheusQueriesTest.java b/src/test/java/org/etsi/osl/metrico/prometheus/PrometheusQueriesTest.java index 1d0677e..066e18c 100644 --- a/src/test/java/org/etsi/osl/metrico/prometheus/PrometheusQueriesTest.java +++ b/src/test/java/org/etsi/osl/metrico/prometheus/PrometheusQueriesTest.java @@ -45,8 +45,6 @@ class PrometheusQueriesTest { @Test void testStartPeriodicQuery_SetsDefaultsAndSchedulesJob() { Job job = new Job(); - job.setStartDateTime(null); - job.setEndDateTime(null); job.setExecutionInterval(null); MeasurementCollectionJob mcj = new MeasurementCollectionJob(); @@ -58,8 +56,6 @@ class PrometheusQueriesTest { Job result = prometheusQueries.startPeriodicQuery("http://localhost:9090", "query=up", job, mcj); - assertNotNull(result.getStartDateTime()); - assertNotNull(result.getEndDateTime()); assertNotNull(result.getExecutionInterval()); assertEquals(ExecutionStateType.INPROGRESS, result.getState()); } -- GitLab