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.jetbrains.kotlin.codegen.intrinsics.LateinitIsInitialized;
31 import org.onap.so.bpmn.common.BuildingBlockExecution;
32 import org.onap.so.bpmn.common.exceptions.RequiredExecutionVariableExeception;
33 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
34 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
35 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
36 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
37 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
38 import org.onap.so.serviceinstancebeans.CloudConfiguration;
39 import org.onap.so.serviceinstancebeans.ModelInfo;
40 import org.onap.so.serviceinstancebeans.RequestDetails;
41 import org.onap.so.serviceinstancebeans.RequestInfo;
42 import org.onap.so.serviceinstancebeans.RequestParameters;
46 * @author Raviteja Karumuri (raviteja.karumuri@est.tech)
49 public class StubbedBuildingBlockExecution implements BuildingBlockExecution {
51 private static final String CLOUD_OWNER = "CloudOwner";
52 private static final String BUILDING_BLOCK = "buildingBlock";
53 private static final String LCP_CLOUD_REGION_ID = "RegionOne";
54 private static final String MODEL_VERSION_ID = UUID.randomUUID().toString();
55 private static final String SERVICE_INSTANCE_ID = UUID.randomUUID().toString();
56 private static final String DEPLOYMENT_ID = UUID.randomUUID().toString();
57 private static final String SERVICE_INSTANCE_NAME = "test";
58 private static final String INSTANCE_NAME = "instanceTest";
59 private static final String TENANT_ID = UUID.randomUUID().toString();
60 private final Map<String, Serializable> execution = new HashMap<>();
61 private final GeneralBuildingBlock generalBuildingBlock;
63 StubbedBuildingBlockExecution() {
65 generalBuildingBlock = getGeneralBuildingBlockValue();
66 setVariable(BUILDING_BLOCK, getExecuteBuildingBlock());
70 public GeneralBuildingBlock getGeneralBuildingBlock() {
71 return generalBuildingBlock;
74 @SuppressWarnings("unchecked")
76 public <T> T getVariable(final String key) {
77 return (T) execution.get(key);
81 public <T> T getRequiredVariable(final String key) throws RequiredExecutionVariableExeception {
86 public void setVariable(final String key, final Serializable value) {
87 execution.put(key, value);
91 public Map<ResourceKey, String> getLookupMap() {
92 return Collections.emptyMap();
96 public String getFlowToBeCalled() {
101 public int getCurrentSequence() {
105 public static String getTenantId() {
109 private GeneralBuildingBlock getGeneralBuildingBlockValue() {
110 final GeneralBuildingBlock buildingBlock = new GeneralBuildingBlock();
111 buildingBlock.setServiceInstance(getServiceInstance());
112 return buildingBlock;
115 private ExecuteBuildingBlock getExecuteBuildingBlock() {
116 ExecuteBuildingBlock executeBuildingBlock = new ExecuteBuildingBlock();
117 executeBuildingBlock.setRequestDetails(getRequestDetails());
118 return executeBuildingBlock;
121 private RequestDetails getRequestDetails() {
122 RequestDetails requestDetails = new RequestDetails();
123 requestDetails.setModelInfo(getModelInfo());
124 requestDetails.setCloudConfiguration(getCloudConfiguration());
125 requestDetails.setRequestInfo(getRequestInfo());
126 requestDetails.setRequestParameters(getRequestParameters());
127 return requestDetails;
130 private ModelInfo getModelInfo() {
131 ModelInfo modelInfo = new ModelInfo();
132 modelInfo.setModelVersionId(MODEL_VERSION_ID);
136 private ServiceInstance getServiceInstance() {
137 ServiceInstance serviceInstance = new ServiceInstance();
138 serviceInstance.setServiceInstanceId(SERVICE_INSTANCE_ID);
139 serviceInstance.setServiceInstanceName(SERVICE_INSTANCE_NAME);
140 return serviceInstance;
143 private RequestInfo getRequestInfo() {
144 RequestInfo requestInfo = new RequestInfo();
145 requestInfo.setInstanceName(INSTANCE_NAME);
149 private RequestParameters getRequestParameters() {
150 Map<String, Object> deploymentItemMap = new HashMap<>();
151 deploymentItemMap.put("deploymentItemsId", DEPLOYMENT_ID);
152 deploymentItemMap.put("lifecycleParameterKeyValues", new Object());
153 List<Object> deploymentItems = new ArrayList<>();
154 deploymentItems.add(deploymentItemMap);
155 Map<String, Object> userParamsMap = new HashMap<>();
156 userParamsMap.put("deploymentItems", deploymentItems);
157 userParamsMap.put("namespace", "Namespace");
158 List<Map<String, Object>> userParams = new ArrayList<>();
159 userParams.add(userParamsMap);
160 RequestParameters requestParameters = new RequestParameters();
161 requestParameters.setUserParams(userParams);
162 return requestParameters;
165 private CloudConfiguration getCloudConfiguration() {
166 final CloudConfiguration cloudConfiguration = new CloudConfiguration();
167 cloudConfiguration.setCloudOwner(CLOUD_OWNER);
168 cloudConfiguration.setLcpCloudRegionId(LCP_CLOUD_REGION_ID);
169 cloudConfiguration.setTenantId(TENANT_ID);
170 return cloudConfiguration;