2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.bpmn.infrastructure.flowspecific.tasks;
25 import java.util.Optional;
27 import org.onap.so.bpmn.common.BuildingBlockExecution;
28 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
29 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
30 import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
31 import org.onap.so.client.aai.entities.AAIResultWrapper;
32 import org.onap.so.client.exception.ExceptionBuilder;
33 import org.onap.so.client.orchestration.AAINetworkResources;
34 import org.slf4j.Logger;
35 import org.slf4j.LoggerFactory;
36 import org.springframework.beans.factory.annotation.Autowired;
37 import org.springframework.stereotype.Component;
40 public class UnassignNetworkBB {
42 private static final Logger logger = LoggerFactory.getLogger(UnassignNetworkBB.class);
44 private static String MESSAGE_CANNOT_PERFORM_UNASSIGN = "Cannot perform Unassign Network. Network is still related to ";
45 private static String MESSAGE_ERROR_ROLLBACK = " Rollback is not possible. Please restore data manually.";
48 private ExceptionBuilder exceptionUtil;
51 private NetworkBBUtils networkBBUtils;
54 private ExtractPojosForBB extractPojosForBB;
57 private AAINetworkResources aaiNetworkResources;
60 * BPMN access method to prepare overall error messages.
62 * @param execution - BuildingBlockExecution
63 * @param relatedToValue - String, ex: vf-module
64 * @return void - nothing
68 public void checkRelationshipRelatedTo(BuildingBlockExecution execution, String relatedToValue) throws Exception {
70 L3Network l3network = extractPojosForBB.extractByKey(execution, ResourceKey.NETWORK_ID);
71 AAIResultWrapper aaiResultWrapper = aaiNetworkResources.queryNetworkWrapperById(l3network);
72 Optional<org.onap.aai.domain.yang.L3Network> network = aaiResultWrapper.asBean(org.onap.aai.domain.yang.L3Network.class);
73 if (networkBBUtils.isRelationshipRelatedToExists(network, relatedToValue)) {
74 String msg = MESSAGE_CANNOT_PERFORM_UNASSIGN + relatedToValue;
75 execution.setVariable("ErrorUnassignNetworkBB", msg);
76 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg);
78 } catch (Exception ex) {
79 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
84 * BPMN access method to getCloudRegionId
86 * @param execution - BuildingBlockExecution
87 * @return void - nothing
91 public void getCloudSdncRegion(BuildingBlockExecution execution) throws Exception {
93 String cloudRegionSdnc = networkBBUtils.getCloudRegion(execution, SourceSystem.SDNC);
94 execution.setVariable("cloudRegionSdnc", cloudRegionSdnc);
95 } catch (Exception ex) {
96 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
101 * BPMN access method to prepare overall error messages.
103 * @param execution - BuildingBlockExecution
104 * @return void - nothing
106 public void errorEncountered(BuildingBlockExecution execution) {
108 boolean isRollbackNeeded = execution.getVariable("isRollbackNeeded") != null ? execution.getVariable("isRollbackNeeded") : false;
109 if (isRollbackNeeded == true) {
110 msg = execution.getVariable("ErrorUnassignNetworkBB") + MESSAGE_ERROR_ROLLBACK;
112 msg = execution.getVariable("ErrorUnassignNetworkBB");
114 exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg);