2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2023 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.so.bpmn.infrastructure.adapter.cnfm.tasks;
23 import java.io.Serializable;
24 import java.util.ArrayList;
25 import java.util.Collections;
26 import java.util.HashMap;
27 import java.util.List;
29 import java.util.UUID;
30 import org.onap.so.bpmn.common.BuildingBlockExecution;
31 import org.onap.so.bpmn.common.exceptions.RequiredExecutionVariableExeception;
32 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
33 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
34 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
35 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
36 import org.onap.so.serviceinstancebeans.CloudConfiguration;
37 import org.onap.so.serviceinstancebeans.ModelInfo;
38 import org.onap.so.serviceinstancebeans.RequestDetails;
39 import org.onap.so.serviceinstancebeans.RequestInfo;
40 import org.onap.so.serviceinstancebeans.RequestParameters;
44 * @author Raviteja Karumuri (raviteja.karumuri@est.tech)
47 public class StubbedBuildingBlockExecution implements BuildingBlockExecution {
49 private static final String CLOUD_OWNER = "CloudOwner";
50 private static final String BUILDING_BLOCK = "buildingBlock";
51 private static final String LCP_CLOUD_REGION_ID = "RegionOne";
52 private static final String MODEL_VERSION_ID = UUID.randomUUID().toString();
53 private static final String SERVICE_INSTANCE_ID = UUID.randomUUID().toString();
54 private static final String DEPLOYMENT_ID = UUID.randomUUID().toString();
55 private static final String SERVICE_INSTANCE_NAME = "test";
56 private static final String INSTANCE_NAME = "instanceTest";
57 private static final String TENANT_ID = UUID.randomUUID().toString();
58 private final Map<String, Serializable> execution = new HashMap<>();
59 private final GeneralBuildingBlock generalBuildingBlock;
61 StubbedBuildingBlockExecution() {
63 generalBuildingBlock = getGeneralBuildingBlockValue();
64 setVariable(BUILDING_BLOCK, getExecuteBuildingBlock());
68 public GeneralBuildingBlock getGeneralBuildingBlock() {
69 return generalBuildingBlock;
72 @SuppressWarnings("unchecked")
74 public <T> T getVariable(final String key) {
75 return (T) execution.get(key);
79 public <T> T getRequiredVariable(final String key) throws RequiredExecutionVariableExeception {
84 public void setVariable(final String key, final Serializable value) {
85 execution.put(key, value);
89 public Map<ResourceKey, String> getLookupMap() {
90 return Collections.emptyMap();
94 public String getFlowToBeCalled() {
99 public int getCurrentSequence() {
103 public static String getTenantId() {
107 private GeneralBuildingBlock getGeneralBuildingBlockValue() {
108 final GeneralBuildingBlock buildingBlock = new GeneralBuildingBlock();
109 buildingBlock.setServiceInstance(getServiceInstance());
110 return buildingBlock;
113 private ExecuteBuildingBlock getExecuteBuildingBlock() {
114 ExecuteBuildingBlock executeBuildingBlock = new ExecuteBuildingBlock();
115 executeBuildingBlock.setRequestDetails(getRequestDetails());
116 return executeBuildingBlock;
119 private RequestDetails getRequestDetails() {
120 RequestDetails requestDetails = new RequestDetails();
121 requestDetails.setModelInfo(getModelInfo());
122 requestDetails.setCloudConfiguration(getCloudConfiguration());
123 requestDetails.setRequestInfo(getRequestInfo());
124 requestDetails.setRequestParameters(getRequestParameters());
125 return requestDetails;
128 private ModelInfo getModelInfo() {
129 ModelInfo modelInfo = new ModelInfo();
130 modelInfo.setModelVersionId(MODEL_VERSION_ID);
134 private ServiceInstance getServiceInstance() {
135 ServiceInstance serviceInstance = new ServiceInstance();
136 serviceInstance.setServiceInstanceId(SERVICE_INSTANCE_ID);
137 serviceInstance.setServiceInstanceName(SERVICE_INSTANCE_NAME);
138 return serviceInstance;
141 private RequestInfo getRequestInfo() {
142 RequestInfo requestInfo = new RequestInfo();
143 requestInfo.setInstanceName(INSTANCE_NAME);
147 private RequestParameters getRequestParameters() {
148 Map<String, Object> deploymentItemMap = new HashMap<>();
149 deploymentItemMap.put("deploymentItemsId", DEPLOYMENT_ID);
150 deploymentItemMap.put("lifecycleParameterKeyValues", new Object());
151 List<Object> deploymentItems = new ArrayList<>();
152 deploymentItems.add(deploymentItemMap);
153 Map<String, Object> userParamsMap = new HashMap<>();
154 userParamsMap.put("deploymentItems", deploymentItems);
155 userParamsMap.put("namespace", "default");
156 List<Map<String, Object>> userParams = new ArrayList<>();
157 userParams.add(userParamsMap);
158 RequestParameters requestParameters = new RequestParameters();
159 requestParameters.setUserParams(userParams);
160 return requestParameters;
163 private CloudConfiguration getCloudConfiguration() {
164 final CloudConfiguration cloudConfiguration = new CloudConfiguration();
165 cloudConfiguration.setCloudOwner(CLOUD_OWNER);
166 cloudConfiguration.setLcpCloudRegionId(LCP_CLOUD_REGION_ID);
167 cloudConfiguration.setTenantId(TENANT_ID);
168 return cloudConfiguration;