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.common.validation.Skip;
9 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
10 import org.onap.so.client.exception.ExceptionBuilder;
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.stereotype.Component;
18 public class CloudRegionOrchestrationValidator implements PreBuildingBlockValidator {
20 private static Logger logger = LoggerFactory.getLogger(CloudRegionOrchestrationValidator.class);
21 private final Pattern pattern = Pattern.compile("(?:Activate|Assign|Create|Deactivate|Delete|Unassign|Update)(?:Network|Vnf|VfModule|VolumeGroup|FabricConfiguration)BB");
24 private ExceptionBuilder exceptionBuilder;
27 public boolean shouldRunFor(String bbName) {
28 return pattern.matcher(bbName).find();
32 public Optional<String> validate(BuildingBlockExecution execution) {
35 CloudRegion cloudRegion = execution.getGeneralBuildingBlock().getCloudRegion();
36 if (Boolean.TRUE.equals(cloudRegion.getOrchestrationDisabled())) {
37 msg = String.format("Error: The request has failed due to orchestration currently disabled for the target cloud region %s for cloud owner %s",
38 cloudRegion.getLcpCloudRegionId(), cloudRegion.getCloudOwner());
40 return Optional.ofNullable(msg);
44 logger.error("failed to validate", e);
45 exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e);
47 return Optional.empty();