diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/org/onap/clamp/clds/dao/CldsDao.java | 55 | ||||
-rw-r--r-- | src/main/java/org/onap/clamp/clds/service/CldsService.java | 2 | ||||
-rw-r--r-- | src/main/resources/clds/camel/rest/clds-services.xml | 2 |
3 files changed, 57 insertions, 2 deletions
diff --git a/src/main/java/org/onap/clamp/clds/dao/CldsDao.java b/src/main/java/org/onap/clamp/clds/dao/CldsDao.java index b6e27c5e1..622b61743 100644 --- a/src/main/java/org/onap/clamp/clds/dao/CldsDao.java +++ b/src/main/java/org/onap/clamp/clds/dao/CldsDao.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.sql.DataSource; @@ -46,6 +47,8 @@ import org.onap.clamp.clds.model.CldsMonitoringDetails; import org.onap.clamp.clds.model.CldsServiceData; import org.onap.clamp.clds.model.CldsTemplate; import org.onap.clamp.clds.model.CldsToscaModel; +import org.onap.clamp.clds.model.CldsToscaModelDetails; +import org.onap.clamp.clds.model.CldsToscaModelRevision; import org.onap.clamp.clds.model.ValueItem; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; @@ -542,6 +545,58 @@ public class CldsDao { return cldsToscaModels; } + // Retrieve Tosca Models & its revisions by policy Type. + private List<CldsToscaModelDetails> getAllToscaModelVersion(String toscaModelName, String policyType, + String version) { + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); + List<CldsToscaModelDetails> cldsToscaModelDetailsList = new ArrayList<>(); + String toscaModelSql = "SELECT tm.tosca_model_name, tm.tosca_model_id, tm.policy_type, tmr.tosca_model_revision_id, tmr.version, tmr.user_id, tmr.createdTimestamp, tmr.lastUpdatedTimestamp " + + "FROM tosca_model tm, tosca_model_revision tmr " + "WHERE tmr.tosca_model_id = tm.tosca_model_id " + + ((policyType != null) ? (" AND tm.policy_type = '" + policyType + "'") : " ") + + ((toscaModelName != null) ? (" AND tm.tosca_model_name = '" + toscaModelName + "'") : " ") + + ((version != null) ? (" AND tmr.version = '" + version + "'") : ""); + + List<Map<String, Object>> rows = jdbcTemplateObject.queryForList(toscaModelSql); + + if (rows != null && !rows.isEmpty()) { + // Get list of all available modelIds + List<String> listofModelIds = new ArrayList<>(); + for (Map<String, Object> r : rows) { + if (r != null) { + listofModelIds.add((String) r.get("tosca_model_id")); + } + } + // Filter Distinct elements using streams + listofModelIds = listofModelIds.stream().distinct().collect(Collectors.toList()); + + // TODO change logic using java8 + for (String modelId : listofModelIds) { + CldsToscaModelDetails cldsToscaModelDetails = new CldsToscaModelDetails(); + List<CldsToscaModelRevision> revisions = new ArrayList<>(); + for (Map<String, Object> row : rows) { + String id = (String) row.get("tosca_model_id"); + if (modelId.equalsIgnoreCase(id)) { + cldsToscaModelDetails.setId(id); + cldsToscaModelDetails.setPolicyType((String) row.get("policy_type")); + cldsToscaModelDetails.setToscaModelName((String) row.get("tosca_model_name")); + cldsToscaModelDetails.setUserId((String) row.get("user_id")); + + CldsToscaModelRevision modelRevision = new CldsToscaModelRevision(); + modelRevision.setRevisionId((String) row.get("tosca_model_revision_id")); + modelRevision.setVersion(((Double) row.get("version"))); + modelRevision.setUserId((String) row.get("user_id")); + modelRevision.setCreatedDate(sdf.format(row.get("createdTimestamp"))); + modelRevision.setLastUpdatedDate(sdf.format(row.get("lastUpdatedTimestamp"))); + revisions.add(modelRevision); + } + } + cldsToscaModelDetails.setToscaModelRevisions(revisions); + cldsToscaModelDetailsList.add(cldsToscaModelDetails); + } + } + return cldsToscaModelDetailsList; + } + /** * Method to upload a new version of Tosca Model Yaml in Database * diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java index be19e31c0..e895519fd 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java @@ -163,7 +163,7 @@ public class CldsService extends SecureServiceBase { * used to generate the ClosedLoop model. ACTION_CD | Current state of the * ClosedLoop in CLDS application. */ - public List<CldsMonitoringDetails> getCLDSDetails() { + public List<CldsMonitoringDetails> getCldsDetails() { util.entering(request, "CldsService: GET model details"); Date startTime = new Date(); List<CldsMonitoringDetails> cldsMonitoringDetailsList = cldsDao.getCLDSMonitoringDetails(); diff --git a/src/main/resources/clds/camel/rest/clds-services.xml b/src/main/resources/clds/camel/rest/clds-services.xml index e67fb162d..476816977 100644 --- a/src/main/resources/clds/camel/rest/clds-services.xml +++ b/src/main/resources/clds/camel/rest/clds-services.xml @@ -4,7 +4,7 @@ outType="org.onap.clamp.clds.model.CldsMonitoringDetails" produces="application/json"> <to - uri="bean:org.onap.clamp.clds.service.CldsService?method=getCLDSDetails()" /> + uri="bean:org.onap.clamp.clds.service.CldsService?method=getCldsDetails()" /> </get> <get uri="/clds/cldsInfo" outType="org.onap.clamp.clds.model.CldsInfo" |