Merge changes from topics "VID-14", "VID-13", "VID-12"
[vid.git] / vid-webpack-master / cypress / integration / iFrames / viewEdit.e2e.ts
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';
8 import {initServicePlanning} from "./viewOnlyDrawingBoard.e2e";
9
10
11 describe('View Edit Page', function () {
12   describe('basic UI tests', () => {
13     let jsonBuilderAAIService : JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
14     let commonUuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
15     let serviceInvariantId = "d27e42cf-087e-4d31-88ac-6c4b7585f800";
16
17     let jsonBuilderAAISubViewEditModel: JsonBuilder<AAISubViewEditModel> = new JsonBuilder<AAISubViewEditModel>();
18     let jsonBuilderAAISubDetailsModel: JsonBuilder<AAISubDetailsModel> = new JsonBuilder<AAISubDetailsModel>();
19     let jsonBuilderPNF: JsonBuilder<PnfModel> = new JsonBuilder<PnfModel>();
20     let jsonBuilderAaiServiceInstances: JsonBuilder<AaiServiceInstancesModel> = new JsonBuilder<AaiServiceInstancesModel>();
21     let jsonBuilderEmpty: JsonBuilder<Object> = new JsonBuilder<Object>();
22     beforeEach(() => {
23       cy.window().then((win) => {
24         win.sessionStorage.clear();
25       });
26       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicService.json').then((res) => {
27         jsonBuilderAAIService.basicJson(
28           res,
29           Cypress.config('baseUrl') + "/rest/models/services/" + commonUuid,
30           200, 0,
31           "service-complexService",
32           changeServiceModel)
33       });
34
35       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json').then((res) => {
36         jsonBuilderAAIService.basicJson(
37           res,
38           Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d671234",
39           200, 0,
40           "service-FabricConfig", changeFabric)
41       });
42
43       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json').then((res) => {
44         jsonBuilderAAIService.basicJson(
45           res,
46           Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d675678",
47           200, 0,
48           "service-FabricConfig", changeFabric)
49       });
50
51       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json').then((res) => {
52         jsonBuilderAAIService.basicJson(
53           res,
54           Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d679000",
55           200, 0,
56           "service-FabricConfig", changeFabric)
57       });
58
59       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json').then((res) => {
60         jsonBuilderAAIService.basicJson(
61           res,
62           Cypress.config('baseUrl') + "/rest/models/services/6e59c5de-f052-46fa-aa7e-2fca9d671000",
63           200, 0,
64           "service-FabricConfig", changeFabric)
65       });
66
67       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json').then((res) => {
68         jsonBuilderAAISubViewEditModel.basicJson(
69           res,
70           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/3f93c7cb-2fd0-4557-9514-e189b7b04f9d",
71           200,
72           0,
73           "aai-sub-view-edit")
74       });
75
76       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json').then((res) => {
77         jsonBuilderAAISubViewEditModel.basicJson(
78           res,
79           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f61234",
80           200,
81           0,
82           "aai-sub-view-edit")
83       });
84
85       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json').then((res) => {
86         jsonBuilderAAISubViewEditModel.basicJson(
87           res,
88           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f65678",
89           200,
90           0,
91           "aai-sub-view-edit")
92       });
93
94       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json').then((res) => {
95         jsonBuilderAAISubViewEditModel.basicJson(
96           res,
97           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f69000",
98           200,
99           0,
100           "aai-sub-view-edit")
101       });
102
103       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json').then((res) => {
104         jsonBuilderAAISubViewEditModel.basicJson(
105           res,
106           Cypress.config('baseUrl') + "/aai_sub_viewedit/**/**/**/c187e9fe-40c3-4862-b73e-84ff056205f61000",
107           200,
108           0,
109           "aai-sub-view-edit")
110       });
111
112       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json').then((res) => {
113         jsonBuilderAAISubDetailsModel.basicJson(
114           res,
115           Cypress.config('baseUrl') + "/aai_sub_details/**",
116           200,
117           0,
118           "aai-sub-details")
119       });
120
121       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstancePnfs.json').then((res) => {
122         jsonBuilderPNF.basicJson(
123           res,
124           Cypress.config('baseUrl') + "/aai_get_service_instance_pnfs/**",
125           200,
126           0,
127           "aai-get-service-instance-pnfs")
128       });
129
130       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiServiceInstances.json').then((res) => {
131         jsonBuilderAaiServiceInstances.basicJson(
132           res,
133           Cypress.config('baseUrl') + "/search_service_instances**",
134           200,
135           0,
136           "aai-get-service-instances")
137       });
138
139       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyObjectResponse.json').then((res) => {
140         jsonBuilderEmpty.basicJson(
141           res,
142           Cypress.config('baseUrl') + "/aai_getPortMirroringConfigsData**",
143           200,
144           0,
145           "aai_getPortMirroringConfigsDate - empty response")
146       });
147
148       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyObjectResponse.json').then((res) => {
149         jsonBuilderEmpty.basicJson(
150           res,
151           Cypress.config('baseUrl') + "/aai_getPortMirroringSourcePorts**",
152           200,
153           0,
154           "aai_getPortMirroringSourcePorts - empty response")
155       });
156       mockAsyncBulkResponse();
157       cy.initVidMock({serviceUuid: commonUuid, invariantId: serviceInvariantId});
158       cy.setReduxState();
159       cy.permissionVidMock();
160       cy.login();
161     });
162
163     afterEach(() => {
164       cy.screenshot();
165     });
166
167     it(`should display the more actions button if user is permitted`, function () {
168       cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
169       cy.wait('@service-complexService');
170       cy.wait('@aai_getPortMirroringConfigsDate - empty response');
171       cy.getElementByDataTestsId("show-new-screen").should('be.visible').should('have.text', 'More actions').click();
172       });
173
174     it(`should display service model name and version on each info form`, function () {
175       let typesToIncludeModel:Array<string> = ['service', 'vnf', 'vfmodule', 'volume-group', 'network'];
176       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');
177       cy.wait('@service-complexService');
178       cy.wait('@aai_getPortMirroringConfigsDate - empty response');
179       cy.get('div').contains('VOLUME GROUP: f'); // waits for the view/edit to be ready after ports' redraw
180       typesToIncludeModel.forEach((type) => {
181         cy.get('.' + type + '-info').click({force: true});
182         cy.getElementByDataTestsId("Model Version").contains('1.0');
183         cy.getElementByDataTestsId("Model Name").contains('vidmacrofalsenaming');
184         cy.getElementByDataTestsId("detailsCloseBtn").click();
185       });
186     });
187
188     it(`Check fabric configuration service with some configuration with diff orchStatus`, function () {
189       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');
190       cy.wait('@service-FabricConfig');
191       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.');
192       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('have.attr', 'disabled');
193       cy.getElementByDataTestsId("activateButton").should("not.be.visible");
194     });
195
196     it(`Check fabric configuration service with active 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-84ff056205f65678&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
198       cy.wait('@service-FabricConfig');
199       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
200       cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled');
201       cy.getElementByDataTestsId("deactivateButton").should("be.visible");
202     });
203
204     it(`Check fabric configuration service with created status`, function () {
205       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');
206       cy.wait('@service-FabricConfig');
207       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
208       cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled');
209       cy.getElementByDataTestsId("deactivateButton").should("be.visible");
210     });
211
212     it(`Check fabric configuration service with pendingdeLete status`, function () {
213       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');
214       cy.wait('@service-FabricConfig');
215       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
216       cy.getElementByDataTestsId("activateButton").should('not.have.attr', 'disabled');
217       cy.getElementByDataTestsId("deactivateButton").should('have.attr', 'disabled');
218     });
219
220     it(`Upgrade a VFModule`, function(){
221       cy.initDrawingBoardUserPermission();
222       initServicePlanning("EDIT",
223         '../vid-automation/src/test/resources/viewEdit/ServiceTreeWithMultipleChildren_serviceInstance_withUpdatedLatestVersion.json');
224       upgradeTheVFM();
225       undoUpgradeForVFM();
226       upgradeTheVFM();
227       cy.getDrawingBoardDeployBtn().click();
228       cy.wait('@expectedPostAsyncInstantiation').then(xhr => {
229         expect(Object(xhr.request.body).action).to.equal("None_Upgrade");
230         expect(Object(xhr.request.body).vnfs['VNF2_INSTANCE_ID'].action).to.equal("None_Upgrade");
231         expect(Object(xhr.request.body).vnfs['VNF2_INSTANCE_ID'].vfModules['dc229cd8-c132-4455-8517-5c1787c18b14']['3ef042c4-259f-45e0-9aba-0989bd8d1cc5'].action).to.equal("None_Upgrade");
232       });
233     });
234
235     it(`Upgrade a VFModule, Negative - latest version doesn't exist, upgrade button shouldn't exist`, function(){
236       setLatestVersionMockToEmptyResponse(serviceInvariantId);
237       cy.initDrawingBoardUserPermission();
238       initServicePlanning("EDIT",
239         '../vid-automation/src/test/resources/viewEdit/ServiceTreeWithMultipleChildren_serviceInstance_withUpdatedLatestVersion.json');
240       verifyMenuActionUpgradeDoesNotExist();
241     });
242
243   });
244
245   function mockAsyncBulkResponse() {
246     cy.server().route({
247       url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk',
248       method: 'POST',
249       status: 200,
250       response: "[]",
251     }).as("expectedPostAsyncInstantiation");
252   }
253
254   function verifyMenuActionUpgradeDoesNotExist() {
255     cy.getElementByDataTestsId('node-undefined-dc229cd8-c132-4455-8517-5c1787c18b14-menu-btn').click()
256       .getElementByDataTestsId('context-menu-upgrade').should('not.exist');
257   }
258
259   function setLatestVersionMockToEmptyResponse(serviceUuid :string){
260     cy.server().route({
261       url: Cypress.config('baseUrl') + '/aai_get_newest_model_version_by_invariant/' + serviceUuid,
262       method: 'GET',
263       status: 200,
264       response: {},
265     }).as("expectLatestServiceModelUpgradeVersion")
266   }
267
268   function upgradeTheVFM() :Chainable<any>{
269     return cy.getElementByDataTestsId('node-undefined-dc229cd8-c132-4455-8517-5c1787c18b14-menu-btn').click()
270       .drawingBoardTreeClickOnContextMenuOptionByName("Upgrade");
271   }
272
273   function undoUpgradeForVFM() {
274     cy.getElementByDataTestsId('node-undefined-dc229cd8-c132-4455-8517-5c1787c18b14-menu-btn').click()
275       .drawingBoardTreeClickOnContextMenuOptionByName("Undo Upgrade");
276   }
277
278   function changeFabric(serviceModel: ServiceModel) {
279     serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d671234";
280     return serviceModel;
281   }
282
283   function changeServiceModel(serviceModel: ServiceModel) {
284     serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
285     serviceModel.vnfs = {
286       "VF_vGeraldine 0": {
287         "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
288         "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
289         "description": "VSP_vGeraldine",
290         "name": "VF_vGeraldine",
291         "version": "2.0",
292         "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
293         "inputs": {},
294         "commands": {},
295         "properties": {
296           "gpb2_Internal2_mac": "00:11:22:EF:AC:DF",
297           "sctp-b-ipv6-egress_src_start_port": "0",
298           "sctp-a-ipv6-egress_rule_application": "any",
299           "Internal2_allow_transit": "true",
300           "sctp-b-IPv6_ethertype": "IPv6",
301           "sctp-a-egress_rule_application": "any",
302           "sctp-b-ingress_action": "pass",
303           "sctp-b-ingress_rule_protocol": "icmp",
304           "ncb2_Internal1_mac": "00:11:22:EF:AC:DF",
305           "sctp-b-ipv6-ingress-src_start_port": "0.0",
306           "ncb1_Internal2_mac": "00:11:22:EF:AC:DF",
307           "fsb_volume_size_0": "320.0",
308           "sctp-b-egress_src_addresses": "local",
309           "sctp-a-ipv6-ingress_ethertype": "IPv4",
310           "sctp-a-ipv6-ingress-dst_start_port": "0",
311           "sctp-b-ipv6-ingress_rule_application": "any",
312           "domain_name": "default-domain",
313           "sctp-a-ingress_rule_protocol": "icmp",
314           "sctp-b-egress-src_start_port": "0.0",
315           "sctp-a-egress_src_addresses": "local",
316           "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group",
317           "sctp-a-egress-src_start_port": "0.0",
318           "sctp-a-ingress_ethertype": "IPv4",
319           "sctp-b-ipv6-ingress-dst_end_port": "65535",
320           "sctp-b-dst_subnet_prefix_v6": "::",
321           "nf_naming": "{ecomp_generated_naming=true}",
322           "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0",
323           "sctp-b-egress-dst_start_port": "0.0",
324           "ncb_flavor_name": "nv.c20r64d1",
325           "gpb1_Internal1_mac": "00:11:22:EF:AC:DF",
326           "sctp-b-egress_dst_subnet_prefix_len": "0.0",
327           "Internal2_net_cidr": "10.0.0.10",
328           "sctp-a-ingress-dst_start_port": "0.0",
329           "sctp-a-egress-dst_start_port": "0.0",
330           "fsb1_Internal2_mac": "00:11:22:EF:AC:DF",
331           "sctp-a-egress_ethertype": "IPv4",
332           "vlc_st_service_mode": "in-network-nat",
333           "sctp-a-ipv6-egress_ethertype": "IPv4",
334           "sctp-a-egress-src_end_port": "65535.0",
335           "sctp-b-ipv6-egress_rule_application": "any",
336           "sctp-b-egress_action": "pass",
337           "sctp-a-ingress-src_subnet_prefix_len": "0.0",
338           "sctp-b-ipv6-ingress-src_end_port": "65535.0",
339           "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group",
340           "fsb2_Internal1_mac": "00:11:22:EF:AC:DF",
341           "sctp-a-ipv6-ingress-src_start_port": "0.0",
342           "sctp-b-ipv6-egress_ethertype": "IPv4",
343           "Internal1_net_cidr": "10.0.0.10",
344           "sctp-a-egress_dst_subnet_prefix": "0.0.0.0",
345           "fsb_flavor_name": "nv.c20r64d1",
346           "sctp_rule_protocol": "132",
347           "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0",
348           "sctp-a-ipv6-ingress_rule_application": "any",
349           "ecomp_generated_naming": "true",
350           "sctp-a-IPv6_ethertype": "IPv6",
351           "vlc2_Internal1_mac": "00:11:22:EF:AC:DF",
352           "vlc_st_virtualization_type": "virtual-machine",
353           "sctp-b-ingress-dst_start_port": "0.0",
354           "sctp-b-ingress-dst_end_port": "65535.0",
355           "sctp-a-ipv6-ingress-src_end_port": "65535.0",
356           "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group",
357           "sctp-b-ingress_rule_application": "any",
358           "int2_sec_group_name": "int2-sec-group",
359           "vlc_flavor_name": "nd.c16r64d1",
360           "sctp-b-ipv6-egress_src_addresses": "local",
361           "vlc_st_interface_type_int1": "other1",
362           "sctp-b-egress-src_end_port": "65535.0",
363           "sctp-a-ipv6-egress-dst_start_port": "0",
364           "vlc_st_interface_type_int2": "other2",
365           "sctp-a-ipv6-egress_rule_protocol": "any",
366           "Internal2_shared": "false",
367           "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0",
368           "Internal2_rpf": "disable",
369           "vlc1_Internal1_mac": "00:11:22:EF:AC:DF",
370           "sctp-b-ipv6-egress_src_end_port": "65535",
371           "sctp-a-ipv6-egress_src_addresses": "local",
372           "sctp-a-ingress-dst_end_port": "65535.0",
373           "sctp-a-ipv6-egress_src_end_port": "65535",
374           "Internal1_forwarding_mode": "l2",
375           "Internal2_dhcp": "false",
376           "sctp-a-dst_subnet_prefix_v6": "::",
377           "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2",
378           "vlc_st_interface_type_gtp": "other0",
379           "ncb1_Internal1_mac": "00:11:22:EF:AC:DF",
380           "sctp-b-src_subnet_prefix_v6": "::",
381           "sctp-a-egress_dst_subnet_prefix_len": "0.0",
382           "int1_sec_group_name": "int1-sec-group",
383           "Internal1_dhcp": "false",
384           "sctp-a-ipv6-egress_dst_end_port": "65535",
385           "Internal2_forwarding_mode": "l2",
386           "fsb2_Internal2_mac": "00:11:22:EF:AC:DF",
387           "sctp-b-egress_dst_subnet_prefix": "0.0.0.0",
388           "Internal1_net_cidr_len": "17",
389           "gpb2_Internal1_mac": "00:11:22:EF:AC:DF",
390           "sctp-b-ingress-src_subnet_prefix_len": "0.0",
391           "sctp-a-ingress_dst_addresses": "local",
392           "sctp-a-egress_action": "pass",
393           "fsb_volume_type_0": "SF-Default-SSD",
394           "ncb2_Internal2_mac": "00:11:22:EF:AC:DF",
395           "vlc_st_interface_type_sctp_a": "left",
396           "vlc_st_interface_type_sctp_b": "right",
397           "sctp-a-src_subnet_prefix_v6": "::",
398           "vlc_st_version": "2",
399           "sctp-b-egress_ethertype": "IPv4",
400           "sctp-a-ingress_rule_application": "any",
401           "gpb1_Internal2_mac": "00:11:22:EF:AC:DF",
402           "instance_ip_family_v6": "v6",
403           "sctp-a-ipv6-egress_src_start_port": "0",
404           "sctp-b-ingress-src_start_port": "0.0",
405           "sctp-b-ingress_dst_addresses": "local",
406           "fsb1_Internal1_mac": "00:11:22:EF:AC:DF",
407           "vlc_st_interface_type_oam": "management",
408           "multi_stage_design": "false",
409           "oam_sec_group_name": "oam-sec-group",
410           "Internal2_net_gateway": "10.0.0.10",
411           "sctp-a-ipv6-ingress-dst_end_port": "65535",
412           "sctp-b-ipv6-egress-dst_start_port": "0",
413           "Internal1_net_gateway": "10.0.0.10",
414           "sctp-b-ipv6-egress_rule_protocol": "any",
415           "gtp_sec_group_name": "gtp-sec-group",
416           "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0",
417           "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0",
418           "sctp-a-ipv6-ingress_dst_addresses": "local",
419           "sctp-a-egress_rule_protocol": "icmp",
420           "sctp-b-ipv6-egress_action": "pass",
421           "sctp-a-ipv6-egress_action": "pass",
422           "Internal1_shared": "false",
423           "sctp-b-ipv6-ingress_rule_protocol": "any",
424           "Internal2_net_cidr_len": "17",
425           "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group",
426           "sctp-a-ingress-src_end_port": "65535.0",
427           "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0",
428           "sctp-a-egress-dst_end_port": "65535.0",
429           "sctp-a-ingress_action": "pass",
430           "sctp-b-egress_rule_protocol": "icmp",
431           "sctp-b-ipv6-ingress_action": "pass",
432           "vlc_st_service_type": "firewall",
433           "sctp-b-ipv6-egress_dst_end_port": "65535",
434           "sctp-b-ipv6-ingress-dst_start_port": "0",
435           "vlc2_Internal2_mac": "00:11:22:EF:AC:DF",
436           "vlc_st_availability_zone": "true",
437           "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2",
438           "sctp-b-ingress-src_subnet_prefix": "0.0.0.0",
439           "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0",
440           "Internal1_allow_transit": "true",
441           "gpb_flavor_name": "nv.c20r64d1",
442           "availability_zone_max_count": "1",
443           "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2",
444           "sctp-b-ipv6-ingress_dst_addresses": "local",
445           "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0",
446           "sctp-b-ipv6-ingress_ethertype": "IPv4",
447           "vlc1_Internal2_mac": "00:11:22:EF:AC:DF",
448           "sctp-a-ingress-src_subnet_prefix": "0.0.0.0",
449           "sctp-a-ipv6-ingress_action": "pass",
450           "Internal1_rpf": "disable",
451           "sctp-b-ingress_ethertype": "IPv4",
452           "sctp-b-egress_rule_application": "any",
453           "sctp-b-ingress-src_end_port": "65535.0",
454           "sctp-a-ipv6-ingress_rule_protocol": "any",
455           "sctp-a-ingress-src_start_port": "0.0",
456           "sctp-b-egress-dst_end_port": "65535.0"
457         },
458         "type": "VF",
459         "modelCustomizationName": "VF_vGeraldine 0",
460         "vfModules": {
461           "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
462             "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
463             "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
464             "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
465             "description": null,
466             "name": "VfVgeraldine..vflorence_vlc..module-1",
467             "version": "2",
468             "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
469             "properties": {
470               "minCountInstances": 0,
471               "maxCountInstances": null,
472               "initialCount": 0,
473               "vfModuleLabel": "vflorence_vlc"
474             },
475             "inputs": {},
476             "volumeGroupAllowed": false
477           },
478           "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
479             "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
480             "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
481             "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
482             "description": null,
483             "name": "VfVgeraldine..vflorence_gpb..module-2",
484             "version": "2",
485             "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
486             "properties": {
487               "minCountInstances": 0,
488               "maxCountInstances": null,
489               "initialCount": 0,
490               "vfModuleLabel": "vflorence_gpb"
491             },
492             "inputs": {},
493             "volumeGroupAllowed": false
494           },
495           "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
496             "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
497             "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
498             "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
499             "description": null,
500             "name": "VfVgeraldine..base_vflorence..module-0",
501             "version": "2",
502             "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
503             "properties": {
504               "minCountInstances": 1,
505               "maxCountInstances": 1,
506               "initialCount": 1,
507               "vfModuleLabel": "base_vflorence"
508             },
509             "inputs": {},
510             "volumeGroupAllowed": true
511           }
512         },
513         "volumeGroups": {
514           "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
515             "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
516             "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
517             "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
518             "description": null,
519             "name": "VfVgeraldine..base_vflorence..module-0",
520             "version": "2",
521             "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
522             "properties": {
523               "minCountInstances": 1,
524               "maxCountInstances": 1,
525               "initialCount": 1,
526               "vfModuleLabel": "base_vflorence"
527             },
528             "inputs": {}
529           }
530         },
531         "vfcInstanceGroups": {}
532       }
533     };
534     serviceModel.vfModules = {
535       "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
536         "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
537         "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
538         "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
539         "description": null,
540         "name": "VfVgeraldine..vflorence_vlc..module-1",
541         "version": "2",
542         "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
543         "properties": {
544           "minCountInstances": 0,
545           "maxCountInstances": null,
546           "initialCount": 0,
547           "vfModuleLabel": "vflorence_vlc"
548         },
549         "inputs": {},
550         "volumeGroupAllowed": false
551       },
552       "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
553         "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
554         "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
555         "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
556         "description": null,
557         "name": "VfVgeraldine..vflorence_gpb..module-2",
558         "version": "2",
559         "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
560         "properties": {
561           "minCountInstances": 0,
562           "maxCountInstances": null,
563           "initialCount": 0,
564           "vfModuleLabel": "vflorence_gpb"
565         },
566         "inputs": {},
567         "volumeGroupAllowed": false
568       },
569       "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
570         "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
571         "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
572         "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
573         "description": null,
574         "name": "VfVgeraldine..base_vflorence..module-0",
575         "version": "2",
576         "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
577         "properties": {
578           "minCountInstances": 1,
579           "maxCountInstances": 1,
580           "initialCount": 1,
581           "vfModuleLabel": "base_vflorence"
582         },
583         "inputs": {},
584         "volumeGroupAllowed": true
585       }
586     };
587     serviceModel.volumeGroups = {
588       "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
589         "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
590         "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
591         "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
592         "description": null,
593         "name": "VfVgeraldine..base_vflorence..module-0",
594         "version": "2",
595         "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
596         "properties": {
597           "minCountInstances": 1,
598           "maxCountInstances": 1,
599           "initialCount": 1,
600           "vfModuleLabel": "base_vflorence"
601         },
602         "inputs": {}
603       }
604     };
605     return serviceModel;
606   }
607 });