1 ///<reference path="../../../node_modules/cypress/types/index.d.ts"/> / <reference types="Cypress" />
2 import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder';
3 import {PnfModel} from '../../support/jsonBuilders/models/pnf.model';
4 import {ServiceModel} from '../../support/jsonBuilders/models/service.model';
5 import {AaiServiceInstancesModel} from '../../support/jsonBuilders/models/serviceInstances.model';
6 import {AAISubDetailsModel} from '../../support/jsonBuilders/models/aaiSubDetails.model';
7 import {AAISubViewEditModel} from '../../support/jsonBuilders/models/aaiSubViewEdit.model';
9 describe('View Edit Page', function () {
10 describe('basic UI tests', () => {
11 var jsonBuilderAAIService : JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
14 var jsonBuilderAAISubViewEditModel: JsonBuilder<AAISubViewEditModel> = new JsonBuilder<AAISubViewEditModel>();
15 var jsonBuilderAAISubDetailsModel: JsonBuilder<AAISubDetailsModel> = new JsonBuilder<AAISubDetailsModel>();
16 var jsonBuilderPNF: JsonBuilder<PnfModel> = new JsonBuilder<PnfModel>();
17 var jsonBuilderAaiServiceInstances: JsonBuilder<AaiServiceInstancesModel> = new JsonBuilder<AaiServiceInstancesModel>();
18 var jsonBuilderEmpty: JsonBuilder<Object> = new JsonBuilder<Object>();
20 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicService.json').then((res) => {
21 jsonBuilderAAIService.basicJson(
23 Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d674c44",
25 "service-complexService",
29 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json').then((res) => {
30 jsonBuilderAAIService.basicJson(
32 Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d671234",
34 "service-FabricConfig", changeFabric)
37 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json').then((res) => {
38 jsonBuilderAAIService.basicJson(
40 Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d675678",
42 "service-FabricConfig", changeFabric)
45 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json').then((res) => {
46 jsonBuilderAAIService.basicJson(
48 Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d679000",
50 "service-FabricConfig", changeFabric)
53 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json').then((res) => {
54 jsonBuilderAAIService.basicJson(
56 Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d671000",
58 "service-FabricConfig", changeFabric)
61 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json').then((res) => {
62 jsonBuilderAAISubViewEditModel.basicJson(
64 Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/3f93c7cb-2fd0-4557-9514-e189b7b04f9d",
70 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json').then((res) => {
71 jsonBuilderAAISubViewEditModel.basicJson(
73 Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f61234",
79 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json').then((res) => {
80 jsonBuilderAAISubViewEditModel.basicJson(
82 Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f65678",
88 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json').then((res) => {
89 jsonBuilderAAISubViewEditModel.basicJson(
91 Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f69000",
97 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json').then((res) => {
98 jsonBuilderAAISubViewEditModel.basicJson(
100 Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f61000",
106 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json').then((res) => {
107 jsonBuilderAAISubDetailsModel.basicJson(
109 Cypress.config('baseUrl') + "/aai_sub_details/**",
115 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstancePnfs.json').then((res) => {
116 jsonBuilderPNF.basicJson(
118 Cypress.config('baseUrl') + "/aai_get_service_instance_pnfs/**",
121 "aai-get-service-instance-pnfs")
124 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json').then((res) => {
125 jsonBuilderAaiServiceInstances.basicJson(
127 Cypress.config('baseUrl') + "/search_service_instances**",
130 "aai-get-service-instances")
133 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyObjectResponse.json').then((res) => {
134 jsonBuilderEmpty.basicJson(
136 Cypress.config('baseUrl') + "/aai_getPortMirroringConfigsData**",
139 "aai_getPortMirroringConfigsDate - empty response")
142 cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyObjectResponse.json').then((res) => {
143 jsonBuilderEmpty.basicJson(
145 Cypress.config('baseUrl') + "/aai_getPortMirroringSourcePorts**",
148 "aai_getPortMirroringSourcePorts - empty response")
158 it(`should display service model name and version on each info form`, function () {
159 let typesToIncludeModel:Array<string> = ['service', 'vnf', 'vfmodule', 'volume-group', 'network'];
160 cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
161 cy.wait('@service-complexService');
162 cy.wait('@aai_getPortMirroringConfigsDate - empty response');
163 cy.get('div').contains('VOLUME GROUP: f'); // waits for the view/edit to be ready after ports' redraw
164 typesToIncludeModel.forEach((type) => {
165 cy.get('.' + type + '-info').click({force: true});
166 cy.getElementByDataTestsId("Model Version").contains('1.0');
167 cy.getElementByDataTestsId("Model Name").contains('vidmacrofalsenaming');
168 cy.getElementByDataTestsId("detailsCloseBtn").click();
172 it(`Check fabric configuration service with some configuration with diff orchStatus`, function () {
173 cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61234&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
174 cy.wait('@service-FabricConfig');
175 cy.get('.error-msg').should("be.visible").should('contain','Activate fabric configuration button is not available as some of the configuration objects are not in Assigned status. Check MSO logs for the reasons for this abnormal case.');
176 cy.getElementByDataTestsId("activateFabricConfigurationButton").should('have.attr', 'disabled');
177 cy.getElementByDataTestsId("activateButton").should("not.be.visible");
180 it(`Check fabric configuration service with active status`, function () {
181 cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f65678&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
182 cy.wait('@service-FabricConfig');
183 cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
184 cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled');
185 cy.getElementByDataTestsId("deactivateButton").should("be.visible");
188 it(`Check fabric configuration service with created status`, function () {
189 cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f69000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d679000&isPermitted=true');
190 cy.wait('@service-FabricConfig');
191 cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
192 cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled');
193 cy.getElementByDataTestsId("deactivateButton").should("be.visible");
196 it(`Check fabric configuration service with pendingdeLete status`, function () {
197 cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671000&isPermitted=true');
198 cy.wait('@service-FabricConfig');
199 cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
200 cy.getElementByDataTestsId("activateButton").should('not.have.attr', 'disabled');
201 cy.getElementByDataTestsId("deactivateButton").should('have.attr', 'disabled');
205 function changeFabric(serviceModel: ServiceModel) {
206 serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d671234";
210 function changeServiceModel(serviceModel: ServiceModel) {
211 serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
212 serviceModel.vnfs = {
214 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
215 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
216 "description": "VSP_vGeraldine",
217 "name": "VF_vGeraldine",
219 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
223 "gpb2_Internal2_mac": "00:11:22:EF:AC:DF",
224 "sctp-b-ipv6-egress_src_start_port": "0",
225 "sctp-a-ipv6-egress_rule_application": "any",
226 "Internal2_allow_transit": "true",
227 "sctp-b-IPv6_ethertype": "IPv6",
228 "sctp-a-egress_rule_application": "any",
229 "sctp-b-ingress_action": "pass",
230 "sctp-b-ingress_rule_protocol": "icmp",
231 "ncb2_Internal1_mac": "00:11:22:EF:AC:DF",
232 "sctp-b-ipv6-ingress-src_start_port": "0.0",
233 "ncb1_Internal2_mac": "00:11:22:EF:AC:DF",
234 "fsb_volume_size_0": "320.0",
235 "sctp-b-egress_src_addresses": "local",
236 "sctp-a-ipv6-ingress_ethertype": "IPv4",
237 "sctp-a-ipv6-ingress-dst_start_port": "0",
238 "sctp-b-ipv6-ingress_rule_application": "any",
239 "domain_name": "default-domain",
240 "sctp-a-ingress_rule_protocol": "icmp",
241 "sctp-b-egress-src_start_port": "0.0",
242 "sctp-a-egress_src_addresses": "local",
243 "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group",
244 "sctp-a-egress-src_start_port": "0.0",
245 "sctp-a-ingress_ethertype": "IPv4",
246 "sctp-b-ipv6-ingress-dst_end_port": "65535",
247 "sctp-b-dst_subnet_prefix_v6": "::",
248 "nf_naming": "{ecomp_generated_naming=true}",
249 "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0",
250 "sctp-b-egress-dst_start_port": "0.0",
251 "ncb_flavor_name": "nv.c20r64d1",
252 "gpb1_Internal1_mac": "00:11:22:EF:AC:DF",
253 "sctp-b-egress_dst_subnet_prefix_len": "0.0",
254 "Internal2_net_cidr": "10.0.0.10",
255 "sctp-a-ingress-dst_start_port": "0.0",
256 "sctp-a-egress-dst_start_port": "0.0",
257 "fsb1_Internal2_mac": "00:11:22:EF:AC:DF",
258 "sctp-a-egress_ethertype": "IPv4",
259 "vlc_st_service_mode": "in-network-nat",
260 "sctp-a-ipv6-egress_ethertype": "IPv4",
261 "sctp-a-egress-src_end_port": "65535.0",
262 "sctp-b-ipv6-egress_rule_application": "any",
263 "sctp-b-egress_action": "pass",
264 "sctp-a-ingress-src_subnet_prefix_len": "0.0",
265 "sctp-b-ipv6-ingress-src_end_port": "65535.0",
266 "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group",
267 "fsb2_Internal1_mac": "00:11:22:EF:AC:DF",
268 "sctp-a-ipv6-ingress-src_start_port": "0.0",
269 "sctp-b-ipv6-egress_ethertype": "IPv4",
270 "Internal1_net_cidr": "10.0.0.10",
271 "sctp-a-egress_dst_subnet_prefix": "0.0.0.0",
272 "fsb_flavor_name": "nv.c20r64d1",
273 "sctp_rule_protocol": "132",
274 "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0",
275 "sctp-a-ipv6-ingress_rule_application": "any",
276 "ecomp_generated_naming": "true",
277 "sctp-a-IPv6_ethertype": "IPv6",
278 "vlc2_Internal1_mac": "00:11:22:EF:AC:DF",
279 "vlc_st_virtualization_type": "virtual-machine",
280 "sctp-b-ingress-dst_start_port": "0.0",
281 "sctp-b-ingress-dst_end_port": "65535.0",
282 "sctp-a-ipv6-ingress-src_end_port": "65535.0",
283 "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group",
284 "sctp-b-ingress_rule_application": "any",
285 "int2_sec_group_name": "int2-sec-group",
286 "vlc_flavor_name": "nd.c16r64d1",
287 "sctp-b-ipv6-egress_src_addresses": "local",
288 "vlc_st_interface_type_int1": "other1",
289 "sctp-b-egress-src_end_port": "65535.0",
290 "sctp-a-ipv6-egress-dst_start_port": "0",
291 "vlc_st_interface_type_int2": "other2",
292 "sctp-a-ipv6-egress_rule_protocol": "any",
293 "Internal2_shared": "false",
294 "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0",
295 "Internal2_rpf": "disable",
296 "vlc1_Internal1_mac": "00:11:22:EF:AC:DF",
297 "sctp-b-ipv6-egress_src_end_port": "65535",
298 "sctp-a-ipv6-egress_src_addresses": "local",
299 "sctp-a-ingress-dst_end_port": "65535.0",
300 "sctp-a-ipv6-egress_src_end_port": "65535",
301 "Internal1_forwarding_mode": "l2",
302 "Internal2_dhcp": "false",
303 "sctp-a-dst_subnet_prefix_v6": "::",
304 "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2",
305 "vlc_st_interface_type_gtp": "other0",
306 "ncb1_Internal1_mac": "00:11:22:EF:AC:DF",
307 "sctp-b-src_subnet_prefix_v6": "::",
308 "sctp-a-egress_dst_subnet_prefix_len": "0.0",
309 "int1_sec_group_name": "int1-sec-group",
310 "Internal1_dhcp": "false",
311 "sctp-a-ipv6-egress_dst_end_port": "65535",
312 "Internal2_forwarding_mode": "l2",
313 "fsb2_Internal2_mac": "00:11:22:EF:AC:DF",
314 "sctp-b-egress_dst_subnet_prefix": "0.0.0.0",
315 "Internal1_net_cidr_len": "17",
316 "gpb2_Internal1_mac": "00:11:22:EF:AC:DF",
317 "sctp-b-ingress-src_subnet_prefix_len": "0.0",
318 "sctp-a-ingress_dst_addresses": "local",
319 "sctp-a-egress_action": "pass",
320 "fsb_volume_type_0": "SF-Default-SSD",
321 "ncb2_Internal2_mac": "00:11:22:EF:AC:DF",
322 "vlc_st_interface_type_sctp_a": "left",
323 "vlc_st_interface_type_sctp_b": "right",
324 "sctp-a-src_subnet_prefix_v6": "::",
325 "vlc_st_version": "2",
326 "sctp-b-egress_ethertype": "IPv4",
327 "sctp-a-ingress_rule_application": "any",
328 "gpb1_Internal2_mac": "00:11:22:EF:AC:DF",
329 "instance_ip_family_v6": "v6",
330 "sctp-a-ipv6-egress_src_start_port": "0",
331 "sctp-b-ingress-src_start_port": "0.0",
332 "sctp-b-ingress_dst_addresses": "local",
333 "fsb1_Internal1_mac": "00:11:22:EF:AC:DF",
334 "vlc_st_interface_type_oam": "management",
335 "multi_stage_design": "false",
336 "oam_sec_group_name": "oam-sec-group",
337 "Internal2_net_gateway": "10.0.0.10",
338 "sctp-a-ipv6-ingress-dst_end_port": "65535",
339 "sctp-b-ipv6-egress-dst_start_port": "0",
340 "Internal1_net_gateway": "10.0.0.10",
341 "sctp-b-ipv6-egress_rule_protocol": "any",
342 "gtp_sec_group_name": "gtp-sec-group",
343 "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0",
344 "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0",
345 "sctp-a-ipv6-ingress_dst_addresses": "local",
346 "sctp-a-egress_rule_protocol": "icmp",
347 "sctp-b-ipv6-egress_action": "pass",
348 "sctp-a-ipv6-egress_action": "pass",
349 "Internal1_shared": "false",
350 "sctp-b-ipv6-ingress_rule_protocol": "any",
351 "Internal2_net_cidr_len": "17",
352 "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group",
353 "sctp-a-ingress-src_end_port": "65535.0",
354 "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0",
355 "sctp-a-egress-dst_end_port": "65535.0",
356 "sctp-a-ingress_action": "pass",
357 "sctp-b-egress_rule_protocol": "icmp",
358 "sctp-b-ipv6-ingress_action": "pass",
359 "vlc_st_service_type": "firewall",
360 "sctp-b-ipv6-egress_dst_end_port": "65535",
361 "sctp-b-ipv6-ingress-dst_start_port": "0",
362 "vlc2_Internal2_mac": "00:11:22:EF:AC:DF",
363 "vlc_st_availability_zone": "true",
364 "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2",
365 "sctp-b-ingress-src_subnet_prefix": "0.0.0.0",
366 "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0",
367 "Internal1_allow_transit": "true",
368 "gpb_flavor_name": "nv.c20r64d1",
369 "availability_zone_max_count": "1",
370 "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2",
371 "sctp-b-ipv6-ingress_dst_addresses": "local",
372 "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0",
373 "sctp-b-ipv6-ingress_ethertype": "IPv4",
374 "vlc1_Internal2_mac": "00:11:22:EF:AC:DF",
375 "sctp-a-ingress-src_subnet_prefix": "0.0.0.0",
376 "sctp-a-ipv6-ingress_action": "pass",
377 "Internal1_rpf": "disable",
378 "sctp-b-ingress_ethertype": "IPv4",
379 "sctp-b-egress_rule_application": "any",
380 "sctp-b-ingress-src_end_port": "65535.0",
381 "sctp-a-ipv6-ingress_rule_protocol": "any",
382 "sctp-a-ingress-src_start_port": "0.0",
383 "sctp-b-egress-dst_end_port": "65535.0"
386 "modelCustomizationName": "VF_vGeraldine 0",
388 "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
389 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
390 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
391 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
393 "name": "VfVgeraldine..vflorence_vlc..module-1",
395 "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
397 "minCountInstances": 0,
398 "maxCountInstances": null,
400 "vfModuleLabel": "vflorence_vlc"
403 "volumeGroupAllowed": false
405 "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
406 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
407 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
408 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
410 "name": "VfVgeraldine..vflorence_gpb..module-2",
412 "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
414 "minCountInstances": 0,
415 "maxCountInstances": null,
417 "vfModuleLabel": "vflorence_gpb"
420 "volumeGroupAllowed": false
422 "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
423 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
424 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
425 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
427 "name": "VfVgeraldine..base_vflorence..module-0",
429 "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
431 "minCountInstances": 1,
432 "maxCountInstances": 1,
434 "vfModuleLabel": "base_vflorence"
437 "volumeGroupAllowed": true
441 "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
442 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
443 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
444 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
446 "name": "VfVgeraldine..base_vflorence..module-0",
448 "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
450 "minCountInstances": 1,
451 "maxCountInstances": 1,
453 "vfModuleLabel": "base_vflorence"
458 "vfcInstanceGroups": {}
461 serviceModel.vfModules = {
462 "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
463 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
464 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
465 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
467 "name": "VfVgeraldine..vflorence_vlc..module-1",
469 "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
471 "minCountInstances": 0,
472 "maxCountInstances": null,
474 "vfModuleLabel": "vflorence_vlc"
477 "volumeGroupAllowed": false
479 "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
480 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
481 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
482 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
484 "name": "VfVgeraldine..vflorence_gpb..module-2",
486 "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
488 "minCountInstances": 0,
489 "maxCountInstances": null,
491 "vfModuleLabel": "vflorence_gpb"
494 "volumeGroupAllowed": false
496 "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
497 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
498 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
499 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
501 "name": "VfVgeraldine..base_vflorence..module-0",
503 "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
505 "minCountInstances": 1,
506 "maxCountInstances": 1,
508 "vfModuleLabel": "base_vflorence"
511 "volumeGroupAllowed": true
514 serviceModel.volumeGroups = {
515 "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
516 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
517 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
518 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
520 "name": "VfVgeraldine..base_vflorence..module-0",
522 "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
524 "minCountInstances": 1,
525 "maxCountInstances": 1,
527 "vfModuleLabel": "base_vflorence"