aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTait,Trevor(rt0435) <rtait@amdocs.com>2019-02-27 15:31:44 -0500
committerTait,Trevor(rt0435) <rtait@amdocs.com>2019-02-27 15:34:07 -0500
commita4d18fc699d6cf4173d0af54dae4e093908f391a (patch)
tree7c7904270d048a1c863ccb82d55ba645dde12061
parent60a97cb7282a4974df86454c29914f82f6601b39 (diff)
POMBA: X-ONAP-RequestID and X-FromAppId support
Also fixes JUNIT issue with new pomba-audit-common. Issue-ID: LOG-551 Change-Id: I7774a6ce83881d1ee37c36b860d456244a6c96cf Signed-off-by: Tait,Trevor(rt0435) <rtait@amdocs.com>
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java6
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java89
-rw-r--r--src/test/resources/jolt/serviceDecompToModelContext-expected.json230
-rw-r--r--src/test/resources/jolt/serviceDecompToModelContext2-expected.json324
4 files changed, 332 insertions, 317 deletions
diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java
index ed39de7..46db177 100644
--- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java
+++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java
@@ -19,12 +19,9 @@
package org.onap.pomba.contextbuilder.networkdiscovery;
import java.util.Base64;
-
import org.eclipse.jetty.util.security.Password;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
-import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
@@ -141,7 +138,4 @@ public class NdctxbConfiguration {
return ("Basic " + Base64.getEncoder().encodeToString(auth.getBytes()));
}
- @Autowired
- private Environment env;
-
}
diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java
index 5bdc273..67f918d 100644
--- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java
+++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java
@@ -32,7 +32,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
-import java.util.concurrent.atomic.AtomicLong;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.client.Client;
import javax.ws.rs.core.HttpHeaders;
@@ -70,38 +69,30 @@ public class SpringServiceImpl implements SpringService {
private static final String ND_TYPE_P_INTERFACE = "p-interface";
private static Logger log = LoggerFactory.getLogger(RestService.class);
- public static final String APP_NAME = "NetworkDiscoveryContextBuilder";
-
- public static final String MDC_REQUEST_ID = "RequestId";
- public static final String MDC_SERVER_FQDN = "ServerFQDN";
- public static final String MDC_SERVICE_NAME = "ServiceName";
- public static final String MDC_PARTNER_NAME = "PartnerName";
- public static final String MDC_START_TIME = "StartTime";
- public static final String MDC_SERVICE_INSTANCE_ID = "ServiceInstanceId";
- public static final String MDC_INVOCATION_ID = "InvocationID";
- public static final String MDC_CLIENT_ADDRESS = "ClientAddress";
- public static final String MDC_STATUS_CODE = "StatusCode";
- public static final String MDC_RESPONSE_CODE = "ResponseCode";
- public static final String MDC_INSTANCE_UUID = "InstanceUUID";
-
- public static final String MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_APP = "NetworkDiscoveryContextBuilder_TO_NetworkDiscoveryMicroService";
- public static final String MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_MSG_NAME = "MsgName";
- public static final String MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_FINDBYRESOURCEIDANDTYPE = "findbyResourceIdAndType";
- public static final String MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_URL = "CallingURL";
- public static final String MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_REQUEST_ID = "ChildRequestId";
- public static final String MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_RESOURCE_TYPE = "ResourceType";
- public static final String MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_RESOURCE_ID = "ResourceID";
- public static final String MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_STATUS = "Status";
-
- public static final String NETWORK_DISCOVERY_RSP_REQUESTID_SPLITTER = "___";
- public static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_X_ONAP_PARTNER_NAME = "X-ONAP-PartnerName";
- public static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_X_ONAP_REQUEST_ID = "X-ONAP-RequestID";
- public static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_REQUEST_ID = "requestId";
- public static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_RESOURCE_TYPE = "resourceType";
- public static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_RESOURCE_ID = "resourceId";
+ private static final String APP_NAME = "NetworkDiscoveryContextBuilder";
+
+ private static final String MDC_REQUEST_ID = "RequestId";
+ private static final String MDC_SERVER_FQDN = "ServerFQDN";
+ private static final String MDC_SERVICE_NAME = "ServiceName";
+ private static final String MDC_PARTNER_NAME = "PartnerName";
+ private static final String MDC_START_TIME = "StartTime";
+ private static final String MDC_SERVICE_INSTANCE_ID = "ServiceInstanceId";
+ private static final String MDC_INVOCATION_ID = "InvocationID";
+ private static final String MDC_CLIENT_ADDRESS = "ClientAddress";
+ private static final String MDC_STATUS_CODE = "StatusCode";
+ private static final String MDC_RESPONSE_CODE = "ResponseCode";
+ private static final String MDC_INSTANCE_UUID = "InstanceUUID";
+
+ private static final String MDC_RESOURCE_TYPE = "ResourceType";
+ private static final String MDC_RESOURCE_ID = "ResourceId";
+
+ private static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_X_ONAP_PARTNER_NAME = "X-ONAP-PartnerName";
+ private static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_X_ONAP_REQUEST_ID = "X-ONAP-RequestID";
+ private static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_REQUEST_ID = "requestId";
+ private static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_RESOURCE_TYPE = "resourceType";
+ private static final String NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_RESOURCE_ID = "resourceId";
private static UUID instanceUUID = UUID.randomUUID();
- private static final AtomicLong uniqueSeq = new AtomicLong();
@Autowired
private String serviceDecompositionBaseUrl;
@@ -278,20 +269,14 @@ public class SpringServiceImpl implements SpringService {
/* Return list of requestIds sent to network-discovery microService. */
private void sendNetworkDiscoveryRequest(ModelContext networkDiscoveryCtx, NdResources ndResources,
- String parentRequestId, String partnerName) throws DiscoveryException {
+ String requestId, String partnerName) throws DiscoveryException {
Map<String, String> resourceMap = new HashMap<>();
for (NdResource ndResource : ndResources.getNdResources()) {
try {
- // The old_requestId is inherited from ServiceDecomposition.
- // Before we send a message to NetworkDiscoveryMicroService for each Resource,
- // we need to generate a new request for identification, based on the old ID.
- String requestId = parentRequestId + NETWORK_DISCOVERY_RSP_REQUESTID_SPLITTER
- + uniqueSeq.incrementAndGet();
-
String resultJson = sendNetworkDiscoveryRequestToSpecificServer(partnerName,
- parentRequestId, requestId, ndResource.getResourceId(), ndResource.getResourceType());
+ requestId, requestId, ndResource.getResourceId(), ndResource.getResourceType());
resourceMap.put(ndResource.getResourceId(), resultJson);
} catch (Exception e) {
@@ -337,18 +322,19 @@ public class SpringServiceImpl implements SpringService {
.header(NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_X_ONAP_PARTNER_NAME, partnerName)
.header(NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_X_ONAP_REQUEST_ID, parentRequestId).get();
- String status = Response.Status.fromStatusCode(response.getStatus()) + ",code:" + response.getStatus();
-
log.info("Network Disvovery response status code: {}", response.getStatus());
- MDC.put(MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_STATUS, status);
+ MDC.put(MDC_RESPONSE_CODE, String.valueOf(response.getStatus()));
+ MDC.put(MDC_STATUS_CODE, "ERROR");
if (response.getStatusInfo().getFamily() != Family.SUCCESSFUL) {
+ MDC.put(MDC_STATUS_CODE, "ERROR");
throw new DiscoveryException(
"Error from Network Discovery service: " + response.getStatusInfo().getReasonPhrase(),
Response.Status.fromStatusCode(response.getStatus()));
}
+ MDC.put(MDC_STATUS_CODE, "SUCCESS");
String ndResult = response.readEntity(String.class);
log.info("Message sent. Response ndResult: {}", ndResult);
return ndResult;
@@ -378,6 +364,7 @@ public class SpringServiceImpl implements SpringService {
private void initMdcSendToNetworkDiscoveryMicroService(String networkDiscoveryUrl, String requestId,
String resourceType, String resourceId, String partnerName) {
+
String parentRequestId = MDC.get(MDC_REQUEST_ID);
String parentServiceInstanceId = MDC.get(MDC_SERVICE_INSTANCE_ID);
String parentPartnerName = MDC.get(MDC_PARTNER_NAME);
@@ -385,22 +372,8 @@ public class SpringServiceImpl implements SpringService {
MDC.clear();
initMdc(parentRequestId, parentPartnerName, parentServiceInstanceId, networkDiscoveryMicroServiceHostAndPort);
- MDC.put(MDC_SERVICE_NAME, MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_APP);
- MDC.put(MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_MSG_NAME,
- MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_FINDBYRESOURCEIDANDTYPE);
- MDC.put(MDC_START_TIME, new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX").format(new Date()));
- MDC.put(MDC_PARTNER_NAME, partnerName);
- MDC.put(MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_URL, networkDiscoveryUrl);
- MDC.put(MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_REQUEST_ID, requestId);
- MDC.put(MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_RESOURCE_TYPE, resourceType);
- MDC.put(MDC_TO_NETWORK_DISCOVERY_MICRO_SERVICE_RESOURCE_ID, resourceId);
- try {
- MDC.put(MDC_SERVER_FQDN, InetAddress.getLocalHost().getHostAddress());
- } catch (Exception e) {
- // If, for some reason we are unable to get the canonical host name,
- // we just want to leave the field null.
- log.info("Could not get canonical host name for {}, leaving field null", MDC_SERVER_FQDN);
- }
+ MDC.put(MDC_RESOURCE_TYPE, resourceType);
+ MDC.put(MDC_RESOURCE_ID, resourceId);
}
private ModelContext createModelContextFromSdResonse(String response) {
diff --git a/src/test/resources/jolt/serviceDecompToModelContext-expected.json b/src/test/resources/jolt/serviceDecompToModelContext-expected.json
index ea15bf4..0c461c1 100644
--- a/src/test/resources/jolt/serviceDecompToModelContext-expected.json
+++ b/src/test/resources/jolt/serviceDecompToModelContext-expected.json
@@ -1,106 +1,126 @@
-{
- "service" : {
- "uuid" : "PombaDemoCust_001-SerivceInst-001",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ]
- },
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vnfList" : [ {
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vfModuleList" : [ {
- "maxInstances" : 0,
- "minInstances" : 0,
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vmList" : [ {
- "uuid" : "a6a609e3-967a-48bd-8ce5-41c7ff5c19b9",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "pServer" : {
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "pInterfaceList" : [ ]
- },
- "lInterfaceList" : [ ]
- } ],
- "networkList" : [ ]
- } ],
- "vnfcList" : [ ],
- "networkList" : [ {
- "uuid" : "2ea02809-7279-4b5e-931a-62b231615497",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- }, {
- "uuid" : "01e8d84a-17a6-47b5-a167-6a45d1d56603",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- } ]
- }, {
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vfModuleList" : [ {
- "maxInstances" : 0,
- "minInstances" : 0,
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vmList" : [ {
- "uuid" : "a6a609e3-967a-48bd-8ce5-41c7ff5c19b9-2",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "pServer" : {
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "pInterfaceList" : [ ]
- },
- "lInterfaceList" : [ ]
- } ],
- "networkList" : [ ]
- } ],
- "vnfcList" : [ ],
- "networkList" : [ {
- "uuid" : "2ea02809-7279-4b5e-931a-62b231615497-1",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- }, {
- "uuid" : "01e8d84a-17a6-47b5-a167-6a45d1d56603-1",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- } ]
- } ],
- "pnfList" : [ ],
- "networkList" : [ ]
+{
+ "service": {
+ "uuid": "PombaDemoCust_001-SerivceInst-001",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": []
+ },
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vnfList": [
+ {
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vfModuleList": [
+ {
+ "maxInstances": 0,
+ "minInstances": 0,
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vmList": [
+ {
+ "uuid": "a6a609e3-967a-48bd-8ce5-41c7ff5c19b9",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "pServer": {
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "pInterfaceList": []
+ },
+ "lInterfaceList": []
+ }
+ ],
+ "networkList": []
+ }
+ ],
+ "vnfcList": [],
+ "networkList": [
+ {
+ "uuid": "2ea02809-7279-4b5e-931a-62b231615497",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ },
+ {
+ "uuid": "01e8d84a-17a6-47b5-a167-6a45d1d56603",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ }
+ ],
+ "lInterfaceList": []
+ },
+ {
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vfModuleList": [
+ {
+ "maxInstances": 0,
+ "minInstances": 0,
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vmList": [
+ {
+ "uuid": "a6a609e3-967a-48bd-8ce5-41c7ff5c19b9-2",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "pServer": {
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "pInterfaceList": []
+ },
+ "lInterfaceList": []
+ }
+ ],
+ "networkList": []
+ }
+ ],
+ "vnfcList": [],
+ "networkList": [
+ {
+ "uuid": "2ea02809-7279-4b5e-931a-62b231615497-1",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ },
+ {
+ "uuid": "01e8d84a-17a6-47b5-a167-6a45d1d56603-1",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ }
+ ],
+ "lInterfaceList": []
+ }
+ ],
+ "pnfList": [],
+ "networkList": [],
+ "logicalLinkList": []
} \ No newline at end of file
diff --git a/src/test/resources/jolt/serviceDecompToModelContext2-expected.json b/src/test/resources/jolt/serviceDecompToModelContext2-expected.json
index bf8589d..1387d3a 100644
--- a/src/test/resources/jolt/serviceDecompToModelContext2-expected.json
+++ b/src/test/resources/jolt/serviceDecompToModelContext2-expected.json
@@ -1,149 +1,177 @@
-{
- "service" : {
- "uuid" : "PombaDemoCust_002-ServiceInst-002",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ]
- },
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vnfList" : [ {
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vfModuleList" : [ {
- "maxInstances" : 0,
- "minInstances" : 0,
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vmList" : [ {
- "uuid" : "a6a609e3-967a-48bd-8ce5-41c7ff5c19b9",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "pServer" : {
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "pInterfaceList" : [ ]
- },
- "lInterfaceList" : [ ]
- } ],
- "networkList" : [ {
- "uuid" : "network-id-vnf1-vfmodule1-001",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- }, {
- "uuid" : "network-id-vnf1-vfmodule1-002",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- } ]
- } ],
- "vnfcList" : [ ],
- "networkList" : [ {
- "uuid" : "network-id-vnf1-001",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- }, {
- "uuid" : "network-id-vnf1-002",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- } ]
- }, {
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vfModuleList" : [ {
- "maxInstances" : 0,
- "minInstances" : 0,
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "vmList" : [ {
- "uuid" : "a6a609e3-967a-48bd-8ce5-41c7ff5c19b9-2",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "pServer" : {
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "pInterfaceList" : [ ]
- },
- "lInterfaceList" : [ ]
- } ],
- "networkList" : [ {
- "uuid" : "network-id-vnf2-vfmodule1-001",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- }, {
- "uuid" : "network-id-vnf2-vfmodule1-002",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- } ]
- }],
- "vnfcList" : [ ],
- "networkList" : [ {
- "uuid" : "network-id-vnf2-001",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- }, {
- "uuid" : "network-id-vnf2-002",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- } ]
- } ],
- "pnfList" : [ ],
- "networkList" : [ {
- "uuid" : "network-id-service-001",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- }, {
- "uuid" : "network-id-service-002",
- "dataQuality" : {
- "status" : "ok"
- },
- "attributeList" : [ ],
- "networkPolicyList" : [ ]
- } ]
-
+{
+ "service": {
+ "uuid": "PombaDemoCust_002-ServiceInst-002",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": []
+ },
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vnfList": [
+ {
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vfModuleList": [
+ {
+ "maxInstances": 0,
+ "minInstances": 0,
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vmList": [
+ {
+ "uuid": "a6a609e3-967a-48bd-8ce5-41c7ff5c19b9",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "pServer": {
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "pInterfaceList": []
+ },
+ "lInterfaceList": []
+ }
+ ],
+ "networkList": [
+ {
+ "uuid": "network-id-vnf1-vfmodule1-001",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ },
+ {
+ "uuid": "network-id-vnf1-vfmodule1-002",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ }
+ ]
+ }
+ ],
+ "vnfcList": [],
+ "networkList": [
+ {
+ "uuid": "network-id-vnf1-001",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ },
+ {
+ "uuid": "network-id-vnf1-002",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ }
+ ],
+ "lInterfaceList": []
+ },
+ {
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vfModuleList": [
+ {
+ "maxInstances": 0,
+ "minInstances": 0,
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "vmList": [
+ {
+ "uuid": "a6a609e3-967a-48bd-8ce5-41c7ff5c19b9-2",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "pServer": {
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "pInterfaceList": []
+ },
+ "lInterfaceList": []
+ }
+ ],
+ "networkList": [
+ {
+ "uuid": "network-id-vnf2-vfmodule1-001",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ },
+ {
+ "uuid": "network-id-vnf2-vfmodule1-002",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ }
+ ]
+ }
+ ],
+ "vnfcList": [],
+ "networkList": [
+ {
+ "uuid": "network-id-vnf2-001",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ },
+ {
+ "uuid": "network-id-vnf2-002",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ }
+ ],
+ "lInterfaceList": []
+ }
+ ],
+ "pnfList": [],
+ "networkList": [
+ {
+ "uuid": "network-id-service-001",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ },
+ {
+ "uuid": "network-id-service-002",
+ "dataQuality": {
+ "status": "ok"
+ },
+ "attributeList": [],
+ "networkPolicyList": []
+ }
+ ],
+ "logicalLinkList": []
} \ No newline at end of file