a8c818e69c6e7aba26e12d5029464ccc2d36584b
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.bpmn.infrastructure.scripts
22
23 import com.github.tomakehurst.wiremock.junit.WireMockRule
24 import org.camunda.bpm.engine.ProcessEngineServices
25 import org.camunda.bpm.engine.RepositoryService
26 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
27 import org.camunda.bpm.engine.repository.ProcessDefinition
28 import org.junit.Assert
29 import org.junit.Before
30 import org.junit.Rule
31 import org.junit.Test
32 import org.junit.runner.RunWith
33 import org.mockito.ArgumentCaptor
34 import org.mockito.Captor
35 import org.mockito.Mockito
36 import org.mockito.MockitoAnnotations
37 import org.mockito.runners.MockitoJUnitRunner
38 import org.onap.so.bpmn.core.WorkflowException
39 import org.onap.so.bpmn.core.domain.AllottedResource
40 import org.onap.so.bpmn.core.domain.HomingSolution
41 import org.onap.so.bpmn.core.domain.InventoryType
42 import org.onap.so.bpmn.core.domain.License
43 import org.onap.so.bpmn.core.domain.ModelInfo
44 import org.onap.so.bpmn.core.domain.ModuleResource
45 import org.onap.so.bpmn.core.domain.NetworkResource
46 import org.onap.so.bpmn.core.domain.ResourceInstance
47 import org.onap.so.bpmn.core.domain.ResourceType
48 import org.onap.so.bpmn.core.domain.ServiceDecomposition
49 import org.onap.so.bpmn.core.domain.ServiceInstance
50 import org.onap.so.bpmn.core.domain.VnfResource
51
52 import static org.mockito.Mockito.*
53
54 @RunWith(MockitoJUnitRunner.class)
55 class DoCreateVnfAndModulesTest {
56
57         @Captor
58         static ArgumentCaptor<ExecutionEntity> captor = ArgumentCaptor.forClass(ExecutionEntity.class)
59
60         @Before
61         void init() throws IOException {
62                 MockitoAnnotations.initMocks(this);
63         }
64
65         @Test
66         void testPreProcessRequest() {
67                 ExecutionEntity mockExecution = setupMock()
68                 setupBasicProcessInputs(mockExecution)
69
70                 ServiceDecomposition serviceDecomposition = createServiceDecomposition()
71                 when(mockExecution.getVariable("serviceDecomposition")).thenReturn(serviceDecomposition)
72
73                 Map<String,String> vfModuleNames = new HashMap<String,String>()
74                 vfModuleNames.put("3ec98c7a-ac20-49a1-9e0d-09fea7e8db45", "VGWA:e2:25:25:25:%")
75                 vfModuleNames.put("cc250e7e-746b-4d84-8064-df20c74213a6", "VGWB:f9:32:32:32:%")
76                 when(mockExecution.getVariable("vfModuleNames")).thenReturn(vfModuleNames)
77
78                 DoCreateVnfAndModules obj = new DoCreateVnfAndModules()
79                 obj.preProcessRequest(mockExecution)
80
81                 Mockito.verify(mockExecution, times(11)).setVariable(captor.capture(), captor.capture())
82
83                 List list = captor.getAllValues()
84                 for (int i = 0; i < list.size(); i+=2) {
85                         System.out.println("captor[" + i/2 + "]: " + list.get(i)
86                                 + (i+1 < list.size() ? ("=" + list.get(i+1)) : ""))
87                 }
88
89                 String someKey = list.get(18)
90                 Assert.assertEquals("numOfCreatedAddOnModules", someKey)
91                 Integer someValue = list.get(19)
92                 Assert.assertEquals(0, someValue)
93
94                 String lastKey = list.get(20)
95                 Assert.assertEquals("rollbackData", lastKey)
96         }
97  
98         @Test
99         void testQueryCatalogDB() {
100                 ExecutionEntity mockExecution = setupMock()
101                 setupBasicProcessInputs(mockExecution)
102
103                 ServiceDecomposition serviceDecomposition = createServiceDecomposition()
104                 when(mockExecution.getVariable("serviceDecomposition")).thenReturn(serviceDecomposition)
105
106                 DoCreateVnfAndModules obj = new DoCreateVnfAndModules()
107                 obj.queryCatalogDB(mockExecution)
108
109                 Mockito.verify(mockExecution, times(11)).setVariable(captor.capture(), captor.capture())
110
111                 List list = captor.getAllValues()
112                 for (int i = 0; i < list.size(); i+=2) {
113                         System.out.println("captor[" + i/2 + "]: " + list.get(i)
114                                 + (i+1 < list.size() ? ("=" + list.get(i+1)) : ""))
115                 }
116
117                 String vfModuleNameKey = list.get(12)
118                 Assert.assertEquals("baseVfModuleName", vfModuleNameKey)
119                 String vfModuleNameValue = list.get(13)
120                 Assert.assertEquals(null, vfModuleNameValue)
121
122                 String lastKey = list.get(20)
123                 Assert.assertEquals("baseVfModuleId", lastKey)
124         }
125  
126         @Test
127         void testQueryCatalogDBWithVfModuleNames() {
128                 ExecutionEntity mockExecution = setupMock()
129                 setupBasicProcessInputs(mockExecution)
130
131                 ServiceDecomposition serviceDecomposition = createServiceDecomposition()
132                 when(mockExecution.getVariable("serviceDecomposition")).thenReturn(serviceDecomposition)
133
134                 Map<String,String> vfModuleNames = new HashMap<String,String>()
135                 vfModuleNames.put("3ec98c7a-ac20-49a1-9e0d-09fea7e8db45", "VGWA:e2:25:25:25:%")
136                 vfModuleNames.put("cc250e7e-746b-4d84-8064-df20c74213a6", "VGWB:f9:32:32:32:%")
137                 when(mockExecution.getVariable("vfModuleNames")).thenReturn(vfModuleNames)
138
139                 DoCreateVnfAndModules obj = new DoCreateVnfAndModules()
140                 obj.queryCatalogDB(mockExecution)
141
142                 Mockito.verify(mockExecution, times(11)).setVariable(captor.capture(), captor.capture())
143
144                 List list = captor.getAllValues()
145                 for (int i = 0; i < list.size(); i+=2) {
146                         System.out.println("captor[" + i/2 + "]: " + list.get(i)
147                                 + (i+1 < list.size() ? ("=" + list.get(i+1)) : ""))
148                 }
149
150                 String vfModuleNameKey = list.get(12)
151                 Assert.assertEquals("baseVfModuleName", vfModuleNameKey)
152                 String vfModuleNameValue = list.get(13)
153                 Assert.assertEquals("VGWA:e2:25:25:25:%", vfModuleNameValue)
154
155                 String lastKey = list.get(20)
156                 Assert.assertEquals("baseVfModuleId", lastKey)
157         }
158  
159         @Test
160         void testPreProcessAddonModule() {
161                 ExecutionEntity mockExecution = setupMock()
162                 setupBasicProcessInputs(mockExecution)
163
164                 ServiceDecomposition serviceDecomposition = createServiceDecomposition()
165                 when(mockExecution.getVariable("serviceDecomposition")).thenReturn(serviceDecomposition)
166
167                 VnfResource vnf = serviceDecomposition.getVnfResources().get(0);
168                 List<ModuleResource> vfModules = vnf.getAllVfModuleObjects()
169
170                 for (int i = vfModules.size()-1; i >= 0; i--) {
171                         if (vfModules.get(i).getIsBase()) {
172                                 vfModules.remove(i);
173                         }
174                 }
175
176                 when(mockExecution.getVariable("addOnModules")).thenReturn(vfModules)
177                 when(mockExecution.getVariable("addOnModulesDeployed")).thenReturn(0)
178
179                 DoCreateVnfAndModules obj = new DoCreateVnfAndModules()
180                 obj.preProcessAddOnModule(mockExecution)
181
182                 Mockito.verify(mockExecution, times(9)).setVariable(captor.capture(), captor.capture())
183
184                 List list = captor.getAllValues()
185                 for (int i = 0; i < list.size(); i+=2) {
186                         System.out.println("captor[" + i/2 + "]: " + list.get(i)
187                                 + (i+1 < list.size() ? ("=" + list.get(i+1)) : ""))
188                 }
189
190                 String vfModuleNameKey = list.get(14)
191                 Assert.assertEquals("addOnVfModuleName", vfModuleNameKey)
192                 String vfModuleNameValue = list.get(15)
193                 Assert.assertEquals(null, vfModuleNameValue)
194
195                 String lastKey = list.get(16)
196                 Assert.assertEquals("initialCount", lastKey)
197         }
198  
199         @Test
200         void testPreProcessAddonModuleWithVfModuleNames() {
201                 ExecutionEntity mockExecution = setupMock()
202                 setupBasicProcessInputs(mockExecution)
203
204                 ServiceDecomposition serviceDecomposition = createServiceDecomposition()
205                 when(mockExecution.getVariable("serviceDecomposition")).thenReturn(serviceDecomposition)
206
207                 Map<String,String> vfModuleNames = new HashMap<String,String>()
208                 vfModuleNames.put("3ec98c7a-ac20-49a1-9e0d-09fea7e8db45", "VGWA:e2:25:25:25:%")
209                 vfModuleNames.put("cc250e7e-746b-4d84-8064-df20c74213a6", "VGWB:f9:32:32:32:%")
210                 when(mockExecution.getVariable("vfModuleNames")).thenReturn(vfModuleNames)
211                 
212                 VnfResource vnf = serviceDecomposition.getVnfResources().get(0);
213                 List<ModuleResource> vfModules = vnf.getAllVfModuleObjects()
214
215                 for (int i = vfModules.size()-1; i >= 0; i--) {
216                         if (vfModules.get(i).getIsBase()) {
217                                 vfModules.remove(i);
218                         }
219                 }
220
221                 when(mockExecution.getVariable("addOnModules")).thenReturn(vfModules)
222                 when(mockExecution.getVariable("addOnModulesDeployed")).thenReturn(0)
223
224                 DoCreateVnfAndModules obj = new DoCreateVnfAndModules()
225                 obj.preProcessAddOnModule(mockExecution)
226
227                 Mockito.verify(mockExecution, times(9)).setVariable(captor.capture(), captor.capture())
228
229                 List list = captor.getAllValues()
230                 for (int i = 0; i < list.size(); i+=2) {
231                         System.out.println("captor[" + i/2 + "]: " + list.get(i)
232                                 + (i+1 < list.size() ? ("=" + list.get(i+1)) : ""))
233                 }
234
235                 String vfModuleNameKey = list.get(14)
236                 Assert.assertEquals("addOnVfModuleName", vfModuleNameKey)
237                 String vfModuleNameValue = list.get(15)
238                 Assert.assertEquals("VGWB:f9:32:32:32:%", vfModuleNameValue)
239
240                 String lastKey = list.get(16)
241                 Assert.assertEquals("initialCount", lastKey)
242         }
243  
244         private static setupBasicProcessInputs(ExecutionEntity mockExecution) {
245                 when(mockExecution.getVariable("prefix")).thenReturn("DCVAM_")
246                 when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
247                 when(mockExecution.getVariable("msoRequestId")).thenReturn("28a7f01e-a6aa-44fd-b25e-e06e14873cd7")
248                 when(mockExecution.getVariable("serviceInstanceId")).thenReturn("7d34a7df-d6c3-4f1c-8710-576412134a5a")
249                 when(mockExecution.getVariable("productFamilyId")).thenReturn("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
250                 when(mockExecution.getVariable("lcpCloudRegionId")).thenReturn("RegionOne")
251                 when(mockExecution.getVariable("tenantId")).thenReturn("b8ad3842ab3642f7bf3fbe4e4d3b9f86")
252                 when(mockExecution.getVariable("disableRollback")).thenReturn("true")
253                 when(mockExecution.getVariable("delayMS")).thenReturn("0")
254
255         }
256
257         private static ExecutionEntity setupMock() {
258                 ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)
259                 when(mockProcessDefinition.getKey()).thenReturn("DoCreateVnfAndModules")
260                 RepositoryService mockRepositoryService = mock(RepositoryService.class)
261                 when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)
262                 when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoCreateVnfAndModules")
263                 when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")
264                 ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)
265                 when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)
266
267                 ExecutionEntity mockExecution = mock(ExecutionEntity.class)
268                 // Initialize prerequisite variables
269                 when(mockExecution.getId()).thenReturn("100")
270                 when(mockExecution.getProcessDefinitionId()).thenReturn("DoCreateVnfAndModules")
271                 when(mockExecution.getProcessInstanceId()).thenReturn("DoCreateVnfAndModules")
272                 when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)
273                 when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)
274
275                 return mockExecution
276         }
277
278         public static ServiceDecomposition createServiceDecomposition() {
279                 ServiceDecomposition serviceDecomposition = new ServiceDecomposition()
280
281                 ServiceInstance serviceInstance = new ServiceInstance()
282                 serviceInstance.setInstanceId("7d34a7df-d6c3-4f1c-8710-576412134a5a")
283                 serviceDecomposition.setServiceInstance(serviceInstance)
284                 serviceDecomposition.setServiceType("")
285                 serviceDecomposition.setServiceRole("")
286
287                 ModelInfo serviceModelInfo = new ModelInfo()
288                 serviceDecomposition.setModelInfo(serviceModelInfo)
289                 serviceModelInfo.setModelName("vcpesvc_rescust_1111")
290                 serviceModelInfo.setModelUuid("1dffd5f9-bb29-4a47-8073-9b9b07f4943a")
291                 serviceModelInfo.setModelVersion("1.0")
292                 serviceModelInfo.setModelCustomizationUuid("")
293                 serviceModelInfo.setModelCustomizationName("")
294                 serviceModelInfo.setModelInstanceName("")
295                 serviceModelInfo.setModelType("")
296
297                 List<VnfResource> vnfResources = new ArrayList<VnfResource>()
298                 serviceDecomposition.setVnfResources(vnfResources)
299
300                 VnfResource vnfResource = new VnfResource()
301                 vnfResources.add(vnfResource)
302                 vnfResource.setResourceId("9504b6b3-d346-4387-952c-8f9b7570b055")
303                 vnfResource.setResourceType(ResourceType.VNF)
304                 ModelInfo vnfModelInfo = new ModelInfo()
305                 vnfResource.setModelInfo(vnfModelInfo)
306                 vnfModelInfo.setModelName("vcpevsp_vgw_1111")
307                 vnfModelInfo.setModelUuid("289e96fd-a679-4286-a8a2-d76f930d650b")
308                 vnfModelInfo.setModelInvariantUuid("0327af89-f836-4086-aadb-17d5c9bd8a83");
309                 vnfModelInfo.setModelVersion("1.0");
310                 vnfModelInfo.setModelCustomizationUuid("cf151beb-9510-44a1-a165-c783e673baa1");
311                 vnfModelInfo.setModelCustomizationName("");
312                 vnfModelInfo.setModelInstanceName("vcpevsp_vgw_1111 0")
313                 vnfModelInfo.setModelType("")
314                 vnfResource.setResourceInstance(new ResourceInstance())
315                 vnfResource.setHomingSolution(new HomingSolution())
316                 vnfResource.setToscaNodeType("org.openecomp.resource.vf.VcpevspVgw1111")
317                 vnfResource.setMultiStageDesign("false")
318                 vnfResource.setMultiStageDesign("false")
319
320                 List<ModuleResource> moduleResources = new ArrayList<ModuleResource>()
321                 vnfResource.setModules(moduleResources)
322
323                 ModuleResource moduleResource = new ModuleResource()
324                 moduleResources.add(moduleResource)
325                 moduleResource.setResourceType(ResourceType.MODULE)
326                 ModelInfo moduleModelInfo = new ModelInfo()
327                 moduleResource.setModelInfo(moduleModelInfo);
328                 moduleModelInfo.setModelName("VcpevspVgw1111..base_vcpe_vgw..module-0")
329                 moduleModelInfo.setModelUuid("cf35b6b8-1f31-4efc-87a7-d53f840b8fdf")
330                 moduleModelInfo.setModelInvariantUuid("3ec98c7a-ac20-49a1-9e0d-09fea7e8db45")
331                 moduleModelInfo.setModelVersion("1")
332                 moduleModelInfo.setModelCustomizationUuid("281085b3-4598-4c94-811d-58cc685763e7")
333                 moduleModelInfo.setModelCustomizationName("")
334                 moduleModelInfo.setModelInstanceName("")
335                 moduleModelInfo.setModelType("")
336                 moduleResource.setResourceInstance(new ResourceInstance())
337                 moduleResource.setHomingSolution(new HomingSolution())
338                 moduleResource.setHasVolumeGroup(false)
339                 moduleResource.setIsBase(true)
340                 moduleResource.setVfModuleLabel("base_vcpe_vgw")
341                 moduleResource.setInitialCount(1)
342
343                 // For testing an add-on module; not in the actual vCPE model
344                 moduleResource = new ModuleResource()
345                 moduleResources.add(moduleResource)
346                 moduleResource.setResourceType(ResourceType.MODULE)
347                 moduleModelInfo = new ModelInfo()
348                 moduleResource.setModelInfo(moduleModelInfo);
349                 moduleModelInfo.setModelName("VcpevspVgw1111..addon_vcpe_vgw..module-1")
350                 moduleModelInfo.setModelUuid("8c8b41b2-8466-41b4-ae8d-5924830c40e8")
351                 moduleModelInfo.setModelInvariantUuid("cc250e7e-746b-4d84-8064-df20c74213a6")
352                 moduleModelInfo.setModelVersion("1")
353                 moduleModelInfo.setModelCustomizationUuid("99424afc-1fb4-4598-a99b-3e0690b4cb03")
354                 moduleModelInfo.setModelCustomizationName("")
355                 moduleModelInfo.setModelInstanceName("")
356                 moduleModelInfo.setModelType("")
357                 moduleResource.setResourceInstance(new ResourceInstance())
358                 moduleResource.setHomingSolution(new HomingSolution())
359                 moduleResource.setHasVolumeGroup(false)
360                 moduleResource.setIsBase(false)
361                 moduleResource.setVfModuleLabel("addon_vcpe_vgw")
362                 moduleResource.setInitialCount(1)
363
364                 serviceDecomposition.setNetworkResources(new ArrayList<NetworkResource>())
365
366                 List<AllottedResource> allottedResources = new ArrayList<AllottedResource>()
367                 serviceDecomposition.setAllottedResources(allottedResources)
368
369                 AllottedResource ar = new AllottedResource()
370                 allottedResources.add(ar)
371                 ar.setResourceId("ed4a3a9a-1411-4924-a9ee-61a41871a040")
372                 ar.setResourceType(ResourceType.ALLOTTED_RESOURCE)
373                 ModelInfo arModelInfo = new ModelInfo()
374                 ar.setModelInfo(arModelInfo)
375                 arModelInfo.setModelName("vcpear_tunnelxconn_1111")
376                 arModelInfo.setModelUuid("d99e5442-c5e4-4197-ad8d-54f7ad43dd83")
377                 arModelInfo.setModelInvariantUuid("61c17371-e824-4587-a9bb-21782aa28391")
378                 arModelInfo.setModelVersion("1.0")
379                 arModelInfo.setModelCustomizationUuid("506bb474-b8c2-41fd-aeec-4371c3ef58a4")
380                 arModelInfo.setModelCustomizationName("")
381                 arModelInfo.setModelInstanceName("vcpear_tunnelxconn_1111 0")
382                 arModelInfo.setModelType("")
383                 ar.setResourceInstance(new ResourceInstance())
384                 HomingSolution homingSolution = new HomingSolution()
385                 ar.setHomingSolution(homingSolution)
386                 homingSolution.setInventoryType(InventoryType.service)
387                 homingSolution.setServiceInstanceId("d600c1c0-ff45-40e4-bf29-45a95fa64556")
388                 homingSolution.setCloudOwner("CloudOwner")
389                 homingSolution.setCloudRegionId("RegionOne")
390                 VnfResource vnf = new VnfResource()
391                 homingSolution.setVnf(vnf)
392                 vnf.setResourceId("cea5e96e-9c67-437c-bf94-2329d277be09")
393                 vnf.setResourceType(ResourceType.VNF)
394                 vnf.setResourceInstance(new ResourceInstance())
395                 vnf.setHomingSolution(new HomingSolution())
396                 vnf.setVnfHostname("vnfHostName")
397                 homingSolution.setLicense(new License())
398                 homingSolution.setRehome(false)
399                 ar.setToscaNodeType("org.openecomp.resource.vf.VcpearTunnelxconn1111")
400                 ar.setAllottedResourceType("TunnelXConnect")
401                 ar.setAllottedResourceRole("TunnelXConn")
402                 ar.setProvidingServiceModelName("org.openecomp.service.VcpesvcVgmux1111")
403                 ar.setProvidingServiceModelInvariantUuid("d5751cb3-b9e9-470b-9c29-76a5e3ea12d0")
404                 ar.setProvidingServiceModelUuid("61b6e96a-f0c6-4f34-a91c-dab3574dd025")
405                 ar.setNfType("TunnelXConn")
406                 ar.setNfRole("TunnelXConn")
407                 
408                 ar = new AllottedResource()
409                 allottedResources.add(ar)
410                 ar.setResourceId("3b1b3686-ccfe-4e7c-9d6b-76419db398f9")
411                 ar.setResourceType(ResourceType.ALLOTTED_RESOURCE)
412                 arModelInfo = new ModelInfo()
413                 ar.setModelInfo(arModelInfo)
414                 arModelInfo.setModelName("vcpear_brg_1111")
415                 arModelInfo.setModelUuid("6b0a5aa5-98d8-455c-8cd1-618a3f1ac859")
416                 arModelInfo.setModelInvariantUuid("531f9aa5-dea4-4958-89ad-ef03f77cbf07")
417                 arModelInfo.setModelVersion("1.0")
418                 arModelInfo.setModelCustomizationUuid("d23ac3fe-ea54-4060-a7c1-ec9178c79620")
419                 arModelInfo.setModelCustomizationName("")
420                 arModelInfo.setModelInstanceName("vcpear_brg_1111 0")
421                 arModelInfo.setModelType("")
422                 ar.setResourceInstance(new ResourceInstance())
423                 homingSolution = new HomingSolution()
424                 ar.setHomingSolution(homingSolution)
425                 homingSolution.setInventoryType(InventoryType.service)
426                 homingSolution.setServiceInstanceId("bc28ebca-0cc3-4bf8-9ce9-d1524e4bec79")
427                 homingSolution.setCloudOwner("CloudOwner")
428                 homingSolution.setCloudRegionId("RegionOne")
429                 vnf = new VnfResource()
430                 homingSolution.setVnf(vnf)
431                 vnf.setResourceId("65183e95-e6f1-46cb-9315-2da27a24c2b9")
432                 vnf.setResourceType(ResourceType.VNF)
433                 vnf.setResourceInstance(new ResourceInstance())
434                 vnf.setHomingSolution(new HomingSolution())
435                 vnf.setVnfHostname("vnfHostName")
436                 homingSolution.setLicense(new License())
437                 homingSolution.setRehome(false)
438                 ar.setToscaNodeType("org.openecomp.resource.vf.VcpearBrg1111")
439                 ar.setAllottedResourceType("BRG")
440                 ar.setAllottedResourceRole("BRG")
441                 ar.setProvidingServiceModelName("org.openecomp.service.VcpesvcVbrg1111")
442                 ar.setProvidingServiceModelInvariantUuid("6eff53bf-0045-41b0-bd48-b4e1284e5b7a")
443                 ar.setProvidingServiceModelUuid("0e500bca-15ac-42eb-a2f1-4bfd3b2828ff")
444                 ar.setNfType("BRG")
445                 ar.setNfRole("BRG")
446                 
447                 return serviceDecomposition
448         }
449 }