From 6ad41e3ccd398a2721f41ad61c80b7bb03f7d127 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Mon, 31 Dec 2018 17:21:27 +0200 Subject: Merge from ECOMP's repository Main Features -------------- - Async-Instantiation jobs mechanism major update; still WIP (package `org.onap.vid.job`) - New features in View/Edit: Activate fabric configuration; show related networks; soft delete - Support AAI service-tree traversal (`AAIServiceTree`) - In-memory cache for SDC models and certain A&AI queries (`CacheProviderWithLoadingCache`) - Upgrade TOSCA Parser and add parsing options; fix malformed TOSCA models - Resolve Cloud-Owner values for MSO - Pass X-ONAP headers to MSO Infrastructure -------------- - Remove codehaus' jackson mapper; use soley fasterxml 2.9.7 - Surefire invokes both TestNG and JUnit tests - Support Kotlin source files - AaiController2 which handles errors in a "Spring manner" - Inline generated-sources and remove jsonschema2pojo Quality -------- - Cumulative bug fixes (A&AI API, UI timeouts, and many more) - Many Sonar issues cleaned-up - Some unused classes removed - Minor changes in vid-automation project, allowing some API verification to run Hard Merges ------------ - HTTP Clients (MSO, A&AI, WebConfig, OutgoingRequestHeadersTest) - Moved `package org.onap.vid.controllers` to `controller`, without plural -- just to keep semantic sync with ECOMP. Reference commit in ECOMP: 3d1141625 Issue-ID: VID-378 Change-Id: I9c8d1e74caa41815891d441fc0760bb5f29c5788 Signed-off-by: Ittay Stern --- .../java/org/onap/vid/aai/AaiOverTLSClient.java | 43 ++++++++++++++-------- 1 file changed, 28 insertions(+), 15 deletions(-) (limited to 'vid-app-common/src/main/java/org/onap/vid/aai/AaiOverTLSClient.java') diff --git a/vid-app-common/src/main/java/org/onap/vid/aai/AaiOverTLSClient.java b/vid-app-common/src/main/java/org/onap/vid/aai/AaiOverTLSClient.java index 6e25e2715..fe62f029c 100644 --- a/vid-app-common/src/main/java/org/onap/vid/aai/AaiOverTLSClient.java +++ b/vid-app-common/src/main/java/org/onap/vid/aai/AaiOverTLSClient.java @@ -20,26 +20,25 @@ package org.onap.vid.aai; -import static org.onap.vid.aai.AaiOverTLSClientInterface.HEADERS.ACCEPT; -import static org.onap.vid.aai.AaiOverTLSClientInterface.HEADERS.CONTENT_TYPE; -import static org.onap.vid.aai.AaiOverTLSClientInterface.HEADERS.FROM_APP_ID_HEADER; -import static org.onap.vid.aai.AaiOverTLSClientInterface.HEADERS.REQUEST_ID; -import static org.onap.vid.aai.AaiOverTLSClientInterface.HEADERS.TRANSACTION_ID_HEADER; - import io.joshworks.restclient.http.HttpResponse; +import io.joshworks.restclient.http.JsonNode; import io.vavr.collection.HashMap; -import java.nio.charset.StandardCharsets; -import java.util.Base64; -import java.util.Collections; -import java.util.Map; -import javax.ws.rs.core.MediaType; +import org.apache.commons.lang3.StringUtils; import org.onap.portalsdk.core.util.SystemProperties; -import org.onap.vid.aai.model.AaiNodeQueryResponse; import org.onap.vid.aai.model.ResourceType; import org.onap.vid.aai.util.AAIProperties; import org.onap.vid.client.SyncRestClientInterface; +import org.onap.vid.exceptions.GenericUncheckedException; import org.onap.vid.model.SubscriberList; +import javax.ws.rs.core.MediaType; +import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.util.Collections; +import java.util.Map; + +import static org.onap.vid.aai.AaiOverTLSClientInterface.HEADERS.*; + public class AaiOverTLSClient implements AaiOverTLSClientInterface { private final AaiOverTLSPropertySupplier propertySupplier; @@ -64,9 +63,23 @@ public class AaiOverTLSClient implements AaiOverTLSClientInterface { } @Override - public HttpResponse searchNodeTypeByName(String name, ResourceType type) { - String uri = urlBase + String.format(URIS.NODE_TYPE_BY_NAME, type.getAaiFormat(), type.getNameFilter(), name); - return syncRestClient.get(uri, getRequestHeaders(), Collections.emptyMap(), AaiNodeQueryResponse.class); + public boolean isNodeTypeExistsByName(String name, ResourceType type) { + + if (StringUtils.isEmpty(name)) { + throw new GenericUncheckedException("Empty resource-name provided to isNodeTypeExistsByName; request is rejected as this will cause full resources listing"); + } + + String path = String.format( // e.g. GET /aai/v$/nodes/vf-modules?vf-module-name={vf-module-name} + "nodes/%s?%s=%s", + type.getAaiFormat(), + type.getNameFilter(), + name + ); + + String uri = urlBase + path; + final HttpResponse response = syncRestClient.get(uri, getRequestHeaders(), Collections.emptyMap()); + + return response.isSuccessful(); } @Override -- cgit 1.2.3-korg