X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Fclds%2Fclient%2FDcaeInventoryServices.java;h=7662a9fc1f4a0a6ad9d27fb14bcc554b4358a883;hb=81305e6875977b25afd6320c6870c41fb65e040a;hp=192dcdb914140701bcc530a47f861c4eb86867f3;hpb=7104181e0ebd97bbd034b5c221561d42e4241fe5;p=clamp.git diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java index 192dcdb9..7662a9fc 100644 --- a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java +++ b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java @@ -27,16 +27,11 @@ import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; import com.fasterxml.jackson.core.JsonProcessingException; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; +import java.security.GeneralSecurityException; import java.util.Date; import java.util.List; -import javax.ws.rs.BadRequestException; - import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; @@ -52,34 +47,35 @@ import org.onap.clamp.clds.util.LoggingUtils; import org.springframework.beans.factory.annotation.Autowired; /** + * * This class implements the communication with DCAE for the service inventory. * + * + * */ public class DcaeInventoryServices { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class); protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - @Autowired private RefProp refProp; - @Autowired private CldsDao cldsDao; - @Autowired - private SdcCatalogServices sdcCatalogServices; - /** + * * Set the event inventory. * * @param cldsModel * The CldsModel * @param userId * The user ID + * @throws GeneralSecurityException + * In case of issue when decryting the DCAE password * @throws ParseException - * In case of issues during the parsing of DCAE answer + * In case of DCAE Json parse exception */ - public void setEventInventory(CldsModel cldsModel, String userId) throws ParseException { + public void setEventInventory(CldsModel cldsModel, String userId) throws GeneralSecurityException, ParseException { String artifactName = cldsModel.getControlName(); DcaeEvent dcaeEvent = new DcaeEvent(); String isDcaeInfoAvailable = null; @@ -90,30 +86,30 @@ public class DcaeInventoryServices { } try { /* + * * Below are the properties required for calling the dcae inventory + * * url call + * */ ModelProperties prop = new ModelProperties(cldsModel.getName(), cldsModel.getControlName(), null, false, "{}", cldsModel.getPropText()); Global global = prop.getGlobal(); String invariantServiceUuid = global.getService(); List resourceUuidList = global.getResourceVf(); - String serviceUuid = sdcCatalogServices.getServiceUuidFromServiceInvariantId(invariantServiceUuid); String resourceUuid = ""; if (resourceUuidList != null && !resourceUuidList.isEmpty()) { - resourceUuid = resourceUuidList.get(0).toString(); + resourceUuid = resourceUuidList.get(0); } /* Invemtory service url is called in this method */ - isDcaeInfoAvailable = getDcaeInformation(artifactName, serviceUuid, resourceUuid); - + isDcaeInfoAvailable = getDcaeInformation(artifactName, invariantServiceUuid, resourceUuid); /* set dcae events */ dcaeEvent.setArtifactName(artifactName); dcaeEvent.setEvent(DcaeEvent.EVENT_DISTRIBUTION); - } catch (JsonProcessingException e) { logger.error("Error during JSON decoding", e); } catch (IOException ex) { - logger.error("Error during JSON decoding", ex); + logger.error("Error during DCAE communication", ex); } finally { LoggingUtils.setTimeContext(startTime, new Date()); metricsLogger.info("setEventInventory complete"); @@ -156,58 +152,23 @@ public class DcaeInventoryServices { * The resource UUID * @return The DCAE inventory for the artifact * @throws IOException - * In case of issues with the stream * @throws ParseException - * In case of issues with the Json parsing + * */ public String getDcaeInformation(String artifactName, String serviceUuid, String resourceUuid) throws IOException, ParseException { Date startTime = new Date(); LoggingUtils.setTargetContext("DCAE", "getDcaeInformation"); - String queryString = "?sdcResourceId=" + resourceUuid + "&sdcServiceId=" + serviceUuid + "&typeName=" + String queryString = "?asdcResourceId=" + resourceUuid + "&asdcServiceId=" + serviceUuid + "&typeName=" + artifactName; String fullUrl = refProp.getStringValue("DCAE_INVENTORY_URL") + "/dcae-service-types" + queryString; - logger.info("Dcae Inventory Service full url - " + fullUrl); String daceInventoryResponse = null; - URL inventoryUrl = new URL(fullUrl); - - HttpURLConnection conn = (HttpURLConnection) inventoryUrl.openConnection(); - conn.setRequestMethod("GET"); - String reqid = LoggingUtils.getRequestId(); - logger.info("reqid set to " + reqid); - conn.setRequestProperty("X-ECOMP-RequestID", reqid); - - boolean requestFailed = true; - int responseCode = conn.getResponseCode(); - if (responseCode == 200) { - requestFailed = false; - } - - StringBuilder response = new StringBuilder(); - - try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()))) { - String inputLine = null; - - while ((inputLine = in.readLine()) != null) { - response.append(inputLine); - } - } - String responseStr = response.toString(); - if (responseStr != null) { - if (requestFailed) { - logger.error("requestFailed - responseStr=" + response); - throw new BadRequestException(responseStr); - } - } - String jsonResponseString = response.toString(); + String responseStr = DcaeHttpConnectionManager.doDcaeHttpQuery(fullUrl, "GET", null, null); JSONParser parser = new JSONParser(); - Object obj0 = parser.parse(jsonResponseString); - + Object obj0 = parser.parse(responseStr); JSONObject jsonObj = (JSONObject) obj0; - Long totalCount = (Long) jsonObj.get("totalCount"); - int numServices = totalCount.intValue(); if (numServices == 0) { daceInventoryResponse = null; @@ -215,11 +176,10 @@ public class DcaeInventoryServices { JSONArray itemsArray = (JSONArray) jsonObj.get("items"); JSONObject dcaeServiceType0 = (JSONObject) itemsArray.get(0); daceInventoryResponse = dcaeServiceType0.toString(); - logger.info(daceInventoryResponse.toString()); + logger.info(daceInventoryResponse); } LoggingUtils.setTimeContext(startTime, new Date()); metricsLogger.info("getDcaeInformation complete: number services returned=" + numServices); return daceInventoryResponse; } - }