2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 TechMahindra.
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.so.bpmn.infrastructure.flowspecific.tasks;
24 import java.util.UUID;
26 import org.onap.so.bpmn.common.BuildingBlockExecution;
27 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
28 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
29 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
30 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
31 import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
32 import org.onap.so.client.cds.beans.AbstractCDSPropertiesBean;
33 import org.onap.so.client.cds.beans.ConfigAssignPropertiesForVnf;
34 import org.onap.so.client.cds.beans.ConfigAssignRequestVnf;
35 import org.onap.so.client.exception.ExceptionBuilder;
36 import org.slf4j.Logger;
37 import org.slf4j.LoggerFactory;
38 import org.springframework.beans.factory.annotation.Autowired;
39 import org.springframework.stereotype.Component;
43 * Get vnf related data and config assign
47 public class ConfigAssignVnf {
49 private static final Logger logger = LoggerFactory.getLogger(ConfigAssignVnf.class);
50 private static final String ORIGINATOR_ID = "SO";
51 private static final String ACTION_NAME = "config-assign";
52 private static final String MODE = "sync";
55 private ExceptionBuilder exceptionUtil;
57 private ExtractPojosForBB extractPojosForBB;
60 * Getting the vnf data, blueprint name, blueprint version etc and setting them
61 * in execution object and calling the subprocess.
65 public void preProcessAbstractCDSProcessing(BuildingBlockExecution execution) {
66 logger.info("Start preProcessAbstractCDSProcessing ");
68 GenericVnf vnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID,
69 execution.getLookupMap().get(ResourceKey.GENERIC_VNF_ID));
70 ServiceInstance serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID,
71 execution.getLookupMap().get(ResourceKey.SERVICE_INSTANCE_ID));
73 Map<String, Object> userParams = execution.getGeneralBuildingBlock().getRequestContext().getUserParams();
75 ConfigAssignPropertiesForVnf configAssignPropertiesForVnf = new ConfigAssignPropertiesForVnf();
76 configAssignPropertiesForVnf.setServiceInstanceId(serviceInstance.getServiceInstanceId());
77 configAssignPropertiesForVnf
78 .setServiceModelUuid(serviceInstance.getModelInfoServiceInstance().getModelUuid());
79 configAssignPropertiesForVnf
80 .setVnfCustomizationUuid(vnf.getModelInfoGenericVnf().getModelCustomizationUuid());
81 configAssignPropertiesForVnf.setVnfId(vnf.getVnfId());
82 configAssignPropertiesForVnf.setVnfName(vnf.getVnfName());
84 for (Map.Entry<String, Object> entry : userParams.entrySet()) {
85 configAssignPropertiesForVnf.setUserParam(entry.getKey(), entry.getValue());
88 ConfigAssignRequestVnf configAssignRequestVnf = new ConfigAssignRequestVnf();
89 configAssignRequestVnf.setResolutionKey(vnf.getVnfName());
90 configAssignRequestVnf.setConfigAssignPropertiesForVnf(configAssignPropertiesForVnf);
92 String blueprintName = vnf.getBlueprintName();
93 String blueprintVersion = vnf.getBlueprintVersion();
95 AbstractCDSPropertiesBean abstractCDSPropertiesBean = new AbstractCDSPropertiesBean();
97 abstractCDSPropertiesBean.setBlueprintName(blueprintName);
98 abstractCDSPropertiesBean.setBlueprintVersion(blueprintVersion);
99 abstractCDSPropertiesBean.setRequestObject(configAssignRequestVnf.toString());
101 GeneralBuildingBlock gBBInput = execution.getGeneralBuildingBlock();
103 abstractCDSPropertiesBean.setOriginatorId(ORIGINATOR_ID);
104 abstractCDSPropertiesBean.setRequestId(gBBInput.getRequestContext().getMsoRequestId());
105 abstractCDSPropertiesBean.setSubRequestId(UUID.randomUUID().toString());
106 abstractCDSPropertiesBean.setActionName(ACTION_NAME);
107 abstractCDSPropertiesBean.setMode(MODE);
108 execution.setVariable("executionObject", abstractCDSPropertiesBean);
110 } catch (Exception ex) {
111 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);