Merge "Revert license attribution change"
authorAmichai Hemli <amichai.hemli@intl.att.com>
Thu, 19 Sep 2019 12:23:08 +0000 (12:23 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 19 Sep 2019 12:23:08 +0000 (12:23 +0000)
vid-app-common/src/main/java/org/onap/vid/job/command/MsoRequestBuilder.kt
vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java
vid-app-common/src/main/java/org/onap/vid/properties/Features.java
vid-app-common/src/main/webapp/WEB-INF/conf/dev.features.properties
vid-app-common/src/main/webapp/WEB-INF/conf/onap.features.properties
vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBusinessLogicTest.java
vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java
vid-app-common/src/test/resources/payload_jsons/bulk_service_no_homing.json [new file with mode: 0644]
vid-automation/src/main/resources/registration_to_simulator/changeManagement/get_vnf_data_by_globalid_and_service_type_reduced_response.json

index c8502b1..b35deb8 100644 (file)
@@ -13,6 +13,7 @@ import org.onap.vid.mso.model.*
 import org.onap.vid.mso.model.BaseResourceInstantiationRequestDetails.*
 import org.onap.vid.mso.model.VfModuleInstantiationRequestDetails.UserParamMap
 import org.onap.vid.mso.rest.SubscriberInfo
+import org.onap.vid.properties.Features
 import org.onap.vid.services.AsyncInstantiationBusinessLogic
 import org.onap.vid.services.CloudOwnerService
 import org.onap.vid.utils.JACKSON_OBJECT_MAPPER
@@ -33,6 +34,7 @@ class MsoRequestBuilder
     companion object {
         private val LOGGER = EELFLoggerDelegate.getLogger(MsoRequestBuilder::class.java)
         private const val VID_SOURCE = "VID"
+        private const val DISABLED_HOMING_VALUE = "none"
     }
 
     fun generateALaCarteServiceInstantiationRequest(payload: ServiceInstantiation, optimisticUniqueServiceInstanceName: String, userId: String): RequestDetailsWrapper<ServiceInstantiationRequestDetails> {
@@ -61,7 +63,8 @@ class MsoRequestBuilder
     fun generateMacroServiceInstantiationRequest(jobId: UUID?, payload: ServiceInstantiation, optimisticUniqueServiceInstanceName: String, userId: String): RequestDetailsWrapper<ServiceInstantiationRequestDetails> {
         val serviceInstanceName = generateServiceName(jobId, payload, optimisticUniqueServiceInstanceName)
 
-        val serviceInstantiationServiceList = generateServiceInstantiationServicesList(payload, serviceInstanceName, createServiceInstantiationVnfList(jobId, payload))
+        val serviceInstantiationServiceList = generateMacroServiceInstantiationRequestParams(payload, serviceInstanceName, jobId)
+
 
         val requestParameters = ServiceInstantiationRequestDetails.RequestParameters(payload.subscriptionServiceType, false, serviceInstantiationServiceList)
 
@@ -213,9 +216,9 @@ class MsoRequestBuilder
                 }
         }
 
-        val result : MutableMap<String, String> = instanceParams[0].entries.stream()
+        val result: MutableMap<String, String> = instanceParams[0].entries.stream()
                 .filter { entry -> !keysToRemove.contains(entry.key) }
-                .collect(Collectors.toMap({it.key}, {it.value}))
+                .collect(Collectors.toMap({ it.key }, { it.value }))
 
         return if (result.isEmpty()) emptyList() else listOf(result)
     }
@@ -330,7 +333,7 @@ class MsoRequestBuilder
 
     private fun generateCloudConfiguration(lcpCloudRegionId: String?, tenantId: String?): CloudConfiguration {
         val cloudConfiguration = CloudConfiguration(lcpCloudRegionId, tenantId)
-        if(lcpCloudRegionId != null){
+        if (lcpCloudRegionId != null) {
             cloudOwnerService.enrichCloudConfigurationWithCloudOwner(cloudConfiguration, lcpCloudRegionId)
         }
         return cloudConfiguration
@@ -342,7 +345,7 @@ class MsoRequestBuilder
                 .collect(Collectors.toList())
     }
 
-    private fun generateRequestInfo(instanceName: String?, resourceType: ResourceType?, rollbackOnFailure: Boolean?, productFamilyId: String?, userId: String) : BaseResourceInstantiationRequestDetails.RequestInfo {
+    private fun generateRequestInfo(instanceName: String?, resourceType: ResourceType?, rollbackOnFailure: Boolean?, productFamilyId: String?, userId: String): BaseResourceInstantiationRequestDetails.RequestInfo {
         return BaseResourceInstantiationRequestDetails.RequestInfo(
                 if (resourceType == null) null else getUniqueNameIfNeeded(instanceName, resourceType, false),
                 productFamilyId,
@@ -386,10 +389,7 @@ class MsoRequestBuilder
     }
 
     private fun generateUserParamsNameAndValue(instanceParams: List<Map<String, String>>): List<ServiceInstantiationRequestDetails.UserParamNameAndValue> {
-        if (instanceParams == null){
-            return emptyList()
-        }
-        return instanceParams.getOrElse(0, {emptyMap()}).map{x-> ServiceInstantiationRequestDetails.UserParamNameAndValue(x.key, x.value)}
+        return instanceParams.getOrElse(0) {emptyMap()}.map{ x-> ServiceInstantiationRequestDetails.UserParamNameAndValue(x.key, x.value)}
     }
 
     private fun generateSubscriberInfoPre1806(payload: ServiceInstantiation): SubscriberInfo {
@@ -408,4 +408,18 @@ class MsoRequestBuilder
             listOf(vpn, network).map { RelatedInstance(it.modelInfo, it.instanceId, it.instanceName) }
         }
     }
+
+    private fun generateMacroServiceInstantiationRequestParams(payload: ServiceInstantiation, serviceInstanceName: String?, jobId: UUID?): List<UserParamTypes> {
+        val userParams = generateServiceInstantiationServicesList(payload, serviceInstanceName, createServiceInstantiationVnfList(jobId, payload))
+
+        return userParams.plus(homingSolution())
+    }
+
+    private fun homingSolution(): List<UserParamTypes> {
+        return if (featureManager.isActive(Features.FLAG_DISABLE_HOMING)) {
+            listOf(ServiceInstantiationRequestDetails.HomingSolution(DISABLED_HOMING_VALUE))
+        } else {
+            listOf()
+        }
+    }
 }
index 8f8dd68..e610d6c 100644 (file)
@@ -136,6 +136,19 @@ public class ServiceInstantiationRequestDetails {
         }
     }
 
+    public static class HomingSolution implements UserParamTypes {
+        private final String homingSolution;
+
+        public HomingSolution(String homingSolution) {
+            this.homingSolution = homingSolution;
+        }
+
+        @JsonProperty("Homing_Solution")
+        public String getHomingSolution() {
+            return homingSolution;
+        }
+    }
+
     public static class ServiceInstantiationService implements UserParamTypes {
         private final ServiceInstantiationServiceInner serviceInstantiationServiceInner;
 
index 5ec0e25..7384c97 100644 (file)
@@ -74,6 +74,7 @@ public enum Features implements Feature {
     FLAG_PNP_INSTANTIATION,
     FLAG_HANDLE_SO_WORKFLOWS,
     FLAG_CREATE_ERROR_REPORTS,
+    FLAG_DISABLE_HOMING,
     FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG,
     FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT,
     FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH,
index dd22dcb..db2ff8e 100644 (file)
@@ -32,6 +32,7 @@ FLAG_1810_AAI_LOCAL_CACHE = true
 FLAG_1902_NEW_VIEW_EDIT= false
 FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER = false
 FLAG_1902_VNF_GROUPING = true
+FLAG_DISABLE_HOMING = true
 FLAG_FLASH_CLOUD_REGION_AND_NF_ROLE_OPTIONAL_SEARCH=false
 FLAG_FLASH_REDUCED_RESPONSE_CHANGEMG = false
 FLAG_1911_INSTANTIATION_ORDER_IN_ASYNC_ALACARTE = false
index adff111..d1ce91f 100644 (file)
@@ -35,4 +35,4 @@ FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI = false
 FLAG_SUPPLEMENTARY_FILE = false
 FLAG_1902_NEW_VIEW_EDIT=false
 FLAG_1902_VNF_GROUPING = false
-
+FLAG_DISABLE_HOMING = true
index 2b4f4be..ce0aa42 100644 (file)
@@ -190,6 +190,7 @@ public class AsyncInstantiationBusinessLogicTest extends AsyncInstantiationBaseT
     @BeforeClass
     void initServicesInfoService() {
         MockitoAnnotations.initMocks(this);
+        doReturn(false).when(featureManager).isActive(Features.FLAG_DISABLE_HOMING);
         AsyncInstantiationRepository realAsyncInstantiationRepository = new AsyncInstantiationRepository(dataAccessService);
         asyncInstantiationRepository = spy(realAsyncInstantiationRepository);
 
index bd761f2..2c70b3d 100644 (file)
@@ -26,6 +26,7 @@ import static net.javacrumbs.jsonunit.core.Option.IGNORING_ARRAY_ORDER;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
@@ -85,6 +86,7 @@ import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
+import org.togglz.core.manager.FeatureManager;
 
 @ContextConfiguration(classes = {DataSourceConfig.class, SystemProperties.class, MockedAaiClientAndFeatureManagerConfig.class})
 public class MsoRequestBuilderTest extends AsyncInstantiationBaseTest {
@@ -138,22 +140,32 @@ public class MsoRequestBuilderTest extends AsyncInstantiationBaseTest {
 
     @Test
     public void createServiceInfo_WithUserProvidedNamingFalse_ServiceInfoIsAsExpected() throws IOException {
-        createMacroServiceInfo_WithUserProvidedNamingFalse_ServiceInfoIsAsExpected(true);
+        createMacroServiceInfo_WithUserProvidedNamingFalse_ServiceInfoIsAsExpected(true,
+                false);
     }
 
     @Test
     public void createServiceInfo_WithUserProvidedNamingFalseAndNoVfmodules_ServiceInfoIsAsExpected() throws IOException {
-        createMacroServiceInfo_WithUserProvidedNamingFalse_ServiceInfoIsAsExpected(false);
+        createMacroServiceInfo_WithUserProvidedNamingFalse_ServiceInfoIsAsExpected(false, false);
     }
 
-    private void createMacroServiceInfo_WithUserProvidedNamingFalse_ServiceInfoIsAsExpected(boolean withVfmodules) throws IOException {
+    @Test
+    public void shouldCreateServiceInfoWithHomingSolutionDisabled() throws IOException {
+        doReturn(true).when(featureManager).isActive(Features.FLAG_DISABLE_HOMING);
+
+        createMacroServiceInfo_WithUserProvidedNamingFalse_ServiceInfoIsAsExpected(true, true);
+    }
+
+    private void createMacroServiceInfo_WithUserProvidedNamingFalse_ServiceInfoIsAsExpected(boolean withVfmodules, boolean disabledHoming) throws IOException {
 
         ServiceInstantiation serviceInstantiationPayload = generateMockMacroServiceInstantiationPayload(true,
                 createVnfList(vfModuleInstanceParamsMapWithParamsToRemove, Collections.EMPTY_LIST, false),
                 1,
                 false, PROJECT_NAME, true);
         URL resource;
-        if (withVfmodules) {
+        if (disabledHoming) {
+            resource = this.getClass().getResource("/payload_jsons/bulk_service_no_homing.json");
+        } else if (withVfmodules) {
             resource = this.getClass().getResource("/payload_jsons/bulk_service_request_ecomp_naming.json");
         } else {
             // remove the vf modules
diff --git a/vid-app-common/src/test/resources/payload_jsons/bulk_service_no_homing.json b/vid-app-common/src/test/resources/payload_jsons/bulk_service_no_homing.json
new file mode 100644 (file)
index 0000000..f612800
--- /dev/null
@@ -0,0 +1,99 @@
+{
+  "requestDetails": {
+    "modelInfo": {
+      "modelType": "service",
+      "modelInvariantId": "5d48acb5-097d-4982-aeb2-f4a3bd87d31b",
+      "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a",
+      "modelName": "MOW AVPN vMX BV vPE 1 Service",
+      "modelVersion": "10.0"
+    },
+    "owningEntity": {
+      "owningEntityId": "038d99af-0427-42c2-9d15-971b99b9b489",
+      "owningEntityName": "JULIO ERICKSON"
+    },
+    "project": {
+      "projectName": "{some project name}"
+    },
+    "subscriberInfo": {
+      "globalSubscriberId": "{some subscriber id}"
+    },
+    "requestInfo": {
+      "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "az2016"
+    },
+    "requestParameters": {
+      "subscriptionServiceType": "VMX",
+      "aLaCarte": false,
+      "userParams": [{
+        "service": {
+          "modelInfo": {
+            "modelType": "service",
+            "modelName": "MOW AVPN vMX BV vPE 1 Service",
+            "modelVersionId": "3c40d244-808e-42ca-b09a-256d83d19d0a"
+          },
+          "instanceParams": [{
+            "instanceParams_test1": "some text",
+            "instanceParams_test2": "another text"
+          }],
+          "resources": {
+            "vnfs": [{
+              "modelInfo": {
+                "modelType": "vnf",
+                "modelName": "2016-73_MOW-AVPN-vPE-BV-L",
+                "modelVersionId": "7f40c192-f63c-463e-ba94-286933b895f8",
+                "modelCustomizationName": "2016-73_MOW-AVPN-vPE-BV-L 0",
+                "modelCustomizationId": "ab153b6e-c364-44c0-bef6-1f2982117f04"
+              },
+              "cloudConfiguration": {
+                "lcpCloudRegionId": "mdt1",
+                "cloudOwner": "irma-aic",
+                "tenantId": "88a6ca3ee0394ade9403f075db23167e"
+              },
+              "platform": {
+                "platformName": "platformName"
+              },
+              "lineOfBusiness": {
+                "lineOfBusinessName": "lineOfBusinessName"
+              },
+              "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+              "instanceParams": [{
+                "vmx_int_net_len": "24",
+                "availability_zone_0": "mtpocdv-kvm-az01",
+                "vre_a_volume_size_0": "100"
+              }],
+              "vfModules": [{
+                "modelInfo": {
+                  "modelCustomizationName" : "201673MowAvpnVpeBvL..AVPN_base_vPE_BV..module-0",
+                  "modelType": "vfModule",
+                  "modelName": "201673MowAvpnVpeBvL..AVPN_base_vPE_BV..module-0",
+                  "modelVersionId": "4c75f813-fa91-45a4-89d0-790ff5f1ae79",
+                  "modelCustomizationId": "a25e8e8c-58b8-4eec-810c-97dcc1f5cb7f"
+                },
+                "instanceParams": [{
+                  "vmx_int_net_len": "24"
+                }]
+              },
+                {
+                  "modelInfo": {
+                    "modelCustomizationName" : "201673MowAvpnVpeBvL..AVPN_vRE_BV..module-1",
+                    "modelType": "vfModule",
+                    "modelName": "201673MowAvpnVpeBvL..AVPN_vRE_BV..module-1",
+                    "modelVersionId": "56e2b103-637c-4d1a-adc8-3a7f4a6c3240",
+                    "modelCustomizationId": "72d9d1cd-f46d-447a-abdb-451d6fb05fa8"
+                  },
+                  "instanceParams": [{
+                    "availability_zone_0": "mtpocdv-kvm-az01",
+                    "vre_a_volume_size_0": "100"
+                  }]
+                }]
+            }]
+          }
+        }
+      },
+        {"Homing_Solution": "none"}
+      ]
+    }
+  }
+}
\ No newline at end of file
index d9a120a..ba7d557 100644 (file)
-{
-  "results": [
-    {
-      "service-instance": {
-        "service-instance-id": "serviceInstanceID1-369-as988q",
-        "service-instance-name": "EUd8Test",
-        "service-type": "xBoJHJbWTest",
-        "service-role": "sc7OWTest",
-        "environment-context": "O7OVp5Test",
-        "workload-context": "VmnxNeJIgWq7HTest",
-        "model-invariant-id": "modelInvariantValue2-369 -as988q",
-        "model-version-id": "modelVersionKey2-369-as988q",
-        "widget-model-id": "HT7KA2FoRKH3cTest",
-        "widget-model-version": "CsGp5Test",
-        "bandwidth-total": "1Yijkk1Test",
-        "vhn-portal-url": "40PzTest",
-        "service-instance-location-id": "zcAaHJTAt5Hj8Test",
-        "resource-version": "1563820653329",
-        "selflink": "mZP2EVvwwHnlTest",
-        "orchestration-status": "6QvhzNgLudLBTest",
-        "relationship-list": {
-          "relationship": [
-            {
-              "related-to": "generic-vnf",
-              "relationship-label": "org.onap.relationships.inventory.ComposedOf",
-              "related-link": "/aai/v17/network/generic-vnfs/generic-vnf/test-gvnf2-369-as988q",
-              "relationship-data": [
-                {
-                  "relationship-key": "generic-vnf.vnf-id",
-                  "relationship-value": "test-gvnf2-369-as988q"
-                }
-              ],
-              "related-to-property": [
-                {
-                  "property-key": "generic-vnf.vnf-name",
-                  "property-value": "test-name2-gvnf-369"
-                }
-              ]
-            },
-            {
-              "related-to": "generic-vnf",
-              "relationship-label": "org.onap.relationships.inventory.ComposedOf",
-              "related-link": "/aai/v17/network/generic-vnfs/generic-vnf/test-gvnf1-369-as988q",
-              "relationship-data": [
-                {
-                  "relationship-key": "generic-vnf.vnf-id",
-                  "relationship-value": "test-gvnf1-369-as988q"
-                }
-              ],
-              "related-to-property": [
-                {
-                  "property-key": "generic-vnf.vnf-name",
-                  "property-value": "test-name-gvnf-369"
-                }
-              ]
-            }
-          ]
-        }
-      }
+{"results": [
+  {
+    "id": "908419144",
+    "node-type": "service-instance",
+    "url": "/aai/v17/business/customers/customer/globalCustomerId1-369-as988q/service-subscriptions/service-subscription/TEST1-369/service-instances/service-instance/serviceInstanceID1-369-as988q",
+    "properties":       {
+      "service-instance-id": "serviceInstanceID1-369-as988q",
+      "service-instance-name": "EUd8Test",
+      "service-type": "xBoJHJbWTest",
+      "service-role": "sc7OWTest",
+      "environment-context": "O7OVp5Test",
+      "workload-context": "VmnxNeJIgWq7HTest",
+      "model-invariant-id": "modelInvariantValue2-369-as988q",
+      "model-version-id": "modelVersionKey2-369-as988q",
+      "widget-model-id": "HT7KA2FoRKH3cTest",
+      "widget-model-version": "CsGp5Test",
+      "bandwidth-total": "1Yijkk1Test",
+      "vhn-portal-url": "40PzTest",
+      "service-instance-location-id": "zcAaHJTAt5Hj8Test",
+      "resource-version": "1563820653329",
+      "selflink": "mZP2EVvwwHnlTest",
+      "orchestration-status": "6QvhzNgLudLBTest"
     },
-    {
-      "model-ver": {
-        "model-version-id": "modelVersionKey2-369-as988q",
-        "model-name": "vnfc8",
-        "model-version": "1.1",
-        "resource-version": "1563820653007"
+    "related-to":       [
+      {
+        "id": "439189680",
+        "relationship-label": "org.onap.relationships.inventory.ComposedOf",
+        "node-type": "generic-vnf",
+        "url": "/aai/v17/network/generic-vnfs/generic-vnf/test-gvnf2-369-as988q"
+      },
+      {
+        "id": "1166020712",
+        "relationship-label": "org.onap.relationships.inventory.ComposedOf",
+        "node-type": "generic-vnf",
+        "url": "/aai/v17/network/generic-vnfs/generic-vnf/test-gvnf1-369-as988q"
+      },
+      {
+        "id": "1166016616",
+        "relationship-label": "org.onap.relationships.inventory.BelongsTo",
+        "node-type": "service-subscription",
+        "url": "/aai/v17/business/customers/customer/globalCustomerId1-369-as988q/service-subscriptions/service-subscription/TEST1-369"
       }
+    ]
+  },
+  {
+    "id": "890175488",
+    "node-type": "model-ver",
+    "url": "/aai/v17/service-design-and-creation/models/model/modelInvariantValue2-369-as988q/model-vers/model-ver/modelVersionKey2-369-as988q",
+    "properties":       {
+      "model-version-id": "modelVersionKey2-369-as988q",
+      "model-name": "vnfc8",
+      "model-version": "1.1",
+      "resource-version": "1563820653007"
     },
-    {
-      "model": {
-        "model-invariant-id": "modelInvariantValue2-369-as988q",
-        "model-type": "widget3",
-        "resource-version": "1563820652703",
-        "model-vers": {
-          "model-ver": [
-            {
-              "model-version-id": "modelVersionKey2-369-as988q",
-              "model-name": "vnfc8",
-              "model-version": "1.1",
-              "resource-version": "1563820653007"
-            }
-          ]
-        }
-      }
+    "related-to": [      {
+      "id": "908415048",
+      "relationship-label": "org.onap.relationships.inventory.BelongsTo",
+      "node-type": "model",
+      "url": "/aai/v17/service-design-and-creation/models/model/modelInvariantValue2-369-as988q"
+    }]
+  },
+  {
+    "id": "908415048",
+    "node-type": "model",
+    "url": "/aai/v17/service-design-and-creation/models/model/modelInvariantValue2-369-as988q",
+    "properties":       {
+      "model-invariant-id": "modelInvariantValue2-369-as988q",
+      "model-type": "widget3",
+      "resource-version": "1563820652703"
     },
-    {
-      "generic-vnf": {
-        "vnf-id": "test-gvnf2-369-as988q",
-        "vnf-name": "test-name2-gvnf-369",
-        "vnf-type": "SW",
-        "service-id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-        "equipment-role": "UCPE",
-        "orchestration-status": "created",
-        "ipv4-oam-address": "12.80.1.18",
-        "nm-lan-v6-address": "2001:1890:e00e:fffe::33c4",
-        "in-maint": false,
-        "is-closed-loop-disabled": false,
-        "resource-version": "1563820654611",
-        "model-invariant-id": "modelInvariantValue-369-as988q",
-        "model-version-id": "modelVersionKey-369-as988q",
-        "nf-role": "test360",
-        "relationship-list": {
-          "relationship": [
-            {
-              "related-to": "service-instance",
-              "relationship-label": "org.onap.relationships.inventory.ComposedOf",
-              "related-link": "/aai/v17/business/customers/customer/globalCustomerId1-369-as988q/service-subscriptions/service-subscription/TEST1-369/service-instances/service-instance/serviceInstanceID1-369-as988q",
-              "relationship-data": [
-                {
-                  "relationship-key": "customer.global-customer-id",
-                  "relationship-value": "globalCustomerId1-369-as988q"
-                },
-                {
-                  "relationship-key": "service-subscription.service-type",
-                  "relationship-value": "TEST1-369"
-                },
-                {
-                  "relationship-key": "service-instance.service-instance-id",
-                  "relationship-value": "serviceInstanceID1-369-as988q"
-                }
-              ],
-              "related-to-property": [
-                {
-                  "property-key": "service-instance.service-instance-name",
-                  "property-value": "EUd8Test"
-                }
-              ]
-            }
-          ]
-        }
-      }
+    "related-to": [      {
+      "id": "890175488",
+      "relationship-label": "org.onap.relationships.inventory.BelongsTo",
+      "node-type": "model-ver",
+      "url": "/aai/v17/service-design-and-creation/models/model/modelInvariantValue2-369-as988q/model-vers/model-ver/modelVersionKey2-369-as988q"
+    }]
+  },
+  {
+    "id": "439189680",
+    "node-type": "generic-vnf",
+    "url": "/aai/v17/network/generic-vnfs/generic-vnf/test-gvnf2-369-as988q",
+    "properties":       {
+      "vnf-id": "test-gvnf2-369-as988q",
+      "vnf-name": "test-name2-gvnf-369",
+      "vnf-type": "SW",
+      "service-id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
+      "equipment-role": "UCPE",
+      "orchestration-status": "created",
+      "ipv4-oam-address": "12.80.1.18",
+      "nm-lan-v6-address": "2001:1890:e00e:fffe::33c4",
+      "in-maint": false,
+      "is-closed-loop-disabled": false,
+      "resource-version": "1563820654611",
+      "model-invariant-id": "modelInvariantValue-369-as988q",
+      "model-version-id": "modelVersionKey-369-as988q",
+      "nf-role": "test360"
     },
-    {
-      "model-ver": {
-        "model-version-id": "modelVersionKey-369-as988q",
-        "model-name": "vnfc8",
-        "model-version": "1.1",
-        "resource-version": "1563820652380"
-      }
+    "related-to": [      {
+      "id": "908419144",
+      "relationship-label": "org.onap.relationships.inventory.ComposedOf",
+      "node-type": "service-instance",
+      "url": "/aai/v17/business/customers/customer/globalCustomerId1-369-as988q/service-subscriptions/service-subscription/TEST1-369/service-instances/service-instance/serviceInstanceID1-369-as988q"
+    }]
+  },
+  {
+    "id": "1166012520",
+    "node-type": "model-ver",
+    "url": "/aai/v17/service-design-and-creation/models/model/modelInvariantValue-369-as988q/model-vers/model-ver/modelVersionKey-369-as988q",
+    "properties":       {
+      "model-version-id": "modelVersionKey-369-as988q",
+      "model-name": "vnfc8",
+      "model-version": "1.1",
+      "resource-version": "1563820652380"
     },
-    {
-      "model": {
-        "model-invariant-id": "modelInvariantValue-369-as988q",
-        "model-type": "service",
-        "resource-version": "1563820652072",
-        "model-vers": {
-          "model-ver": [
-            {
-              "model-version-id": "modelVersionKey-369-as988q",
-              "model-name": "vnfc8",
-              "model-version": "1.1",
-              "resource-version": "1563820652380"
-            }
-          ]
-        }
-      }
+    "related-to": [      {
+      "id": "1166008424",
+      "relationship-label": "org.onap.relationships.inventory.BelongsTo",
+      "node-type": "model",
+      "url": "/aai/v17/service-design-and-creation/models/model/modelInvariantValue-369-as988q"
+    }]
+  },
+  {
+    "id": "1166008424",
+    "node-type": "model",
+    "url": "/aai/v17/service-design-and-creation/models/model/modelInvariantValue-369-as988q",
+    "properties":       {
+      "model-invariant-id": "modelInvariantValue-369-as988q",
+      "model-type": "service",
+      "resource-version": "1563820652072"
     },
-    {
-      "generic-vnf": {
-        "vnf-id": "test-gvnf1-369-as988q",
-        "vnf-name": "test-name-gvnf-369",
-        "vnf-type": "SW",
-        "service-id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-        "equipment-role": "UCPE",
-        "orchestration-status": "created",
-        "ipv4-oam-address": "12.80.1.18",
-        "nm-lan-v6-address": "2001:1890:e00e:fffe::33c4",
-        "in-maint": false,
-        "is-closed-loop-disabled": false,
-        "resource-version": "1563820654296",
-        "model-invariant-id": "modelInvariantValue-369-as988q",
-        "model-version-id": "modelVersionKey-369-as988q",
-        "nf-role": "test360",
-        "relationship-list": {
-          "relationship": [
-            {
-              "related-to": "service-instance",
-              "relationship-label": "org.onap.relationships.inventory.ComposedOf",
-              "related-link": "/aai/v17/business/customers/customer/globalCustomerId1-369-as988q/service-subscriptions/service-subscription/TEST1-369/service-instances/service-instance/serviceInstanceID1-369-as988q",
-              "relationship-data": [
-                {
-                  "relationship-key": "customer.global-customer-id",
-                  "relationship-value": "globalCustomerId1-369-as988q"
-                },
-                {
-                  "relationship-key": "service-subscription.service-type",
-                  "relationship-value": "TEST1-369"
-                },
-                {
-                  "relationship-key": "service-instance.service-instance-id",
-                  "relationship-value": "serviceInstanceID1-369-as988q"
-                }
-              ],
-              "related-to-property": [
-                {
-                  "property-key": "service-instance.service-instance-name",
-                  "property-value": "EUd8Test"
-                }
-              ]
-            },
-            {
-              "related-to": "vserver",
-              "relationship-label": "tosca.relationships.HostedOn",
-              "related-link": "/aai/v17/cloud-infrastructure/cloud-regions/cloud-region/cloudOwnerKeyValue1-369-as988q/cloudRegionIdKeyValue1-369-as988q/tenants/tenant/tenantID1-369-as988q/vservers/vserver/vserver1-369-test-as988q",
-              "relationship-data": [
-                {
-                  "relationship-key": "cloud-region.cloud-owner",
-                  "relationship-value": "cloudOwnerKeyValue1-369-as988q"
-                },
-                {
-                  "relationship-key": "cloud-region.cloud-region-id",
-                  "relationship-value": "cloudRegionIdKeyValue1-369-as988q"
-                },
-                {
-                  "relationship-key": "tenant.tenant-id",
-                  "relationship-value": "tenantID1-369-as988q"
-                },
-                {
-                  "relationship-key": "vserver.vserver-id",
-                  "relationship-value": "vserver1-369-test-as988q"
-                }
-              ],
-              "related-to-property": [
-                {
-                  "property-key": "vserver.vserver-name",
-                  "property-value": "vserver-name11-369-as988q"
-                }
-              ]
-            }
-          ]
-        }
-      }
+    "related-to": [      {
+      "id": "1166012520",
+      "relationship-label": "org.onap.relationships.inventory.BelongsTo",
+      "node-type": "model-ver",
+      "url": "/aai/v17/service-design-and-creation/models/model/modelInvariantValue-369-as988q/model-vers/model-ver/modelVersionKey-369-as988q"
+    }]
+  },
+  {
+    "id": "1166020712",
+    "node-type": "generic-vnf",
+    "url": "/aai/v17/network/generic-vnfs/generic-vnf/test-gvnf1-369-as988q",
+    "properties":       {
+      "vnf-id": "test-gvnf1-369-as988q",
+      "vnf-name": "test-name-gvnf-369",
+      "vnf-type": "SW",
+      "service-id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
+      "equipment-role": "UCPE",
+      "orchestration-status": "created",
+      "ipv4-oam-address": "12.80.1.18",
+      "nm-lan-v6-address": "2001:1890:e00e:fffe::33c4",
+      "in-maint": false,
+      "is-closed-loop-disabled": false,
+      "resource-version": "1563820654296",
+      "model-invariant-id": "modelInvariantValue-369-as988q",
+      "model-version-id": "modelVersionKey-369-as988q",
+      "nf-role": "test360"
     },
-    {
-      "tenant": {
-        "tenant-id": "tenantID1-369-as988q",
-        "tenant-name": "tenant-name1-369-as988q",
-        "resource-version": "1563820651384",
-        "vservers": {
-          "vserver": [
-            {
-              "vserver-id": "vserver1-369-test-as988q",
-              "vserver-name": "vserver-name11-369-as988q",
-              "vserver-name2": "vserver-name22-360-as988q",
-              "prov-status": "ACTIVE",
-              "vserver-selflink": "TRINITY vserverLink",
-              "in-maint": false,
-              "is-closed-loop-disabled": false,
-              "resource-version": "1563820654917",
-              "relationship-list": {
-                "relationship": [
-                  {
-                    "related-to": "generic-vnf",
-                    "relationship-label": "tosca.relationships.HostedOn",
-                    "related-link": "/aai/v17/network/generic-vnfs/generic-vnf/test-gvnf1-369-as988q",
-                    "relationship-data": [
-                      {
-                        "relationship-key": "generic-vnf.vnf-id",
-                        "relationship-value": "test-gvnf1-369-as988q"
-                      }
-                    ],
-                    "related-to-property": [
-                      {
-                        "property-key": "generic-vnf.vnf-name",
-                        "property-value": "test-name-gvnf-369"
-                      }
-                    ]
-                  }
-                ]
-              }
-            }
-          ]
-        }
+    "related-to":       [
+      {
+        "id": "908419144",
+        "relationship-label": "org.onap.relationships.inventory.ComposedOf",
+        "node-type": "service-instance",
+        "url": "/aai/v17/business/customers/customer/globalCustomerId1-369-as988q/service-subscriptions/service-subscription/TEST1-369/service-instances/service-instance/serviceInstanceID1-369-as988q"
+      },
+      {
+        "id": "848445448",
+        "relationship-label": "tosca.relationships.HostedOn",
+        "node-type": "vserver",
+        "url": "/aai/v17/cloud-infrastructure/cloud-regions/cloud-region/cloudOwnerKeyValue1-369-as988q/cloudRegionIdKeyValue1-369-as988q/tenants/tenant/tenantID1-369-as988q/vservers/vserver/vserver1-369-test-as988q"
       }
+    ]
+  },
+  {
+    "id": "908410952",
+    "node-type": "tenant",
+    "url": "/aai/v17/cloud-infrastructure/cloud-regions/cloud-region/cloudOwnerKeyValue1-369-as988q/cloudRegionIdKeyValue1-369-as988q/tenants/tenant/tenantID1-369-as988q",
+    "properties":       {
+      "tenant-id": "tenantID1-369-as988q",
+      "tenant-name": "tenant-name1-369-as988q",
+      "resource-version": "1563820651384"
     },
-    {
-      "cloud-region": {
-        "cloud-owner": "cloudOwnerKeyValue1-369-as988q",
-        "cloud-region-id": "cloudRegionIdKeyValue1-369-as988q",
-        "resource-version": "1563820651058",
-        "orchestration-disabled": false,
-        "in-maint": false,
-        "tenants": {
-          "tenant": [
-            {
-              "tenant-id": "tenantID1-369-as988q",
-              "tenant-name": "tenant-name1-369-as988q",
-              "resource-version": "1563820651384"
-            }
-          ]
-        }
+    "related-to":       [
+      {
+        "id": "848445448",
+        "relationship-label": "org.onap.relationships.inventory.BelongsTo",
+        "node-type": "vserver",
+        "url": "/aai/v17/cloud-infrastructure/cloud-regions/cloud-region/cloudOwnerKeyValue1-369-as988q/cloudRegionIdKeyValue1-369-as988q/tenants/tenant/tenantID1-369-as988q/vservers/vserver/vserver1-369-test-as988q"
+      },
+      {
+        "id": "1166004328",
+        "relationship-label": "org.onap.relationships.inventory.BelongsTo",
+        "node-type": "cloud-region",
+        "url": "/aai/v17/cloud-infrastructure/cloud-regions/cloud-region/cloudOwnerKeyValue1-369-as988q/cloudRegionIdKeyValue1-369-as988q"
       }
-    }
-  ]
-}
\ No newline at end of file
+    ]
+  },
+  {
+    "id": "1166004328",
+    "node-type": "cloud-region",
+    "url": "/aai/v17/cloud-infrastructure/cloud-regions/cloud-region/cloudOwnerKeyValue1-369-as988q/cloudRegionIdKeyValue1-369-as988q",
+    "properties":       {
+      "cloud-owner": "cloudOwnerKeyValue1-369-as988q",
+      "cloud-region-id": "cloudRegionIdKeyValue1-369-as988q",
+      "resource-version": "1563820651058",
+      "orchestration-disabled": false,
+      "in-maint": false
+    },
+    "related-to": [      {
+      "id": "908410952",
+      "relationship-label": "org.onap.relationships.inventory.BelongsTo",
+      "node-type": "tenant",
+      "url": "/aai/v17/cloud-infrastructure/cloud-regions/cloud-region/cloudOwnerKeyValue1-369-as988q/cloudRegionIdKeyValue1-369-as988q/tenants/tenant/tenantID1-369-as988q"
+    }]
+  }
+]}
\ No newline at end of file