summaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'vid-app-common/src/main')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/aai/AaiClient.java25
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/aai/AaiClientInterface.java2
2 files changed, 22 insertions, 5 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/aai/AaiClient.java b/vid-app-common/src/main/java/org/onap/vid/aai/AaiClient.java
index 78164462c..e25fa8574 100644
--- a/vid-app-common/src/main/java/org/onap/vid/aai/AaiClient.java
+++ b/vid-app-common/src/main/java/org/onap/vid/aai/AaiClient.java
@@ -44,6 +44,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.function.Function;
+import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.inject.Inject;
import javax.ws.rs.WebApplicationException;
@@ -490,6 +491,15 @@ public class AaiClient implements AaiClientInterface {
@Override
public ModelVer getLatestVersionByInvariantId(String modelInvariantId) {
+ return maxModelVer(getAllVersionsByInvariantId(modelInvariantId));
+ }
+
+ @Override
+ public List<ModelVer> getSortedVersionsByInvariantId(String modelInvariantId) {
+ return sortedModelVer(getAllVersionsByInvariantId(modelInvariantId));
+ }
+
+ private Stream<ModelVer> getAllVersionsByInvariantId(String modelInvariantId) {
if (modelInvariantId.isEmpty()) {
throw new GenericUncheckedException("no invariant-id provided to getLatestVersionByInvariantId; request is rejected");
}
@@ -497,17 +507,13 @@ public class AaiClient implements AaiClientInterface {
Response response = doAaiPut("query?format=resource&depth=0", "{\"start\": [\"service-design-and-creation/models/model/" + modelInvariantId + "\"],\"query\": \"query/serviceModels-byDistributionStatus?distributionStatus=DISTRIBUTION_COMPLETE_OK\"}",false);
AaiResponse<ModelVersions> aaiResponse = processAaiResponse(response, ModelVersions.class, null, VidObjectMapperType.FASTERXML);
- Stream<ModelVer> modelVerStream = toModelVerStream(aaiResponse.getT());
- return maxModelVer(modelVerStream);
+ return toModelVerStream(aaiResponse.getT());
}
protected Stream<ModelVer> toModelVerStream(ModelVersions modelVersions) {
if (modelVersions == null)
return null;
- if (modelVersions == null)
- return null;
-
return Stream.of(modelVersions)
.map(ModelVersions::getResults)
.flatMap(java.util.Collection::stream)
@@ -527,6 +533,15 @@ public class AaiClient implements AaiClientInterface {
.orElseThrow(() -> new GenericUncheckedException("Could not find any version"));
}
+ protected List<ModelVer> sortedModelVer(Stream<ModelVer> modelVerStream) {
+ if (modelVerStream == null)
+ return emptyList();
+
+ return modelVerStream
+ .sorted(comparing(ModelVer::getModelVersion, comparing(DefaultArtifactVersion::new)).reversed())
+ .collect(Collectors.toList());
+ }
+
@Override
public AaiResponse<Services> getSubscriberData(String subscriberId, boolean omitServiceInstances) {
String depth = omitServiceInstances ? "1" : "2";
diff --git a/vid-app-common/src/main/java/org/onap/vid/aai/AaiClientInterface.java b/vid-app-common/src/main/java/org/onap/vid/aai/AaiClientInterface.java
index b4b908cc3..c322afa22 100644
--- a/vid-app-common/src/main/java/org/onap/vid/aai/AaiClientInterface.java
+++ b/vid-app-common/src/main/java/org/onap/vid/aai/AaiClientInterface.java
@@ -77,6 +77,8 @@ public interface AaiClientInterface extends ProbeInterface {
ModelVer getLatestVersionByInvariantId(String modelInvariantId);
+ List<ModelVer> getSortedVersionsByInvariantId(String modelInvariantId);
+
AaiResponse<ProjectResponse> getServicesByProjectNames(List<String> projectNames);
AaiResponse getServiceModelsByDistributionStatus();