From 893e2ff0fe4f605b5ce6f709c6fab8fe65d242f5 Mon Sep 17 00:00:00 2001 From: Norm Traxler Date: Wed, 30 Jan 2019 14:53:39 +0000 Subject: Network Discovery support for network Issue-ID: SDNC-475 Add support for Openstack network object retrieval. Moved the attribute translations into Jolt transformations. Change-Id: I442bfe39a5b84050d7a7fa8b50aaf831e4dd05d0 Signed-off-by: Norm Traxler --- .../service/SpringServiceImpl.java | 23 +++++----- .../service/util/TransformationUtil.java | 49 ---------------------- 2 files changed, 11 insertions(+), 61 deletions(-) (limited to 'pomba/network-discovery/src/main/java/org') diff --git a/pomba/network-discovery/src/main/java/org/onap/sdnc/apps/pomba/networkdiscovery/service/SpringServiceImpl.java b/pomba/network-discovery/src/main/java/org/onap/sdnc/apps/pomba/networkdiscovery/service/SpringServiceImpl.java index 5577398..5e67171 100644 --- a/pomba/network-discovery/src/main/java/org/onap/sdnc/apps/pomba/networkdiscovery/service/SpringServiceImpl.java +++ b/pomba/network-discovery/src/main/java/org/onap/sdnc/apps/pomba/networkdiscovery/service/SpringServiceImpl.java @@ -17,6 +17,8 @@ */ package org.onap.sdnc.apps.pomba.networkdiscovery.service; +import com.google.gson.Gson; + import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; @@ -32,7 +34,6 @@ import javax.ws.rs.core.Response.Status.Family; import org.onap.logging.ref.slf4j.ONAPLogAdapter; import org.onap.pomba.common.datatypes.DataQuality; import org.onap.sdnc.apps.pomba.networkdiscovery.ApplicationException; -import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Attribute; import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.NetworkDiscoveryNotification; import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.NetworkDiscoveryResponse; import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Resource; @@ -87,12 +88,7 @@ public class SpringServiceImpl implements SpringService { MessageFormat format = new MessageFormat(openstackURL); for (String resourceId : resourceIds) { - String url = format.format(new Object[] { resourceId }); - Resource resource = new Resource(); - resource.setType(resourceType); - resource.setId(resourceId); - resources.add(resource); - + String url = format.format(new Object[] { resourceId }); Response result; try { result = openstackClient.target(url).request().header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON) @@ -111,14 +107,17 @@ public class SpringServiceImpl implements SpringService { if (result.getStatusInfo().getFamily() == Family.SUCCESSFUL) { String transformedOutput = TransformationUtil.transform(jsonResult, resourceType); - log.debug("Jolt transformed output: {}", transformedOutput); - - resource.setDataQuality(DataQuality.ok()); - List attributeList = TransformationUtil.toAttributeList(transformedOutput); - resource.setAttributeList(attributeList); + + Gson gson = new Gson(); + Resource resourceInst = gson.fromJson(transformedOutput, Resource.class); + resources.add(resourceInst); } else { + Resource resource = new Resource(); + resource.setType(resourceType); + resource.setId(resourceId); resource.setDataQuality(DataQuality.error(jsonResult)); + resources.add(resource); } } diff --git a/pomba/network-discovery/src/main/java/org/onap/sdnc/apps/pomba/networkdiscovery/service/util/TransformationUtil.java b/pomba/network-discovery/src/main/java/org/onap/sdnc/apps/pomba/networkdiscovery/service/util/TransformationUtil.java index 0984f66..32b213f 100644 --- a/pomba/network-discovery/src/main/java/org/onap/sdnc/apps/pomba/networkdiscovery/service/util/TransformationUtil.java +++ b/pomba/network-discovery/src/main/java/org/onap/sdnc/apps/pomba/networkdiscovery/service/util/TransformationUtil.java @@ -17,23 +17,13 @@ package org.onap.sdnc.apps.pomba.networkdiscovery.service.util; import com.bazaarvoice.jolt.Chainr; import com.bazaarvoice.jolt.JsonUtils; -import com.google.gson.JsonElement; -import com.google.gson.JsonParser; import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; import java.util.List; -import java.util.Map.Entry; -import java.util.Set; - -import org.onap.pomba.common.datatypes.DataQuality; -import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Attribute; public class TransformationUtil { private static final String CONFIG_JOLT = "config/jolt"; - private static final String EMPTY_STRING = ""; private TransformationUtil() { throw new IllegalStateException("Utility class"); @@ -57,43 +47,4 @@ public class TransformationUtil { return JsonUtils.toJsonString(output); } - /** - * Converts the second level of JsonElements from the given json to a list of - * Network Discovery Attributes. - * - * @param json - * @return - */ - public static List toAttributeList(String json) { - - JsonParser parser = new JsonParser(); - JsonElement elem = parser.parse(json); - - Set> entrySet = elem.getAsJsonObject().entrySet(); - - List result = new ArrayList<>(); - - Iterator> iter = entrySet.iterator(); - while (iter.hasNext()) { - Entry next = iter.next(); - - JsonElement vserverElem = next.getValue(); - Set> vserverEntrySet = vserverElem.getAsJsonObject().entrySet(); - Iterator> vserverIter = vserverEntrySet.iterator(); - while (vserverIter.hasNext()) { - Entry vserverNext = vserverIter.next(); - Attribute attr = new Attribute(); - attr.setName(vserverNext.getKey()); - if (vserverNext.getValue().isJsonNull()) { - attr.setValue(EMPTY_STRING); - } else { - attr.setValue(vserverNext.getValue().getAsString()); - } - attr.setDataQuality(DataQuality.ok()); - result.add(attr); - } - } - return result; - } - } \ No newline at end of file -- cgit