1 package org.onap.so.bpmn.infrastructure.validations;
3 import java.util.Optional;
4 import java.util.regex.Pattern;
6 import org.onap.so.bpmn.common.BuildingBlockExecution;
7 import org.onap.so.bpmn.common.validation.PreBuildingBlockValidator;
8 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
9 import org.onap.so.client.exception.ExceptionBuilder;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.stereotype.Component;
16 public class CloudRegionOrchestrationValidator implements PreBuildingBlockValidator {
18 private static Logger logger = LoggerFactory.getLogger(CloudRegionOrchestrationValidator.class);
19 private final Pattern pattern = Pattern.compile("(?:Activate|Assign|Create|Deactivate|Delete|Unassign|Update)(?:Network|Vnf|VfModule|VolumeGroup|FabricConfiguration)BB");
22 private ExceptionBuilder exceptionBuilder;
25 public boolean shouldRunFor(String bbName) {
26 return pattern.matcher(bbName).find();
30 public Optional<String> validate(BuildingBlockExecution execution) {
33 CloudRegion cloudRegion = execution.getGeneralBuildingBlock().getCloudRegion();
34 if (Boolean.TRUE.equals(cloudRegion.getOrchestrationDisabled())) {
35 msg = String.format("Error: The request has failed due to orchestration currently disabled for the target cloud region %s for cloud owner %s",
36 cloudRegion.getLcpCloudRegionId(), cloudRegion.getCloudOwner());
38 return Optional.ofNullable(msg);
42 logger.error("failed to validate", e);
43 exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e);
45 return Optional.empty();