From 0b906b0de95725879fd1cc7ad585d71c502eebd9 Mon Sep 17 00:00:00 2001 From: "Benjamin, Max (mb388a)" Date: Thu, 14 Mar 2019 16:02:18 -0400 Subject: Added vnfc support to BB layer added vnfc to gbb for execute bb and bb layer enhance workflow action layer to handle vnfcs Change-Id: I0d39c3aefe66180ed6f2b75a0c946e07ca603261 Issue-ID: SO-1658 Signed-off-by: Benjamin, Max (mb388a) --- .../workflow/tasks/WorkflowAction.java | 124 ++++++++++++--------- .../workflow/tasks/WorkflowActionBBTasks.java | 113 ++++++++++++++++++- .../workflow/tasks/WorkflowActionUnitTest.java | 75 ------------- 3 files changed, 179 insertions(+), 133 deletions(-) (limited to 'bpmn/so-bpmn-tasks') diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java index d87b11a1a6..aeffb0ecab 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java @@ -41,6 +41,7 @@ import org.onap.aai.domain.yang.GenericVnf; import org.onap.aai.domain.yang.L3Network; import org.onap.aai.domain.yang.Relationship; import org.onap.aai.domain.yang.ServiceInstance; +import org.onap.aai.domain.yang.Vnfc; import org.onap.aai.domain.yang.VolumeGroup; import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration; import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; @@ -51,8 +52,11 @@ import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds; import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup; import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils; import org.onap.so.client.aai.AAICommonObjectMapperProvider; +import org.onap.so.client.aai.AAIObjectType; import org.onap.so.client.aai.entities.AAIResultWrapper; import org.onap.so.client.aai.entities.Relationships; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; import org.onap.so.client.exception.ExceptionBuilder; import org.onap.so.client.orchestration.AAIConfigurationResources; import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization; @@ -199,7 +203,6 @@ public class WorkflowAction { if (orchFlows == null || orchFlows.isEmpty()) { orchFlows = queryNorthBoundRequestCatalogDb(execution, requestAction, resourceType, aLaCarte, cloudOwner, serviceType); } - orchFlows = filterOrchFlows(sIRequest, orchFlows, resourceType, execution); String key = ""; ModelInfo modelInfo = sIRequest.getRequestDetails().getModelInfo(); if(modelInfo != null) { @@ -211,16 +214,17 @@ public class WorkflowAction { } boolean isConfiguration = isConfiguration(orchFlows); Resource resourceKey = new Resource(resourceType, key, aLaCarte); - List configBuildingBlocks = getConfigBuildingBlocks(sIRequest, orchFlows, requestId, resourceKey, apiVersion, resourceId, requestAction, aLaCarte, vnfType, - workflowResourceIds, requestDetails, isConfiguration); + if(isConfiguration && !requestAction.equalsIgnoreCase(CREATEINSTANCE)) { + List configBuildingBlocks = getConfigBuildingBlocks(sIRequest, orchFlows, requestId, resourceKey, apiVersion, resourceId, requestAction, aLaCarte, vnfType, + workflowResourceIds, requestDetails, execution); + flowsToExecute.addAll(configBuildingBlocks); + } + orchFlows = orchFlows.stream().filter(item -> !item.getFlowName().contains(FABRIC_CONFIGURATION)).collect(Collectors.toList()); for (OrchestrationFlow orchFlow : orchFlows) { - if(!orchFlow.getFlowName().contains("Configuration")) { - ExecuteBuildingBlock ebb = buildExecuteBuildingBlock(orchFlow, requestId, resourceKey, apiVersion, resourceId, - requestAction, aLaCarte, vnfType, workflowResourceIds, requestDetails, false, null, false); - flowsToExecute.add(ebb); - } + ExecuteBuildingBlock ebb = buildExecuteBuildingBlock(orchFlow, requestId, resourceKey, apiVersion, resourceId, + requestAction, aLaCarte, vnfType, workflowResourceIds, requestDetails, false, null, false); + flowsToExecute.add(ebb); } - flowsToExecute.addAll(configBuildingBlocks); } else { boolean foundRelated = false; boolean containsService = false; @@ -348,6 +352,26 @@ public class WorkflowAction { } } + protected List getRelatedResourcesInVfModule(String vnfId, String vfModuleId, Class resultClass, AAIObjectType type) { + List vnfcs = new ArrayList<>(); + AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId); + AAIResultWrapper vfModuleResultsWrapper = bbInputSetupUtils.getAAIResourceDepthOne(uri); + Optional relationshipsOp = vfModuleResultsWrapper.getRelationships(); + if (!relationshipsOp.isPresent()) { + logger.debug("No relationships were found for vfModule in AAI"); + } else { + Relationships relationships = relationshipsOp.get(); + List vnfcResultWrappers = relationships.getByType(type); + for(AAIResultWrapper vnfcResultWrapper : vnfcResultWrappers) { + Optional vnfcOp = vnfcResultWrapper.asBean(resultClass); + if(vnfcOp.isPresent()) { + vnfcs.add(vnfcOp.get()); + } + } + } + return vnfcs; + } + protected boolean isConfiguration(List orchFlows) { for(OrchestrationFlow flow : orchFlows) { if(flow.getFlowName().contains("Configuration")) { @@ -359,41 +383,56 @@ public class WorkflowAction { protected List getConfigBuildingBlocks(ServiceInstancesRequest sIRequest, List orchFlows, String requestId, Resource resourceKey, String apiVersion, String resourceId, String requestAction, boolean aLaCarte, String vnfType, - WorkflowResourceIds workflowResourceIds, RequestDetails requestDetails, boolean isConfiguration) { + WorkflowResourceIds workflowResourceIds, RequestDetails requestDetails, DelegateExecution execution) { + List flowsToExecuteConfigs = new ArrayList<>(); List result = new ArrayList<>(orchFlows); result = orchFlows.stream().filter(item -> item.getFlowName().contains(FABRIC_CONFIGURATION)).collect(Collectors.toList()); - String vnfCustomizationUUID = ""; - String vfModuleCustomizationUUID = sIRequest.getRequestDetails().getModelInfo().getModelCustomizationUuid(); - RelatedInstanceList[] relatedInstanceList = sIRequest.getRequestDetails().getRelatedInstanceList(); - if (relatedInstanceList != null) { - for (RelatedInstanceList relatedInstList : relatedInstanceList) { - RelatedInstance relatedInstance = relatedInstList.getRelatedInstance(); - if (relatedInstance.getModelInfo().getModelType().equals(ModelType.vnf)) { - vnfCustomizationUUID = relatedInstance.getModelInfo().getModelCustomizationUuid(); - } - } - } + String vnfId = workflowResourceIds.getVnfId(); + String vfModuleId = workflowResourceIds.getVfModuleId(); - List fabricCustomizations = traverseCatalogDbForConfiguration(vnfCustomizationUUID, vfModuleCustomizationUUID); - List flowsToExecuteConfigs = new ArrayList<>(); - for(VnfVfmoduleCvnfcConfigurationCustomization fabricConfig : fabricCustomizations) { - - if (requestAction.equals(CREATEINSTANCE)) { - workflowResourceIds.setConfigurationId(UUID.randomUUID().toString()); - } else { - //TODO AAI lookup for configuration update/delete - } + String vnfCustomizationUUID = bbInputSetupUtils.getAAIGenericVnf(vnfId).getModelCustomizationId(); + String vfModuleCustomizationUUID = bbInputSetupUtils.getAAIVfModule(vnfId, vfModuleId).getModelCustomizationId(); + List configurations = getRelatedResourcesInVfModule(vnfId, vfModuleId, org.onap.aai.domain.yang.Configuration.class, AAIObjectType.CONFIGURATION); + + for(org.onap.aai.domain.yang.Configuration configuration : configurations) { + workflowResourceIds.setConfigurationId(configuration.getConfigurationId()); for(OrchestrationFlow orchFlow : result) { resourceKey.setVfModuleCustomizationId(vfModuleCustomizationUUID); - resourceKey.setCvnfModuleCustomizationId(fabricConfig.getCvnfcCustomization().getModelCustomizationUUID()); + resourceKey.setCvnfModuleCustomizationId(configuration.getModelCustomizationId()); resourceKey.setVnfCustomizationId(vnfCustomizationUUID); ExecuteBuildingBlock ebb = buildExecuteBuildingBlock(orchFlow, requestId, resourceKey, apiVersion, resourceId, requestAction, aLaCarte, vnfType, workflowResourceIds, requestDetails, false, null, true); + String vnfcName = getVnfcNameForConfiguration(configuration); + if(vnfcName == null || vnfcName.isEmpty()) { + buildAndThrowException(execution, "Exception in create execution list " + ": VnfcName does not exist or is null while there is a configuration for the vfModule", new Exception("Vnfc and Configuration do not match")); + } + ebb.getConfigurationResourceKeys().setVnfcName(vnfcName); flowsToExecuteConfigs.add(ebb); } } return flowsToExecuteConfigs; } + + protected String getVnfcNameForConfiguration(org.onap.aai.domain.yang.Configuration configuration) { + AAIResultWrapper wrapper = new AAIResultWrapper(configuration); + Optional relationshipsOp = wrapper.getRelationships(); + if (!relationshipsOp.isPresent()) { + logger.debug("No relationships were found for Configuration in AAI"); + return null; + } else { + Relationships relationships = relationshipsOp.get(); + List vnfcResultWrappers = relationships.getByType(AAIObjectType.VNFC); + if(vnfcResultWrappers.size() > 1 || vnfcResultWrappers.isEmpty()) { + logger.debug("Too many vnfcs or no vnfc found that are related to configuration"); + } + Optional vnfcOp = vnfcResultWrappers.get(0).asBean(Vnfc.class); + if(vnfcOp.isPresent()) { + return vnfcOp.get().getVnfcName(); + } else { + return null; + } + } + } protected List sortVfModulesByBaseFirst(List vfModuleResources) { int count = 0; @@ -1159,29 +1198,6 @@ public class WorkflowAction { } return listToExecute; } - - protected List filterOrchFlows(ServiceInstancesRequest sIRequest, List orchFlows, WorkflowType resourceType, DelegateExecution execution) { - List result = new ArrayList<>(orchFlows); - String vnfCustomizationUUID = ""; - String vfModuleCustomizationUUID = sIRequest.getRequestDetails().getModelInfo().getModelCustomizationUuid(); - RelatedInstanceList[] relatedInstanceList = sIRequest.getRequestDetails().getRelatedInstanceList(); - if (relatedInstanceList != null) { - for (RelatedInstanceList relatedInstList : relatedInstanceList) { - RelatedInstance relatedInstance = relatedInstList.getRelatedInstance(); - if (relatedInstance.getModelInfo().getModelType().equals(ModelType.vnf)) { - vnfCustomizationUUID = relatedInstance.getModelInfo().getModelCustomizationUuid(); - } - } - } - - if (resourceType.equals(WorkflowType.VFMODULE)) { - List fabricCustomizations = traverseCatalogDbForConfiguration(vnfCustomizationUUID, vfModuleCustomizationUUID); - if (fabricCustomizations.isEmpty()) { - result = orchFlows.stream().filter(item -> !item.getFlowName().contains(FABRIC_CONFIGURATION)).collect(Collectors.toList()); - } - } - return result; - } protected void buildAndThrowException(DelegateExecution execution, String msg, Exception ex) { logger.error(msg, ex); diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java index 33a89e0b82..877a0dded7 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java @@ -22,18 +22,28 @@ package org.onap.so.bpmn.infrastructure.workflow.tasks; import java.sql.Timestamp; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Optional; +import java.util.UUID; -import org.camunda.bpm.engine.delegate.BpmnError; import org.camunda.bpm.engine.delegate.DelegateExecution; +import org.onap.aai.domain.yang.Vnfc; import org.onap.so.bpmn.common.workflow.context.WorkflowCallbackResponse; import org.onap.so.bpmn.common.workflow.context.WorkflowContextHolder; -import org.onap.so.bpmn.core.WorkflowException; import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock; +import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys; import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock; +import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds; +import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.aai.entities.AAIResultWrapper; +import org.onap.so.client.aai.entities.Relationships; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; import org.onap.so.client.exception.ExceptionBuilder; +import org.onap.so.db.catalog.beans.CvnfcCustomization; +import org.onap.so.db.catalog.beans.VnfVfmoduleCvnfcConfigurationCustomization; +import org.onap.so.db.catalog.client.CatalogDbClient; import org.onap.so.db.request.beans.InfraActiveRequests; import org.onap.so.db.request.client.RequestsDbClient; import org.onap.so.serviceinstancebeans.RequestReferences; @@ -55,6 +65,9 @@ public class WorkflowActionBBTasks { private static final String G_ALACARTE = "aLaCarte"; private static final String G_ACTION = "requestAction"; private static final String RETRY_COUNT = "retryCount"; + private static final String FABRIC_CONFIGURATION = "FabricConfiguration"; + private static final String ASSIGN_FABRIC_CONFIGURATION_BB = "AssignFabricConfigurationBB"; + private static final String ACTIVATE_FABRIC_CONFIGURATION_BB = "ActivateFabricConfigurationBB"; protected String maxRetries = "mso.rainyDay.maxRetries"; private static final Logger logger = LoggerFactory.getLogger(WorkflowActionBBTasks.class); @@ -66,6 +79,10 @@ public class WorkflowActionBBTasks { private WorkflowActionBBFailure workflowActionBBFailure; @Autowired private Environment environment; + @Autowired + private BBInputSetupUtils bbInputSetupUtils; + @Autowired + private CatalogDbClient catalogDbClient; public void selectBB(DelegateExecution execution) { List flowsToExecute = (List) execution @@ -281,10 +298,12 @@ public class WorkflowActionBBTasks { int flowSize = rollbackFlows.size(); String handlingCode = (String) execution.getVariable("handlingCode"); - if(handlingCode.equals("RollbackToAssigned")){ + if(handlingCode.equals("RollbackToAssigned") || handlingCode.equals("RollbackToCreated")){ for(int i = 0; i flowsToExecute = (List) execution + .getVariable("flowsToExecute"); + String handlingCode = (String) execution.getVariable("handlingCode"); + final boolean aLaCarte = (boolean) execution.getVariable(G_ALACARTE); + int currentSequence = (int) execution.getVariable(G_CURRENT_SEQUENCE); + ExecuteBuildingBlock ebb = flowsToExecute.get(currentSequence - 1); + String bbFlowName = ebb.getBuildingBlock().getBpmnFlowName(); + if(bbFlowName.equalsIgnoreCase("ActivateVfModuleBB") && aLaCarte && handlingCode.equalsIgnoreCase("Success")) { + postProcessingExecuteBBActivateVfModule(execution, ebb, flowsToExecute); + } + } + + protected void postProcessingExecuteBBActivateVfModule(DelegateExecution execution, + ExecuteBuildingBlock ebb, List flowsToExecute) { + try { + String vnfId = ebb.getWorkflowResourceIds().getVnfId(); + String vfModuleId = ebb.getWorkflowResourceIds().getVfModuleId(); + String vnfCustomizationUUID = bbInputSetupUtils.getAAIGenericVnf(vnfId).getModelCustomizationId(); + String vfModuleCustomizationUUID = bbInputSetupUtils.getAAIVfModule(vnfId, vfModuleId).getModelCustomizationId(); + List vnfcs = workflowAction.getRelatedResourcesInVfModule(vnfId, vfModuleId, Vnfc.class, AAIObjectType.VNFC); + for(Vnfc vnfc : vnfcs) { + String modelCustomizationId = vnfc.getModelCustomizationId(); + List cvnfcCustomizations = catalogDbClient.getCvnfcCustomizationByVnfCustomizationUUIDAndVfModuleCustomizationUUID(vnfCustomizationUUID, vfModuleCustomizationUUID); + CvnfcCustomization cvnfcCustomization = null; + for(CvnfcCustomization cvnfc : cvnfcCustomizations) { + if(cvnfc.getModelCustomizationUUID().equalsIgnoreCase(modelCustomizationId)) { + cvnfcCustomization = cvnfc; + } + } + if(cvnfcCustomization != null) { + VnfVfmoduleCvnfcConfigurationCustomization fabricConfig = null; + for(VnfVfmoduleCvnfcConfigurationCustomization customization : cvnfcCustomization.getVnfVfmoduleCvnfcConfigurationCustomization()){ + if(customization.getConfigurationResource().getToscaNodeType().contains(FABRIC_CONFIGURATION)){ + if(fabricConfig == null) { + fabricConfig = customization; + } else { + throw new Exception("Multiple Fabric configs found for this vnfc"); + } + } + } + if(fabricConfig != null) { + String configurationId = UUID.randomUUID().toString(); + ConfigurationResourceKeys configurationResourceKeys = new ConfigurationResourceKeys(); + configurationResourceKeys.setCvnfcCustomizationUUID(modelCustomizationId); + configurationResourceKeys.setVfModuleCustomizationUUID(vfModuleCustomizationUUID); + configurationResourceKeys.setVnfResourceCustomizationUUID(vnfCustomizationUUID); + configurationResourceKeys.setVnfcName(vnfc.getVnfcName()); + ExecuteBuildingBlock assignConfigBB = getExecuteBBForConfig(ASSIGN_FABRIC_CONFIGURATION_BB, ebb, configurationId, configurationResourceKeys); + ExecuteBuildingBlock activateConfigBB = getExecuteBBForConfig(ACTIVATE_FABRIC_CONFIGURATION_BB, ebb, configurationId, configurationResourceKeys); + flowsToExecute.add(assignConfigBB); + flowsToExecute.add(activateConfigBB); + execution.setVariable("flowsToExecute", flowsToExecute); + execution.setVariable("completed", false); + } + } else { + logger.debug("No cvnfcCustomization found for customizationId: " + modelCustomizationId); + } + } + } catch (Exception e) { + String errorMessage = "Error occurred in post processing of Vf Module create"; + execution.setVariable("handlingCode", "RollbackToCreated"); + execution.setVariable("WorkflowActionErrorMessage", errorMessage); + logger.error(errorMessage, e); + } + } + + protected ExecuteBuildingBlock getExecuteBBForConfig(String bbName, ExecuteBuildingBlock ebb, String configurationId, ConfigurationResourceKeys configurationResourceKeys) { + ExecuteBuildingBlock configBB = new ExecuteBuildingBlock(); + BuildingBlock buildingBlock = new BuildingBlock(); + buildingBlock.setBpmnFlowName(bbName); + buildingBlock.setMsoId(UUID.randomUUID().toString()); + configBB.setaLaCarte(ebb.isaLaCarte()); + configBB.setApiVersion(ebb.getApiVersion()); + configBB.setRequestAction(ebb.getRequestAction()); + configBB.setVnfType(ebb.getVnfType()); + configBB.setRequestId(ebb.getRequestId()); + configBB.setRequestDetails(ebb.getRequestDetails()); + configBB.setBuildingBlock(buildingBlock); + WorkflowResourceIds workflowResourceIds = ebb.getWorkflowResourceIds(); + workflowResourceIds.setConfigurationId(configurationId); + configBB.setWorkflowResourceIds(workflowResourceIds); + configBB.setConfigurationResourceKeys(configurationResourceKeys); + return configBB; + } } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionUnitTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionUnitTest.java index 8195cd58c0..5c083779be 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionUnitTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionUnitTest.java @@ -82,54 +82,6 @@ public class WorkflowActionUnitTest { @Spy private WorkflowAction workflowAction; - @Test - public void filterOrchFlowsHasFabricTest() { - - List flows = createFlowList( - "DeactivateFabricConfigurationBB", - "flow x", - "flow y", - "ActivateFabricConfigurationBB", - "flow z"); - doReturn(Arrays.asList("yes", "yes")).when(workflowAction).traverseCatalogDbForConfiguration(ArgumentMatchers.any(String.class), ArgumentMatchers.isNull()); - - ServiceInstancesRequest sIRequest = new ServiceInstancesRequest(); - RequestDetails requestDetails = new RequestDetails(); - ModelInfo modelInfo = new ModelInfo(); - requestDetails.setModelInfo(modelInfo); - RelatedInstance relatedInstance = new RelatedInstance(); - sIRequest.setRequestDetails(requestDetails); - - List result = workflowAction.filterOrchFlows(sIRequest, flows, WorkflowType.VFMODULE, mock(DelegateExecution.class)); - - assertThat(result, is(flows)); - } - - @Test - public void filterOrchFlowNoFabricTest() { - List flows = createFlowList( - "DeactivateFabricConfigurationBB", - "flow x", - "flow y", - "ActivateFabricConfigurationBB", - "flow z"); - - ServiceInstancesRequest sIRequest = new ServiceInstancesRequest(); - RequestDetails requestDetails = new RequestDetails(); - ModelInfo modelInfo = new ModelInfo(); - modelInfo.setModelCustomizationUuid(""); - requestDetails.setModelInfo(modelInfo); - sIRequest.setRequestDetails(requestDetails); - - List result = workflowAction.filterOrchFlows(sIRequest, flows, WorkflowType.VFMODULE, mock(DelegateExecution.class)); - List expected = createFlowList( - "flow x", - "flow y", - "flow z"); - - assertThat(result, is(expected)); - } - @Test public void traverseCatalogDbForConfigurationTest() { @@ -150,33 +102,6 @@ public class WorkflowActionUnitTest { } - @Test - public void verifyFilterOrchInvocation() throws Exception { - DelegateExecution execution = mock(DelegateExecution.class); - - when(execution.getVariable(eq("aLaCarte"))).thenReturn(true); - when(execution.getVariable(eq("bpmnRequest"))).thenReturn(getJson("ServiceMacroAssign.json")); - when(execution.getVariable(eq("requestUri"))).thenReturn("/v6/serviceInstances/123/vnfs/1234"); - - OrchestrationFlow flow = new OrchestrationFlow(); - flow.setFlowName("flow x"); - - List flows = Arrays.asList(flow); - doReturn(Arrays.asList(flow)).when(workflowAction).queryNorthBoundRequestCatalogDb(any(), any(), any(), anyBoolean(), any(), any()); - workflowAction.selectExecutionList(execution); - - verify(workflowAction, times(1)).filterOrchFlows(any(), eq(flows), any(), any()); - - flow = new OrchestrationFlow(); - flow.setFlowName("flow y"); - flows = Arrays.asList(flow); - when(execution.getVariable(eq("aLaCarte"))).thenReturn(false); - workflowAction.selectExecutionList(execution); - - verify(workflowAction, never()).filterOrchFlows(any(), eq(flows), any(), any()); - - } - private String getJson(String filename) throws IOException { return new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + filename))); } -- cgit 1.2.3-korg