diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngine.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngine.java | 57 |
1 files changed, 41 insertions, 16 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngine.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngine.java index 0adf93f365..97d2440c11 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngine.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngine.java @@ -34,10 +34,11 @@ import org.apache.http.HttpStatus; import org.openecomp.sdc.be.components.distribution.engine.IDmaapNotificationData.DmaapActionEnum; import org.openecomp.sdc.be.components.distribution.engine.IDmaapNotificationData.OperationaEnvironmentTypeEnum; import org.openecomp.sdc.be.components.distribution.engine.report.DistributionCompleteReporter; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.config.DistributionEngineConfiguration; import org.openecomp.sdc.be.config.DmaapConsumerConfiguration; -import org.openecomp.sdc.be.config.DmeConfiguration; +import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; import org.openecomp.sdc.be.dao.cassandra.OperationalEnvironmentDao; import org.openecomp.sdc.be.datatypes.enums.EnvironmentStatusEnum; @@ -47,17 +48,25 @@ import org.openecomp.sdc.be.resources.data.OperationalEnvironmentEntry; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.common.datastructure.Wrapper; import org.openecomp.sdc.common.http.client.api.HttpResponse; +import org.openecomp.sdc.common.log.elements.LogFieldsMdcHandler; import org.openecomp.sdc.common.log.wrappers.Logger; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collectors; import static org.apache.commons.lang3.StringUtils.isEmpty; +import static org.glassfish.jersey.internal.guava.Predicates.not; import static org.openecomp.sdc.common.datastructure.FunctionalInterfaces.runMethodWithTimeOut; /** @@ -69,6 +78,7 @@ public class EnvironmentsEngine implements INotificationHandler { private static final String MESSAGE_BUS = "MessageBus"; private static final String UNKNOWN = "Unknown"; private static final Logger log = Logger.getLogger(EnvironmentsEngine.class.getName()); + private static final String LOG_PARTNER_NAME = "SDC.BE"; private ConfigurationManager configurationManager = ConfigurationManager.getConfigurationManager(); private Map<String, OperationalEnvironmentEntry> environments = new HashMap<>(); @@ -84,6 +94,7 @@ public class EnvironmentsEngine implements INotificationHandler { private final CambriaHandler cambriaHandler; private final DistributionEngineClusterHealth distributionEngineClusterHealth; private final DistributionCompleteReporter distributionCompleteReporter; + private static LogFieldsMdcHandler mdcFieldsHandler = new LogFieldsMdcHandler(); public EnvironmentsEngine(DmaapConsumer dmaapConsumer, OperationalEnvironmentDao operationalEnvironmentDao, DME2EndpointIteratorCreator epIterCreator, AaiRequestHandler aaiRequestHandler, ComponentsUtils componentUtils, CambriaHandler cambriaHandler, DistributionEngineClusterHealth distributionEngineClusterHealth, DistributionCompleteReporter distributionCompleteReporter) { this.dmaapConsumer = dmaapConsumer; @@ -100,6 +111,7 @@ public class EnvironmentsEngine implements INotificationHandler { @PostConstruct void init() { try { + mdcFieldsHandler.addInfoForErrorAndDebugLogging(LOG_PARTNER_NAME); environments = populateEnvironments(); createUebTopicsForEnvironments(); initDmeGlobalConfig(); @@ -121,9 +133,9 @@ public class EnvironmentsEngine implements INotificationHandler { log.warn("cannot read dmaap configuration file,DME might not be initialized properly"); return; } - System.setProperty("AFT_ENVIRONMENT", dmaapConsumerParams.getEnvironment()); // AFTPRD for production - System.setProperty("AFT_LATITUDE", dmaapConsumerParams.getLatitude()!=null ? dmaapConsumerParams.getLatitude().toString() : "1.0"); // Replace with actual latitude - System.setProperty("AFT_LONGITUDE", dmaapConsumerParams.getLongitude()!=null ? dmaapConsumerParams.getLongitude().toString() : "1.0"); // Replace with actual longitude + System.setProperty("AFT_ENVIRONMENT", dmaapConsumerParams.getAftEnvironment()); // AFTPRD for production + System.setProperty("AFT_LATITUDE", dmaapConsumerParams.getLatitude() != null ? dmaapConsumerParams.getLatitude().toString() : "1.0"); // Replace with actual latitude + System.setProperty("AFT_LONGITUDE", dmaapConsumerParams.getLongitude() != null ? dmaapConsumerParams.getLongitude().toString() : "1.0"); // Replace with actual longitude } public void connectUebTopicTenantIsolation(OperationalEnvironmentEntry opEnvEntry, @@ -233,7 +245,7 @@ public class EnvironmentsEngine implements INotificationHandler { } } catch (Exception e) { - log.debug("handle message for operational environmet failed for notification: {} with error :{}", + log.debug("handle message for operational environment failed for notification: {} with error :{}", notification, e.getMessage(), e); errorWrapper.setInnerElement(false); @@ -307,19 +319,20 @@ public class EnvironmentsEngine implements INotificationHandler { void retrieveUebAddressesFromAftDme(Wrapper<Boolean> errorWrapper, OperationalEnvironmentEntry opEnvEntry) { log.debug("handle message - Get List Of UEB Addresses From AFT_DME"); + log.invoke(opEnvEntry.getEnvironmentId(), "retrieveUebAddressesFromAftDme", opEnvEntry.getStatus(), EnvironmentsEngine.class.getName(), errorWrapper.toString() ); try { boolean isKeyFieldsValid = !isEmpty(opEnvEntry.getTenant()) && !isEmpty(opEnvEntry.getEcompWorkloadContext()); if (isKeyFieldsValid) { String opEnvKey = map2OpEnvKey(opEnvEntry); - String environmentId = opEnvEntry.getEnvironmentId(); - List<String> uebHosts = discoverUebHosts(opEnvKey, environmentId); + List<String> uebHosts = discoverUebHosts(opEnvKey); opEnvEntry.setDmaapUebAddress(uebHosts.stream().collect(Collectors.toSet())); + log.invokeReturn(opEnvEntry.getEnvironmentId(), "retrieveUebAddressesFromAftDme", opEnvEntry.getStatus(), "SDC-BE", errorWrapper.toString() ); } else { errorWrapper.setInnerElement(false); log.debug("Can Not Build AFT DME Key from workLoad & Tenant Fields."); } - } catch (DME2Exception e) { + } catch (Exception e) { errorWrapper.setInnerElement(false); log.error("Failed to retrieve Ueb Addresses From DME. ", e); } @@ -425,14 +438,14 @@ public class EnvironmentsEngine implements INotificationHandler { } } - public List<String> discoverUebHosts(String opEnvKey, String env) throws DME2Exception { - DmeConfiguration dmeConfiguration = configurationManager.getConfiguration().getDmeConfiguration(); - List<String> uebHosts = new LinkedList<>(); + public List<String> discoverUebHosts(String opEnvKey) throws DME2Exception { + String lookupUriFormat = configurationManager.getConfiguration().getDmeConfiguration().getLookupUriFormat(); + String environment = configurationManager.getConfiguration().getDmaapConsumerConfiguration().getEnvironment(); + String lookupURI = String.format(lookupUriFormat, opEnvKey, environment); + log.debug("DME2 GRM URI: {}", lookupURI); - String lookupURI = String.format("http://%s/service=%s/version=1.0.0/envContext=%s/partner=*", dmeConfiguration.getDme2Search(), opEnvKey, - env); + List<String> uebHosts = new LinkedList<>(); DME2EndpointIterator iterator = epIterCreator.create(lookupURI); - // Beginning iteration while (iterator.hasNext()) { DME2EndpointReference ref = iterator.next(); @@ -469,6 +482,7 @@ public class EnvironmentsEngine implements INotificationHandler { String envName = distributionEngineConfiguration.getEnvironments().size() == 1 ? distributionEngineConfiguration.getEnvironments().get(0) : UNKNOWN; entry.setEnvironmentId(envName); + entry.setIsProduction(true); if (log.isDebugEnabled()) { log.debug("Enviroment read from configuration: {}", entry); @@ -494,7 +508,9 @@ public class EnvironmentsEngine implements INotificationHandler { } void createUebTopicsForEnvironments() { - environments.values().forEach(this::createUebTopicsForEnvironment); + environments.values().stream() + .filter(not(OperationalEnvironmentEntry::getIsProduction)) + .forEach(this::createUebTopicsForEnvironment); } public void createUebTopicsForEnvironment(OperationalEnvironmentEntry opEnvEntry) { @@ -515,6 +531,15 @@ public class EnvironmentsEngine implements INotificationHandler { return environments; } + public OperationalEnvironmentEntry getEnvironmentByDmaapUebAddress(List<String> dmaapUebAddress) { + return environments.values().stream() + .filter(e -> e.getDmaapUebAddress().stream() + .filter(dmaapUebAddress::contains).findAny().isPresent()) + .findFirst() + .orElseThrow(() -> new ByActionStatusComponentException(ActionStatus.DISTRIBUTION_ENV_DOES_NOT_EXIST,dmaapUebAddress.toString())); + } + + public Either<OperationalEnvInfo, Integer> getOperationalEnvById(String id) { HttpResponse<String> resp = aaiRequestHandler.getOperationalEnvById(id); |