aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'vid-app-common/src/test')
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/aai/AaiClientTest.java47
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/job/impl/AsyncInstantiationIntegrationTest.java161
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java2
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java10
-rw-r--r--vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule.json25
-rw-r--r--vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule_fe_input.json3
6 files changed, 146 insertions, 102 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/aai/AaiClientTest.java b/vid-app-common/src/test/java/org/onap/vid/aai/AaiClientTest.java
index 5c37bb1ee..777729c03 100644
--- a/vid-app-common/src/test/java/org/onap/vid/aai/AaiClientTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/aai/AaiClientTest.java
@@ -56,7 +56,6 @@ import java.net.URI;
import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.Map;
-import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.stream.Stream;
@@ -756,51 +755,6 @@ public class AaiClientTest {
};
}
- @Test
- public void testGetLatestVersionByInvariantId() throws IOException {
-
- ModelVersions modelVersions = JACKSON_OBJECT_MAPPER.readValue("" +
- "{\n" +
- " \"results\": [\n" +
- " {\n" +
- " \"model\": {\n" +
- " \"model-invariant-id\": \"f6342be5-d66b-4d03-a1aa-c82c3094c4ea\",\n" +
- " \"model-type\": \"service\",\n" +
- " \"resource-version\": \"1534274421300\"\n" +
- " }\n" +
- " },\n" +
- " {\n" +
- " \"model-ver\": {\n" +
- " \"model-version-id\": \"a92f899d-a3ec-465b-baed-1663b0a5aee1\",\n" +
- " \"model-name\": \"NCM_VLAN_SVC_ym161f\",\n" +
- " \"model-version\": \"bbb\",\n" +
- " \"distribution-status\": \"DISTRIBUTION_COMPLETE_OK\",\n" +
- " \"model-description\": \"Network Collection service for vLAN tagging\",\n" +
- " \"resource-version\": \"1534788756086\"\n" +
- " }\n" +
- " },\n" +
- " {\n" +
- " \"model-ver\": {\n" +
- " \"model-version-id\": \"d2fda667-e92e-4cfa-9620-5da5de01a319\",\n" +
- " \"model-name\": \"NCM_VLAN_SVC_ym161f\",\n" +
- " \"model-version\": \"aaa\",\n" +
- " \"distribution-status\": \"DISTRIBUTION_COMPLETE_OK\",\n" +
- " \"model-description\": \"Network Collection service for vLAN tagging\",\n" +
- " \"resource-version\": \"1534444087221\"\n" +
- " }\n" +
- " }]}", ModelVersions.class);
-
-
- final AaiClient aaiClient = new AaiClient(null, null, null);
-
- assertThat(aaiClient.toModelVerStream(modelVersions).collect(toList()),
- containsInAnyOrder(
- hasProperty("modelVersionId", is("a92f899d-a3ec-465b-baed-1663b0a5aee1")),
- hasProperty("modelVersionId", is("d2fda667-e92e-4cfa-9620-5da5de01a319"))
- ));
-
- }
-
@DataProvider
public static Object[][] versionsDataProvider() {
return new Object[][] {
@@ -984,5 +938,4 @@ public class AaiClientTest {
));
}
-
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/job/impl/AsyncInstantiationIntegrationTest.java b/vid-app-common/src/test/java/org/onap/vid/job/impl/AsyncInstantiationIntegrationTest.java
index 498708d06..fdc416a3b 100644
--- a/vid-app-common/src/test/java/org/onap/vid/job/impl/AsyncInstantiationIntegrationTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/job/impl/AsyncInstantiationIntegrationTest.java
@@ -20,9 +20,66 @@
package org.onap.vid.job.impl;
+import static java.util.stream.Collectors.counting;
+import static java.util.stream.Collectors.groupingBy;
+import static java.util.stream.Collectors.joining;
+import static net.javacrumbs.jsonunit.JsonAssert.assertJsonEquals;
+import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals;
+import static net.javacrumbs.jsonunit.JsonMatchers.jsonPartEquals;
+import static net.javacrumbs.jsonunit.JsonMatchers.jsonPartMatches;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.hasProperty;
+import static org.hamcrest.Matchers.hasSize;
+import static org.hamcrest.core.Every.everyItem;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.ArgumentMatchers.endsWith;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.onap.vid.job.Job.JobStatus.COMPLETED;
+import static org.onap.vid.job.Job.JobStatus.COMPLETED_WITH_ERRORS;
+import static org.onap.vid.job.Job.JobStatus.COMPLETED_WITH_NO_ACTION;
+import static org.onap.vid.job.Job.JobStatus.FAILED;
+import static org.onap.vid.job.Job.JobStatus.IN_PROGRESS;
+import static org.onap.vid.job.Job.JobStatus.PAUSE;
+import static org.onap.vid.job.Job.JobStatus.PENDING;
+import static org.onap.vid.job.Job.JobStatus.PENDING_RESOURCE;
+import static org.onap.vid.job.Job.JobStatus.RESOURCE_IN_PROGRESS;
+import static org.onap.vid.job.Job.JobStatus.STOPPED;
+import static org.onap.vid.job.impl.JobSchedulerInitializer.WORKERS_TOPICS;
+import static org.onap.vid.model.JobAuditStatus.SourceStatus.VID;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
+
import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Stack;
+import java.util.UUID;
+import java.util.function.BiConsumer;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
+import javax.inject.Inject;
+import javax.ws.rs.ProcessingException;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.mutable.MutableInt;
import org.jetbrains.annotations.NotNull;
@@ -33,13 +90,24 @@ import org.onap.portalsdk.core.service.DataAccessService;
import org.onap.portalsdk.core.util.SystemProperties;
import org.onap.vid.asdc.AsdcCatalogException;
import org.onap.vid.changeManagement.RequestDetailsWrapper;
+import org.onap.vid.config.DataSourceConfig;
+import org.onap.vid.config.JobCommandsConfigWithMockedMso;
+import org.onap.vid.config.MockedAaiClientAndFeatureManagerConfig;
import org.onap.vid.job.Job;
import org.onap.vid.job.Job.JobStatus;
import org.onap.vid.job.JobType;
import org.onap.vid.job.JobsBrokerService;
import org.onap.vid.job.command.CommandUtils;
import org.onap.vid.job.command.InternalState;
-import org.onap.vid.model.*;
+import org.onap.vid.model.Action;
+import org.onap.vid.model.JobAuditStatus;
+import org.onap.vid.model.NameCounter;
+import org.onap.vid.model.RequestReferencesContainer;
+import org.onap.vid.model.Service;
+import org.onap.vid.model.ServiceInfo;
+import org.onap.vid.model.ServiceModel;
+import org.onap.vid.model.VNF;
+import org.onap.vid.model.VfModule;
import org.onap.vid.model.serviceInstantiation.BaseResource;
import org.onap.vid.model.serviceInstantiation.InstanceGroup;
import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
@@ -49,15 +117,12 @@ import org.onap.vid.mso.model.RequestReferences;
import org.onap.vid.mso.rest.AsyncRequestStatus;
import org.onap.vid.mso.rest.AsyncRequestStatusList;
import org.onap.vid.properties.Features;
+import org.onap.vid.services.AsyncInstantiationBaseTest;
import org.onap.vid.services.AsyncInstantiationBusinessLogic;
import org.onap.vid.services.AuditService;
import org.onap.vid.services.VersionService;
-import org.onap.vid.utils.DaoUtils;
-import org.onap.vid.config.DataSourceConfig;
-import org.onap.vid.config.JobCommandsConfigWithMockedMso;
-import org.onap.vid.config.MockedAaiClientAndFeatureManagerConfig;
-import org.onap.vid.services.AsyncInstantiationBaseTest;
import org.onap.vid.testUtils.TestUtils;
+import org.onap.vid.utils.DaoUtils;
import org.springframework.http.HttpMethod;
import org.springframework.test.context.ContextConfiguration;
import org.testng.annotations.BeforeClass;
@@ -66,34 +131,6 @@ import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.togglz.core.manager.FeatureManager;
-import javax.inject.Inject;
-import javax.ws.rs.ProcessingException;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.*;
-import java.util.function.BiConsumer;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-import java.util.stream.Stream;
-
-import static java.util.stream.Collectors.*;
-import static net.javacrumbs.jsonunit.JsonAssert.assertJsonEquals;
-import static net.javacrumbs.jsonunit.JsonMatchers.*;
-import static org.hamcrest.CoreMatchers.*;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.hasProperty;
-import static org.hamcrest.Matchers.hasSize;
-import static org.hamcrest.core.Every.everyItem;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.endsWith;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-import static org.onap.vid.job.Job.JobStatus.*;
-import static org.onap.vid.job.impl.JobSchedulerInitializer.WORKERS_TOPICS;
-import static org.onap.vid.model.JobAuditStatus.SourceStatus.VID;
-import static org.testng.AssertJUnit.*;
-
//it's more like integration test than UT
//But it's very hard to test in API test so I use UT
@ContextConfiguration(classes = {DataSourceConfig.class, SystemProperties.class, MockedAaiClientAndFeatureManagerConfig.class, JobCommandsConfigWithMockedMso.class})
@@ -1203,12 +1240,18 @@ public class AsyncInstantiationIntegrationTest extends AsyncInstantiationBaseTes
}
@Test
- public void whenUpgradingAvfModule_thanExpectedReplaceRequestSent() throws IOException {
- String instanceId = "5d49c3b1-fc90-4762-8c98-e800170baa55"; //from feRequestResumeMacroService.json
+ public void whenUpgradingAvfModule_thanExpectedReplaceRequestSent() throws IOException, AsdcCatalogException {
+ String instanceId = "5d49c3b1-fc90-4762-8c98-e800170baa55"; //from replace_vfmodule_fe_input.json
String replaceRequestId = randomUuid();
String userId = "az2016";
+ //prepare mocks for newest model
+ String newestModelUuid = "newest-model-uuid";
+ when(commandUtils.getNewestModelUuid(eq("b16a9398-ffa3-4041-b78c-2956b8ad9c7b"))).thenReturn(newestModelUuid);
+
+ when(commandUtils.getServiceModel(eq(newestModelUuid))).thenReturn(generateMockLatestModelForUpgrade());
+
//prepare mocks resume request
when(restMso.restCall(eq(HttpMethod.POST), eq(RequestReferencesContainer.class), any(), eq("/serviceInstantiation/v7/serviceInstances/e9993045-cc96-4f3f-bf9a-71b2a400a956/vnfs/5c9c2896-1fe6-4055-b7ec-d0a01e5f9bf5/vfModules/5d49c3b1-fc90-4762-8c98-e800170baa55/replace"), eq(Optional.of(userId))))
.thenReturn(createResponse(202, instanceId, replaceRequestId));
@@ -1235,7 +1278,53 @@ public class AsyncInstantiationIntegrationTest extends AsyncInstantiationBaseTes
requestCaptor.getAllValues().forEach(x->assertJsonEquals(expectedJson, x));
}
+ private ServiceModel generateMockLatestModelForUpgrade() {
+ ServiceModel expectedNewestModel = new ServiceModel();
+
+
+ VfModule vfm = new VfModule();
+ vfm.setModelCustomizationName("newest-model-customization-name-vfm");
+ vfm.setCustomizationUuid("newest-model-customization-uuid-vfm");
+ vfm.setVersion("newest-model-version-vfm");
+ vfm.setUuid("newest-model-uuid-vfm");
+ vfm.setName("newest-model-name-vfm");
+ vfm.setInvariantUuid("f7a867f2-596b-4f4a-a128-421e825a6190");
+
+
+ Map<String,VfModule> vfms = new HashMap<>();
+ vfms.put("074c64d0-7e13-4bcc-8bdb-ea922331102d", vfm);
+
+
+ VNF vnf = new VNF();
+ vnf.setModelCustomizationName("newest-model-customization-name-vnf");
+ vnf.setCustomizationUuid("newest-model-customization-uuid-vnf");
+ vnf.setVersion("newest-model-version-vnf");
+ vnf.setUuid("newest-model-uuid-vnf");
+ vnf.setName("newest-model-name-vnf");
+ vnf.setInvariantUuid("23122c9b-dd7f-483f-bf0a-e069303db2f7");
+ vnf.setVfModules(vfms);
+ expectedNewestModel.setVfModules(vfms);
+
+ Map<String,VNF> vnfs = new HashMap<>();
+ vnfs.put("96c23a4a-6887-4b2c-9cce-1e4ea35eaade", vnf);
+
+ Service svc = new Service();
+ svc.setInvariantUuid("b16a9398-ffa3-4041-b78c-2956b8ad9c7b");
+ svc.setUuid("newest-model-uuid-service");
+ svc.setVersion("newest-model-version-service");
+ svc.setName("newest-model-name-service");
+
+ expectedNewestModel.setService(svc);
+
+ expectedNewestModel.setVnfs(vnfs);
+
+ return expectedNewestModel;
+
+
+ }
+
private ServiceInstantiation generateReplaceVfModulePayload() throws IOException {
return TestUtils.readJsonResourceFileAsObject("/payload_jsons/vfmodule/replace_vfmodule_fe_input.json", ServiceInstantiation.class);
}
+
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
index 69458aa86..9cc97116b 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
@@ -183,7 +183,7 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
}
protected VfModule createVfModuleForReplace(ModelInfo vfModuleModelInfo, String instanceName, String lcpCloudRegionId, String tenantId) {
- return new VfModule( vfModuleModelInfo, instanceName, null, Action.Replace.name(), lcpCloudRegionId, null, tenantId,
+ return new VfModule( vfModuleModelInfo, instanceName, null, Action.Upgrade.name(), lcpCloudRegionId, null, tenantId,
null, null, true, null, null, UUID.randomUUID().toString(), null, null);
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java b/vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java
index 311eb04cc..bd761f275 100644
--- a/vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java
@@ -603,18 +603,18 @@ public class MsoRequestBuilderTest extends AsyncInstantiationBaseTest {
when(featureManager.isActive(Features.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST)).thenReturn(true);
when(aaiClient.getCloudOwnerByCloudRegionId("regionOne")).thenReturn("irma-aic");
- ModelInfo vfModuleModelInfo = createVfModuleModelInfo("VfZrdm5bpxmc02092017Vf..CORNELIUS_base..module-0", "1", "eb5de6fb-9ecf-4009-b922-fae3a9ae7d46",
- "f7a867f2-596b-4f4a-a128-421e825a6190", "074c64d0-7e13-4bcc-8bdb-ea922331102d",null );
+ ModelInfo vfModuleModelInfo = createVfModuleModelInfo("newest-model-name-vfm", "newest-model-version-vfm", "newest-model-uuid-vfm",
+ "f7a867f2-596b-4f4a-a128-421e825a6190", "newest-model-customization-uuid-vfm","newest-model-customization-name-vfm" );
VfModule vfModuleDetails = createVfModuleForReplace(vfModuleModelInfo, "replace_module", "regionOne", "0422ffb57ba042c0800a29dc85ca70f8");
- ModelInfo serviceModelInfo = createServiceModelInfo("Vf zolson5bpxmc02092017-Service", "1", "bad955c3-29b2-4a27-932e-28e942cc6480", "b16a9398-ffa3-4041-b78c-2956b8ad9c7b", null, null );
+ ModelInfo serviceModelInfo = createServiceModelInfo("newest-model-name-service", "newest-model-version-service", "newest-model-uuid-service", "b16a9398-ffa3-4041-b78c-2956b8ad9c7b", null, null );
- ModelInfo vnfModelInfo = createVnfModelInfo("Vf zolson5bpxmc02092017-VF", "1", "d326f424-2312-4dd6-b7fe-364fadbd1ef5", "23122c9b-dd7f-483f-bf0a-e069303db2f7", "96c23a4a-6887-4b2c-9cce-1e4ea35eaade", "Vf zolson5bpxmc02092017-VF 0" );
+ ModelInfo vnfModelInfo = createVnfModelInfo("newest-model-name-vnf", "newest-model-version-vnf", "newest-model-uuid-vnf", "23122c9b-dd7f-483f-bf0a-e069303db2f7", "newest-model-customization-uuid-vnf", "newest-model-customization-name-vnf" );
RequestDetailsWrapper<VfModuleInstantiationRequestDetails> result =
msoRequestBuilder.generateVfModuleInstantiationRequest(vfModuleDetails, serviceModelInfo, "e9993045-cc96-4f3f-bf9a-71b2a400a956", vnfModelInfo, "5c9c2896-1fe6-4055-b7ec-d0a01e5f9bf5", null,"az2016", "GR_API");
- MsoOperationalEnvironmentTest.assertThatExpectationIsLikeObject(expected, result);
+ assertThat(result, jsonEquals(expected).when(IGNORING_ARRAY_ORDER));
}
} \ No newline at end of file
diff --git a/vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule.json b/vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule.json
index c3ab694aa..103985c96 100644
--- a/vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule.json
+++ b/vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule.json
@@ -10,9 +10,9 @@
"relatedInstance": {
"instanceId": "e9993045-cc96-4f3f-bf9a-71b2a400a956",
"modelInfo": {
- "modelVersionId": "bad955c3-29b2-4a27-932e-28e942cc6480",
- "modelVersion": "1",
- "modelName": "Vf zolson5bpxmc02092017-Service",
+ "modelVersionId": "newest-model-uuid-service",
+ "modelVersion": "newest-model-version-service",
+ "modelName": "newest-model-name-service",
"modelInvariantId": "b16a9398-ffa3-4041-b78c-2956b8ad9c7b",
"modelType": "service"
}
@@ -21,13 +21,13 @@
"relatedInstance": {
"instanceId": "5c9c2896-1fe6-4055-b7ec-d0a01e5f9bf5",
"modelInfo": {
- "modelName": "Vf zolson5bpxmc02092017-VF",
- "modelVersion": "1",
+ "modelName": "newest-model-name-vnf",
+ "modelVersion": "newest-model-version-vnf",
"modelInvariantId": "23122c9b-dd7f-483f-bf0a-e069303db2f7",
"modelType": "vnf",
- "modelCustomizationName": "Vf zolson5bpxmc02092017-VF 0",
- "modelVersionId": "d326f424-2312-4dd6-b7fe-364fadbd1ef5",
- "modelCustomizationId": "96c23a4a-6887-4b2c-9cce-1e4ea35eaade"
+ "modelCustomizationName": "newest-model-customization-name-vnf",
+ "modelVersionId": "newest-model-uuid-vnf",
+ "modelCustomizationId": "newest-model-customization-uuid-vnf"
}
}
}],
@@ -36,12 +36,13 @@
"testApi": "GR_API"
},
"modelInfo": {
- "modelName": "VfZrdm5bpxmc02092017Vf..CORNELIUS_base..module-0",
- "modelVersion": "1",
+ "modelName": "newest-model-name-vfm",
+ "modelVersion": "newest-model-version-vfm",
"modelInvariantId": "f7a867f2-596b-4f4a-a128-421e825a6190",
"modelType": "vfModule",
- "modelVersionId": "eb5de6fb-9ecf-4009-b922-fae3a9ae7d46",
- "modelCustomizationId": "074c64d0-7e13-4bcc-8bdb-ea922331102d"
+ "modelVersionId": "newest-model-uuid-vfm",
+ "modelCustomizationId": "newest-model-customization-uuid-vfm",
+ "modelCustomizationName":"newest-model-customization-name-vfm"
},
"cloudConfiguration": {
"cloudOwner": "irma-aic",
diff --git a/vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule_fe_input.json b/vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule_fe_input.json
index 92ccfe541..8d30fd873 100644
--- a/vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule_fe_input.json
+++ b/vid-app-common/src/test/resources/payload_jsons/vfmodule/replace_vfmodule_fe_input.json
@@ -8,7 +8,7 @@
"VfZrdm5bpxmc02092017Vf..CORNELIUS_base..module-0-?": {
"instanceName": "replace_module",
"instanceId": "5d49c3b1-fc90-4762-8c98-e800170baa55",
- "action": "Replace",
+ "action": "Upgrade",
"orchStatus": "Create",
"provStatus": "Prov Status",
"inMaint": false,
@@ -21,6 +21,7 @@
"modelName": "VfZrdm5bpxmc02092017Vf..CORNELIUS_base..module-0",
"modelVersion": "1",
"modelCustomizationId": "074c64d0-7e13-4bcc-8bdb-ea922331102d",
+ "modelCustomizationName" : "VfZrdm5bpxmc02092017Vf..CORNELIUS_base..module-0",
"uuid": "eb5de6fb-9ecf-4009-b922-fae3a9ae7d46"
},
"uuid": "eb5de6fb-9ecf-4009-b922-fae3a9ae7d46"