X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fentity%2Fcatalog%2FVnfCatalogArtifactHandler.java;h=9b05024258798598f1056abf1ddc9e53fbaf7345;hb=refs%2Fheads%2Fmaster;hp=c54d7b2df5f7b079624679e3b0fd3123f0a689e9;hpb=7e6fe8c29c5a5cfa5caf6ab47b30280e1fc20432;p=aai%2Fmodel-loader.git diff --git a/src/main/java/org/onap/aai/modelloader/entity/catalog/VnfCatalogArtifactHandler.java b/src/main/java/org/onap/aai/modelloader/entity/catalog/VnfCatalogArtifactHandler.java index c54d7b2..3567b48 100644 --- a/src/main/java/org/onap/aai/modelloader/entity/catalog/VnfCatalogArtifactHandler.java +++ b/src/main/java/org/onap/aai/modelloader/entity/catalog/VnfCatalogArtifactHandler.java @@ -30,20 +30,22 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.UUID; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.commons.text.StringEscapeUtils; import org.apache.http.client.utils.URIBuilder; import org.onap.aai.cl.api.Logger; import org.onap.aai.cl.eelf.LoggerFactory; -import org.onap.aai.modelloader.config.ModelLoaderConfig; +import org.onap.aai.modelloader.config.AaiProperties; import org.onap.aai.modelloader.entity.Artifact; import org.onap.aai.modelloader.entity.ArtifactHandler; +import org.onap.aai.modelloader.entity.vnf.VnfImages; import org.onap.aai.modelloader.restclient.AaiRestClient; import org.onap.aai.modelloader.service.ModelLoaderMsgs; -import org.onap.aai.restclient.client.OperationResult; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -53,19 +55,20 @@ import org.xml.sax.InputSource; /** * VNF Catalog specific handling */ +@Component public class VnfCatalogArtifactHandler extends ArtifactHandler { private static Logger logger = LoggerFactory.getInstance().getLogger(VnfCatalogArtifactHandler.class.getName()); public static final String ATTR_UUID = "uuid"; - public VnfCatalogArtifactHandler(ModelLoaderConfig config) { - super(config); + public VnfCatalogArtifactHandler(AaiProperties aaiProperties) { + super(aaiProperties); } /* * (non-Javadoc) - * + * * @see org.openecomp.modelloader.entity.ArtifactHandler#pushArtifacts(java.util.List, java.lang.String) */ @Override @@ -98,7 +101,7 @@ public class VnfCatalogArtifactHandler extends ArtifactHandler { for (Artifact completedArtifact : completedArtifacts) { Map data = new Gson().fromJson(completedArtifact.getPayload(), new TypeToken>() {}.getType()); - String url = config.getAaiBaseUrl() + config.getAaiVnfImageUrl() + "/vnf-image/" + data.get(ATTR_UUID); + String url = aaiProperties.getBaseUrl() + aaiProperties.getVnfImageUrl() + "/vnf-image/" + data.get(ATTR_UUID); // Try to delete the image. If something goes wrong we can't really do anything here aaiClient.getAndDeleteResource(url, distributionId); } @@ -122,7 +125,7 @@ public class VnfCatalogArtifactHandler extends ArtifactHandler { /** * Build a VNF image from each of the supplied data items, and distribute to AAI - * + * * @param restClient * @param distributionId * @param completedArtifacts @@ -145,7 +148,7 @@ public class VnfCatalogArtifactHandler extends ArtifactHandler { String imageId = imageIdBuilder.toString(); int resultCode = getVnfImage(restClient, distributionId, imageId, dataItem); - if (resultCode == Response.Status.NOT_FOUND.getStatusCode()) { + if (resultCode == HttpStatus.NOT_FOUND.value()) { // This vnf-image is missing, so add it boolean success = putVnfImage(restClient, dataItem, distributionId); if (success) { @@ -154,7 +157,7 @@ public class VnfCatalogArtifactHandler extends ArtifactHandler { } else { throw new VnfImageException(imageId); } - } else if (resultCode == Response.Status.OK.getStatusCode()) { + } else if (resultCode == HttpStatus.OK.value()) { logger.info(ModelLoaderMsgs.DISTRIBUTION_EVENT, imageId + " already exists. Skipping ingestion."); } else { // if other than 404 or 200, something went wrong @@ -166,16 +169,16 @@ public class VnfCatalogArtifactHandler extends ArtifactHandler { private int getVnfImage(AaiRestClient restClient, String distributionId, String imageId, Map dataItem) throws VnfImageException { try { - URIBuilder b = new URIBuilder(config.getAaiBaseUrl() + config.getAaiVnfImageUrl()); + URIBuilder b = new URIBuilder(aaiProperties.getBaseUrl() + aaiProperties.getVnfImageUrl()); for (Entry entry : dataItem.entrySet()) { b.addParameter(entry.getKey(), entry.getValue()); } - OperationResult tryGet = - restClient.getResource(b.build().toString(), distributionId, MediaType.APPLICATION_JSON_TYPE); + ResponseEntity tryGet = + restClient.getResource(b.build().toString(), distributionId, MediaType.APPLICATION_JSON, VnfImages.class); if (tryGet == null) { throw new VnfImageException(imageId); } - return tryGet.getResultCode(); + return tryGet.getStatusCodeValue(); } catch (URISyntaxException ex) { throw new VnfImageException(ex); } @@ -186,11 +189,12 @@ public class VnfCatalogArtifactHandler extends ArtifactHandler { String uuid = UUID.randomUUID().toString(); dataItem.put(ATTR_UUID, uuid); + // TODO: Get rid of the dataItem map and replace it with the VnfImage object String payload = new Gson().toJson(dataItem); - String putUrl = config.getAaiBaseUrl() + config.getAaiVnfImageUrl() + "/vnf-image/" + uuid; - OperationResult putResp = - restClient.putResource(putUrl, payload, distributionId, MediaType.APPLICATION_JSON_TYPE); - return putResp != null && putResp.getResultCode() == Response.Status.CREATED.getStatusCode(); + String putUrl = aaiProperties.getBaseUrl() + aaiProperties.getVnfImageUrl() + "/vnf-image/" + uuid; + ResponseEntity putResp = + restClient.putResource(putUrl, payload, distributionId, MediaType.APPLICATION_JSON, String.class); + return putResp != null && putResp.getStatusCode() == HttpStatus.CREATED; } private List> unmarshallVnfcData(Artifact vnfcArtifact) { @@ -201,7 +205,7 @@ public class VnfCatalogArtifactHandler extends ArtifactHandler { /** * Parse the VNF Catalog XML and transform into Key/Value pairs. - * + * * @param vnfcArtifact * @return VNF Image data in Map form * @throws VnfImageException