aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java')
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java24
1 files changed, 15 insertions, 9 deletions
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java b/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java
index 512dbe76..0c89ae7f 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2020-2021 Nordix Foundation.
- * Modifications Copyright (C) 2019 AT&T Intellectual Property.
+ * Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,6 +47,9 @@ public class StatisticsRestProvider {
private static final Logger LOGGER = LoggerFactory.getLogger(StatisticsRestProvider.class);
private static final String GET_STATISTICS_ERR_MSG = "fetch database failed";
private static final String DESC_ORDER = "DESC";
+ private static final String DEFAULT_GROUP = "defaultGroup";
+ private static final int MIN_RECORD_COUNT = 1;
+ private static final int MAX_RECORD_COUNT = 100;
/**
* Returns the current statistics of pap component.
@@ -84,24 +87,27 @@ public class StatisticsRestProvider {
String pdpName, int recordCount) throws PfModelException {
final PolicyModelsProviderFactoryWrapper modelProviderWrapper =
Registry.get(PapConstants.REG_PAP_DAO_FACTORY, PolicyModelsProviderFactoryWrapper.class);
- Map<String, Map<String, List<PdpStatistics>>> pdpStatisticsMap;
try (PolicyModelsProvider databaseProvider = modelProviderWrapper.create()) {
Instant startTime = null;
Instant endTime = null;
- if (groupName == null) {
- pdpStatisticsMap = generatePdpStatistics(databaseProvider.getPdpStatistics(pdpName, startTime));
- } else {
- pdpStatisticsMap = generatePdpStatistics(databaseProvider.getFilteredPdpStatistics(pdpName, groupName,
- subType, startTime, endTime, DESC_ORDER, recordCount));
- }
+ /*
+ * getFilteredPdpStatistics() will throw an NPE if a group name is not specified, so we
+ * provide a default value
+ */
+ String grpnm = (groupName != null ? groupName : DEFAULT_GROUP);
+
+ int nrecords = Math.min(MAX_RECORD_COUNT, Math.max(MIN_RECORD_COUNT, recordCount));
+
+ return generatePdpStatistics(databaseProvider.getFilteredPdpStatistics(pdpName, grpnm,
+ subType, startTime, endTime, DESC_ORDER, nrecords));
+
} catch (final PfModelException exp) {
String errorMessage = GET_STATISTICS_ERR_MSG + "groupName:" + groupName + "subType:" + subType + "pdpName:"
+ pdpName + exp.getMessage();
LOGGER.debug(errorMessage, exp);
throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage);
}
- return pdpStatisticsMap;
}
/**