X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=bpmn%2Fso-bpmn-tasks%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fso%2Fbpmn%2Finfrastructure%2Fadapter%2Fcnfm%2Ftasks%2FCnfInstantiateTask.java;h=105cca28c8e2e8249dfbe495669d83a0c2d6a2e9;hb=fa660d2d8a9b2b6f3190bf5c3c26dcf4fa15c146;hp=ab20a08e74892b777aaec249e4e5181222d2b084;hpb=1a6b1ef83417efbbb8ec7cfe204c105e49e7e1f2;p=so.git diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfInstantiateTask.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfInstantiateTask.java index ab20a08e74..105cca28c8 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfInstantiateTask.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/adapter/cnfm/tasks/CnfInstantiateTask.java @@ -26,6 +26,10 @@ import static org.onap.so.cnfm.lcm.model.utils.AdditionalParamsConstants.CLOUD_R import static org.onap.so.cnfm.lcm.model.utils.AdditionalParamsConstants.SERVICE_INSTANCE_ID_PARAM_KEY; import static org.onap.so.cnfm.lcm.model.utils.AdditionalParamsConstants.SERVICE_INSTANCE_NAME_PARAM_KEY; import static org.onap.so.cnfm.lcm.model.utils.AdditionalParamsConstants.TENANT_ID_PARAM_KEY; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import java.util.Optional; import org.apache.groovy.util.Maps; import org.onap.logging.filter.base.ONAPComponents; @@ -37,6 +41,7 @@ import org.onap.so.client.exception.ExceptionBuilder; import org.onap.so.cnfm.lcm.model.AsInstance; import org.onap.so.cnfm.lcm.model.CreateAsRequest; import org.onap.so.cnfm.lcm.model.InstantiateAsRequest; +import org.onap.so.cnfm.lcm.model.AsInfoModificationRequestDeploymentItems; import org.onap.so.serviceinstancebeans.CloudConfiguration; import org.onap.so.serviceinstancebeans.ModelInfo; import org.onap.so.serviceinstancebeans.RequestDetails; @@ -57,6 +62,7 @@ import org.springframework.stereotype.Component; public class CnfInstantiateTask { private static final String CREATE_AS_REQUEST_OBJECT = "CreateAsRequestObject"; private static final String INSTANTIATE_AS_REQUEST_OBJECT = "InstantiateAsRequest"; + private static final String CNFM_REQUEST_STATUS_CHECK_URL = "CnfmStatusCheckUrl"; private static final String AS_INSTANCE_ID = "asInstanceid"; private static final Logger LOGGER = LoggerFactory.getLogger(CnfInstantiateTask.class); private final ExceptionBuilder exceptionUtil; @@ -80,9 +86,9 @@ public class CnfInstantiateTask { final RequestDetails requestDetails = executeBuildingBlock.getRequestDetails(); LOGGER.debug("RequestDetails: {}", requestDetails); - if (isNull(requestDetails) && isNull(requestDetails.getModelInfo()) - && isNull(requestDetails.getRequestInfo()) && isNull(requestDetails.getCloudConfiguration()) - && isNull(generalBuildingBlock)) { + if (isNull(requestDetails) || isNull(requestDetails.getModelInfo()) + || isNull(requestDetails.getRequestInfo()) + || isNull(requestDetails.getCloudConfiguration()) && isNull(generalBuildingBlock)) { LOGGER.error("Missing Mandatory attribute from RequestDetails: {} or GeneralBuildingBlock: {}", requestDetails, generalBuildingBlock); exceptionUtil.buildAndThrowWorkflowException(execution, 2000, @@ -137,9 +143,31 @@ public class CnfInstantiateTask { public void createAsInstanceRequest(final BuildingBlockExecution execution) { try { LOGGER.debug("Executing createAsInstanceRequest task ..."); - + final ExecuteBuildingBlock executeBuildingBlock = + (ExecuteBuildingBlock) execution.getVariable("buildingBlock"); + final RequestDetails requestDetails = executeBuildingBlock.getRequestDetails(); final InstantiateAsRequest instantiateAsRequest = new InstantiateAsRequest(); - + if (requestDetails != null && requestDetails.getRequestParameters() != null) { + List> userParams = requestDetails.getRequestParameters().getUserParams(); + if (userParams != null && !userParams.isEmpty()) { + List deploymentItems = new ArrayList(); + List deploymentItemsReq = new ArrayList(); + for (Map userParam : userParams) { + if (userParam.containsKey("deploymentItems")) { + deploymentItems = (ArrayList) userParam.get("deploymentItems"); + break; + } + } + for (Object deploymentItem : deploymentItems) { + Map deploymentItemMap = (Map) deploymentItem; + AsInfoModificationRequestDeploymentItems item = new AsInfoModificationRequestDeploymentItems(); + item.setDeploymentItemsId(deploymentItemMap.get("deploymentItemsId").toString()); + item.setLifecycleParameterKeyValues(deploymentItemMap.get("lifecycleParameterKeyValues")); + deploymentItemsReq.add(item); + } + instantiateAsRequest.setDeploymentItems(deploymentItemsReq); + } + } LOGGER.debug("Adding InstantiateAsRequest to execution {}", instantiateAsRequest); execution.setVariable(INSTANTIATE_AS_REQUEST_OBJECT, instantiateAsRequest); @@ -155,9 +183,10 @@ public class CnfInstantiateTask { try { final InstantiateAsRequest instantiateAsRequest = execution.getVariable(INSTANTIATE_AS_REQUEST_OBJECT); final String asInstanceId = execution.getVariable(AS_INSTANCE_ID); - cnfmHttpServiceProvider.invokeInstantiateAsRequest(instantiateAsRequest, asInstanceId); + Optional cnf_status_check_url = + cnfmHttpServiceProvider.invokeInstantiateAsRequest(instantiateAsRequest, asInstanceId); + execution.setVariable(CNFM_REQUEST_STATUS_CHECK_URL, cnf_status_check_url.get()); LOGGER.debug("Successfully invoked CNFM instantiate AS request: {}", asInstanceId); - } catch (final Exception exception) { LOGGER.error("Unable to invoke CNFM InstantiateAsRequest", exception); exceptionUtil.buildAndThrowWorkflowException(execution, 2005, exception);