diff options
author | 2019-01-30 14:53:39 +0000 | |
---|---|---|
committer | 2019-01-31 14:46:56 +0000 | |
commit | 893e2ff0fe4f605b5ce6f709c6fab8fe65d242f5 (patch) | |
tree | 0cc1b8003d2dbddfbf5273be5163fb091103aa09 /pomba/network-discovery/src/main/java/org | |
parent | dcd5545d38527e498905eafd244d0de0940905da (diff) |
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 <normant@amdocs.com>
Diffstat (limited to 'pomba/network-discovery/src/main/java/org')
2 files changed, 11 insertions, 61 deletions
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<Attribute> 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<Attribute> toAttributeList(String json) {
-
- JsonParser parser = new JsonParser();
- JsonElement elem = parser.parse(json);
-
- Set<Entry<String, JsonElement>> entrySet = elem.getAsJsonObject().entrySet();
-
- List<Attribute> result = new ArrayList<>();
-
- Iterator<Entry<String, JsonElement>> iter = entrySet.iterator();
- while (iter.hasNext()) {
- Entry<String, JsonElement> next = iter.next();
-
- JsonElement vserverElem = next.getValue();
- Set<Entry<String, JsonElement>> vserverEntrySet = vserverElem.getAsJsonObject().entrySet();
- Iterator<Entry<String, JsonElement>> vserverIter = vserverEntrySet.iterator();
- while (vserverIter.hasNext()) {
- Entry<String, JsonElement> 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 |