From 98d48a4b34f07ac40fddd2254b78b9ea84f88fa3 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Wed, 15 Nov 2017 18:25:57 -0500 Subject: Modified create-vcpe to filter out "bad" VNFs Modified create-vcpe to delete the BRG and TXC items from the service VNF list contained within the service decomposition structure. Change-Id: I7624a93b422fa172a2079f70d66a2604ee2229b0 Issue-Id: SO-344 Signed-off-by: Jim Hahn --- .../vcpe/scripts/CreateVcpeResCustService.groovy | 21 ++++++ .../scripts/CreateVcpeResCustServiceTest.groovy | 81 +++++++++++++++++----- 2 files changed, 85 insertions(+), 17 deletions(-) (limited to 'bpmn') diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/vcpe/scripts/CreateVcpeResCustService.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/vcpe/scripts/CreateVcpeResCustService.groovy index 703ea8be6d..dd6d4514bc 100644 --- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/vcpe/scripts/CreateVcpeResCustService.groovy +++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/vcpe/scripts/CreateVcpeResCustService.groovy @@ -343,6 +343,9 @@ public class CreateVcpeResCustService extends AbstractServiceTaskProcessor { // VNFs List vnfList = serviceDecomposition.getServiceVnfs() + filterVnfs(vnfList) + serviceDecomposition.setServiceVnfs(vnfList) + execution.setVariable("vnfList", vnfList) execution.setVariable("vnfListString", vnfList.toString()) @@ -372,6 +375,24 @@ public class CreateVcpeResCustService extends AbstractServiceTaskProcessor { exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage) } } + + private void filterVnfs(List vnfList) { + if(vnfList == null) { + return + } + + // remove BRG & TXC from VNF list + + Iterator it = vnfList.iterator() + while(it.hasNext()) { + VnfResource vr = it.next() + + String role = vr.getNfRole() + if(role == "BRG" || role == "TunnelXConn") { + it.remove() + } + } + } public void prepareCreateAllottedResourceTXC(Execution execution) { diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/vcpe/scripts/CreateVcpeResCustServiceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/vcpe/scripts/CreateVcpeResCustServiceTest.groovy index f0645b2bc7..70050422ee 100644 --- a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/vcpe/scripts/CreateVcpeResCustServiceTest.groovy +++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/vcpe/scripts/CreateVcpeResCustServiceTest.groovy @@ -370,7 +370,7 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { // @Ignore public void processDecomposition() { ExecutionEntity mex = setupMock() - def svcdecomp = initProcessDecomposition(mex, true, true) + def svcdecomp = initProcessDecomposition(mex) CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService() CreateVcpeResCustService.processDecomposition(mex) @@ -378,8 +378,8 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { verify(mex).getVariable(DBGFLAG) verify(mex).setVariable("vnfList", svcdecomp.getServiceVnfs()) - verify(mex).setVariable("vnfListString", '[myvnf, myvnf2, myvnf3]') - verify(mex).setVariable(Prefix+"VNFsCount", 3) + verify(mex).setVariable("vnfListString", '[myvnf]') + verify(mex).setVariable(Prefix+"VNFsCount", 1) verify(mex).setVariable("vnfModelInfo", "mymodel") verify(mex).setVariable("vnfModelInfoString", "mymodel") @@ -389,7 +389,7 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { // @Ignore public void processDecomposition_EmptyNet_EmptyVnf() { ExecutionEntity mex = setupMock() - def svcdecomp = initProcessDecomposition(mex, true, true) + def svcdecomp = initProcessDecomposition(mex) when(svcdecomp.getServiceVnfs()).thenReturn(new LinkedList()) @@ -410,7 +410,7 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { // @Ignore public void processDecomposition_Ex() { ExecutionEntity mex = setupMock() - def svcdecomp = initProcessDecomposition(mex, true, true) + def svcdecomp = initProcessDecomposition(mex) when(svcdecomp.getServiceVnfs()).thenThrow(new RuntimeException("expected exception")) @@ -420,6 +420,35 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { } + // ***** filterVnfs ***** + + @Test + // @Ignore + public void filterVnfs() { + ExecutionEntity mex = setupMock() + def svcdecomp = initFilterVnfs(mex) + + CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService() + CreateVcpeResCustService.processDecomposition(mex) + + verify(mex).setVariable("vnfListString", '[myvnf3, myvnf5]') + } + + @Test + // @Ignore + public void filterVnfs_Null() { + ExecutionEntity mex = setupMock() + def svcdecomp = initFilterVnfs(mex) + + when(svcdecomp.getServiceVnfs()).thenReturn(null) + + CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService() + CreateVcpeResCustService.processDecomposition(mex) + + // nothing more to check, as long as it didn't throw an exception + } + + // ***** prepareCreateAllottedResourceTXC ***** @Test @@ -1034,13 +1063,30 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { when(mex.getVariable("serviceInstanceName")).thenReturn("sin") } - private ServiceDecomposition initProcessDecomposition(ExecutionEntity mex, boolean haveNet, boolean haveVnf) { + private ServiceDecomposition initProcessDecomposition(ExecutionEntity mex) { + List vnflst = new LinkedList<>() + vnflst.add(makeVnf("", "")) + vnflst.add(makeVnf("2", "BRG")) + vnflst.add(makeVnf("3", "BRG")) + + ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class) + when(svcdecomp.getServiceVnfs()).thenReturn(vnflst) + + when(mex.getVariable(DBGFLAG)).thenReturn("true") + when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp) + when(mex.getVariable("serviceInstanceId")).thenReturn("sii") + when(mex.getVariable("serviceInstanceName")).thenReturn("sin") + + return svcdecomp + } + + private ServiceDecomposition initFilterVnfs(ExecutionEntity mex) { List vnflst = new LinkedList<>() - if(haveVnf) { - vnflst.add(makeVnf("")) - vnflst.add(makeVnf("2")) - vnflst.add(makeVnf("3")) - } + vnflst.add(makeVnf("", "BRG")) + vnflst.add(makeVnf("2", "TunnelXConn")) + vnflst.add(makeVnf("3", "")) + vnflst.add(makeVnf("4", "BRG")) + vnflst.add(makeVnf("5", "other")) ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class) when(svcdecomp.getServiceVnfs()).thenReturn(vnflst) @@ -1133,10 +1179,10 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { List vnflst = new LinkedList<>() - vnflst.add(makeVnf("A")) - vnflst.add(makeVnf("B")) - vnflst.add(makeVnf("C")) - vnflst.add(makeVnf("D")) + vnflst.add(makeVnf("A", "BRG")) + vnflst.add(makeVnf("B", "")) + vnflst.add(makeVnf("C", "")) + vnflst.add(makeVnf("D", "TunnelXConn")) when(mex.getVariable(DBGFLAG)).thenReturn("true") when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request) @@ -1146,7 +1192,7 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { when(mex.getVariable("sdncVersion")).thenReturn("myvers") } - private VnfResource makeVnf(String id) { + private VnfResource makeVnf(String id, String role) { ModelInfo mod = mock(ModelInfo.class) VnfResource vnf = mock(VnfResource.class) @@ -1154,8 +1200,9 @@ class CreateVcpeResCustServiceTest extends GroovyTestBase { when(vnf.toString()).thenReturn("myvnf"+id) when(vnf.getModelInfo()).thenReturn(mod) + when(vnf.getNfRole()).thenReturn(role) - return vnf + return vnf } private initValidateVnfCreate(ExecutionEntity mex) { -- cgit 1.2.3-korg