Skip to content
Snippets Groups Projects
Commit 8b8799ac authored by Lukasz Lopatowski's avatar Lukasz Lopatowski
Browse files

Updated cluster health check initialization mechanism to meet sonar recommendations

parent 11db3126
No related branches found
No related tags found
No related merge requests found
Pipeline #94072 passed
Showing
with 140 additions and 131 deletions
...@@ -79,6 +79,11 @@ ...@@ -79,6 +79,11 @@
<appender-ref ref="nmaas-console" /> <appender-ref ref="nmaas-console" />
</logger> </logger>
<logger name="io.netty" level="INFO" additivity="false">
<appender-ref ref="nmaas-file"/>
<appender-ref ref="nmaas-console"/>
</logger>
<root level="DEBUG"> <root level="DEBUG">
<appender-ref ref="nmaas-file" /> <appender-ref ref="nmaas-file" />
<appender-ref ref="nmaas-console" /> <appender-ref ref="nmaas-console" />
......
...@@ -16,6 +16,8 @@ import org.springframework.stereotype.Component; ...@@ -16,6 +16,8 @@ import org.springframework.stereotype.Component;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -34,8 +36,7 @@ public class AppConfigurationUpdateTask { ...@@ -34,8 +36,7 @@ public class AppConfigurationUpdateTask {
final AppDeploymentOwner appDeploymentOwner = repositoryManager.loadOwner(deploymentId); final AppDeploymentOwner appDeploymentOwner = repositoryManager.loadOwner(deploymentId);
configurationProvider.updateNmService(NmServiceDeployment.fromAppDeployment(appDeployment, appDeploymentOwner)); configurationProvider.updateNmService(NmServiceDeployment.fromAppDeployment(appDeployment, appDeploymentOwner));
} catch (Exception e) { } catch (Exception e) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), e);
log.error("Error reported at " + timestamp, e);
} }
} }
} }
...@@ -13,6 +13,8 @@ import org.springframework.context.ApplicationEventPublisher; ...@@ -13,6 +13,8 @@ import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
...@@ -32,8 +34,7 @@ public class AppConfigurationVerificationTask { ...@@ -32,8 +34,7 @@ public class AppConfigurationVerificationTask {
eventPublisher.publishEvent(new AppApplyConfigurationActionEvent(this, deploymentId)); eventPublisher.publishEvent(new AppApplyConfigurationActionEvent(this, deploymentId));
} }
} catch (Exception e) { } catch (Exception e) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), e);
log.error("Error reported at " + timestamp, e);
} }
} }
......
...@@ -11,6 +11,8 @@ import org.springframework.context.ApplicationEvent; ...@@ -11,6 +11,8 @@ import org.springframework.context.ApplicationEvent;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -26,8 +28,7 @@ public class AppDcnRemovalIfRequiredTask { ...@@ -26,8 +28,7 @@ public class AppDcnRemovalIfRequiredTask {
final String domain = appDeploymentRepositoryManager.loadDomain(deploymentId); final String domain = appDeploymentRepositoryManager.loadDomain(deploymentId);
//TODO: refactor method to check if the DCN can be automatically removed //TODO: refactor method to check if the DCN can be automatically removed
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
return null; return null;
} }
......
...@@ -16,6 +16,8 @@ import org.springframework.context.ApplicationEvent; ...@@ -16,6 +16,8 @@ import org.springframework.context.ApplicationEvent;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -48,8 +50,7 @@ public class AppDcnRequestOrVerificationTask { ...@@ -48,8 +50,7 @@ public class AppDcnRequestOrVerificationTask {
return noEvent(); return noEvent();
} }
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
return noEvent(); return noEvent();
} }
......
...@@ -11,6 +11,8 @@ import net.geant.nmaas.utils.logging.Loggable; ...@@ -11,6 +11,8 @@ import net.geant.nmaas.utils.logging.Loggable;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -26,8 +28,7 @@ public class AppEnvironmentPreparationTask { ...@@ -26,8 +28,7 @@ public class AppEnvironmentPreparationTask {
boolean configFileRepositoryRequired = repository.findByDeploymentId(event.getRelatedTo()).orElseThrow(InvalidDeploymentIdException::new).isConfigFileRepositoryRequired(); boolean configFileRepositoryRequired = repository.findByDeploymentId(event.getRelatedTo()).orElseThrow(InvalidDeploymentIdException::new).isConfigFileRepositoryRequired();
serviceDeployment.prepareDeploymentEnvironment(event.getRelatedTo(), configFileRepositoryRequired); serviceDeployment.prepareDeploymentEnvironment(event.getRelatedTo(), configFileRepositoryRequired);
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
} }
} }
...@@ -9,6 +9,8 @@ import net.geant.nmaas.utils.logging.Loggable; ...@@ -9,6 +9,8 @@ import net.geant.nmaas.utils.logging.Loggable;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -22,8 +24,7 @@ public class AppRemovalTask { ...@@ -22,8 +24,7 @@ public class AppRemovalTask {
try { try {
serviceDeployment.removeService(event.getRelatedTo()); serviceDeployment.removeService(event.getRelatedTo());
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
} }
......
...@@ -13,6 +13,8 @@ import org.springframework.context.ApplicationEventPublisher; ...@@ -13,6 +13,8 @@ import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -29,8 +31,7 @@ public class AppRemoveFailedActionTask { ...@@ -29,8 +31,7 @@ public class AppRemoveFailedActionTask {
this.serviceDeployment.removeService(event.getRelatedTo()); this.serviceDeployment.removeService(event.getRelatedTo());
this.configurationProvider.removeNmService(event.getRelatedTo()); this.configurationProvider.removeNmService(event.getRelatedTo());
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
Thread.sleep(1000); Thread.sleep(1000);
eventPublisher.publishEvent(new NmServiceDeploymentStateChangeEvent(this, event.getRelatedTo(), NmServiceDeploymentState.FAILED_APPLICATION_REMOVED, "")); eventPublisher.publishEvent(new NmServiceDeploymentStateChangeEvent(this, event.getRelatedTo(), NmServiceDeploymentState.FAILED_APPLICATION_REMOVED, ""));
......
...@@ -18,6 +18,8 @@ import org.springframework.stereotype.Component; ...@@ -18,6 +18,8 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
@Component @Component
@AllArgsConstructor @AllArgsConstructor
@Slf4j @Slf4j
...@@ -42,8 +44,7 @@ public class AppRequestVerificationTask { ...@@ -42,8 +44,7 @@ public class AppRequestVerificationTask {
appDeployment, appDeployment,
application.getAppDeploymentSpec()); application.getAppDeploymentSpec());
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at {}", timestamp, ex);
} }
} }
......
...@@ -9,6 +9,8 @@ import net.geant.nmaas.utils.logging.Loggable; ...@@ -9,6 +9,8 @@ import net.geant.nmaas.utils.logging.Loggable;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -22,8 +24,7 @@ public class AppRestartTask { ...@@ -22,8 +24,7 @@ public class AppRestartTask {
try { try {
serviceDeployment.restartService(event.getRelatedTo()); serviceDeployment.restartService(event.getRelatedTo());
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at {}", timestamp, ex);
} }
} }
......
...@@ -9,6 +9,8 @@ import net.geant.nmaas.utils.logging.Loggable; ...@@ -9,6 +9,8 @@ import net.geant.nmaas.utils.logging.Loggable;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -22,8 +24,7 @@ public class AppServiceDeploymentTask { ...@@ -22,8 +24,7 @@ public class AppServiceDeploymentTask {
try { try {
serviceDeployment.deployService(event.getRelatedTo()); serviceDeployment.deployService(event.getRelatedTo());
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
} }
......
...@@ -9,6 +9,8 @@ import net.geant.nmaas.utils.logging.Loggable; ...@@ -9,6 +9,8 @@ import net.geant.nmaas.utils.logging.Loggable;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
...@@ -22,8 +24,7 @@ public class AppServiceVerificationTask { ...@@ -22,8 +24,7 @@ public class AppServiceVerificationTask {
try { try {
serviceDeployment.verifyService(event.getRelatedTo()); serviceDeployment.verifyService(event.getRelatedTo());
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
} }
......
...@@ -25,6 +25,7 @@ import org.springframework.stereotype.Component; ...@@ -25,6 +25,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.Map; import java.util.Map;
...@@ -48,13 +49,8 @@ public class AppUpgradeTask { ...@@ -48,13 +49,8 @@ public class AppUpgradeTask {
public void trigger(AppUpgradeActionEvent event) { public void trigger(AppUpgradeActionEvent event) {
try { try {
final Identifier deploymentId = event.getRelatedTo(); final Identifier deploymentId = event.getRelatedTo();
final Application application = applicationService.findApplication(event.getApplicationId().longValue()).orElseThrow(() -> final Application application = applicationService.findApplication(event.getApplicationId().longValue()).orElseThrow(() -> new InvalidApplicationIdException("Application with id " + event.getApplicationId() + " does not exist"));
new InvalidApplicationIdException("Application with id " + event.getApplicationId() + " does not exist")); serviceDeployment.upgradeKubernetesService(deploymentId, event.getAppUpgradeMode(), event.getApplicationId(), application.getAppDeploymentSpec().getKubernetesTemplate());
serviceDeployment.upgradeKubernetesService(
deploymentId,
event.getAppUpgradeMode(),
event.getApplicationId(),
application.getAppDeploymentSpec().getKubernetesTemplate());
} catch (Exception ex) { } catch (Exception ex) {
logGenericError(ex); logGenericError(ex);
} }
...@@ -67,13 +63,7 @@ public class AppUpgradeTask { ...@@ -67,13 +63,7 @@ public class AppUpgradeTask {
try { try {
final Identifier deploymentId = event.getRelatedTo(); final Identifier deploymentId = event.getRelatedTo();
applicationInstanceService.updateApplication(deploymentId, event.getTargetApplicationId().longValue()); applicationInstanceService.updateApplication(deploymentId, event.getTargetApplicationId().longValue());
appUpgradeHistoryRepository.save(AppUpgradeHistory.builder() appUpgradeHistoryRepository.save(AppUpgradeHistory.builder().deploymentId(deploymentId).previousApplicationId(event.getPreviousApplicationId()).targetApplicationId(event.getTargetApplicationId()).mode(event.getAppUpgradeMode()).status(SUCCESS).timestamp(new Date()).build());
.deploymentId(deploymentId)
.previousApplicationId(event.getPreviousApplicationId())
.targetApplicationId(event.getTargetApplicationId())
.mode(event.getAppUpgradeMode())
.status(SUCCESS)
.timestamp(new Date()).build());
sendAppUpgradeNotificationEmail(deploymentId, event.getPreviousApplicationId()); sendAppUpgradeNotificationEmail(deploymentId, event.getPreviousApplicationId());
} catch (Exception ex) { } catch (Exception ex) {
logGenericError(ex); logGenericError(ex);
...@@ -86,39 +76,21 @@ public class AppUpgradeTask { ...@@ -86,39 +76,21 @@ public class AppUpgradeTask {
public void trigger(AppUpgradeFailedEvent event) { public void trigger(AppUpgradeFailedEvent event) {
try { try {
final Identifier deploymentId = event.getRelatedTo(); final Identifier deploymentId = event.getRelatedTo();
appUpgradeHistoryRepository.save(AppUpgradeHistory.builder() appUpgradeHistoryRepository.save(AppUpgradeHistory.builder().deploymentId(deploymentId).previousApplicationId(event.getPreviousApplicationId()).targetApplicationId(event.getTargetApplicationId()).mode(event.getAppUpgradeMode()).status(FAILURE).timestamp(new Date()).build());
.deploymentId(deploymentId)
.previousApplicationId(event.getPreviousApplicationId())
.targetApplicationId(event.getTargetApplicationId())
.mode(event.getAppUpgradeMode())
.status(FAILURE)
.timestamp(new Date()).build());
} catch (Exception ex) { } catch (Exception ex) {
logGenericError(ex); logGenericError(ex);
} }
} }
private void sendAppUpgradeNotificationEmail(Identifier deploymentId, Identifier previousApplicationId) { private void sendAppUpgradeNotificationEmail(Identifier deploymentId, Identifier previousApplicationId) {
final AppInstance appInstance = applicationInstanceService.findByInternalId(deploymentId).orElseThrow(() -> final AppInstance appInstance = applicationInstanceService.findByInternalId(deploymentId).orElseThrow(() -> new InvalidApplicationIdException("Application instance with id " + deploymentId.getValue() + " does not exist"));
new InvalidApplicationIdException("Application instance with id " + deploymentId.getValue() + " does not exist")); final Application previousApplication = applicationService.findApplication(previousApplicationId.longValue()).orElseThrow(() -> new InvalidApplicationIdException("Application with id " + previousApplicationId.getValue() + " does not exist"));
final Application previousApplication = applicationService.findApplication(previousApplicationId.longValue()).orElseThrow(() -> MailAttributes attributes = MailAttributes.builder().otherAttributes(Map.of("domainName", appInstance.getDomain().getName(), "owner", appInstance.getOwner().getUsername(), "appInstanceName", appInstance.getName(), "appName", appInstance.getApplication().getName(), "appVersion", appInstance.getApplication().getVersion(), "appVersionPrevious", previousApplication.getVersion())).mailType(MailType.APP_UPGRADED).build();
new InvalidApplicationIdException("Application with id " + previousApplicationId.getValue() + " does not exist"));
MailAttributes attributes = MailAttributes.builder()
.otherAttributes(Map.of(
"domainName", appInstance.getDomain().getName(),
"owner", appInstance.getOwner().getUsername(),
"appInstanceName", appInstance.getName(),
"appName", appInstance.getApplication().getName(),
"appVersion", appInstance.getApplication().getVersion(),
"appVersionPrevious", previousApplication.getVersion()
))
.mailType(MailType.APP_UPGRADED)
.build();
eventPublisher.publishEvent(new NotificationEvent(this, attributes)); eventPublisher.publishEvent(new NotificationEvent(this, attributes));
} }
private void logGenericError(Exception ex) { private void logGenericError(Exception ex) {
log.error("Error reported at " + System.currentTimeMillis(), ex); log.error("Error reported at {}", LocalDateTime.now(), ex);
} }
} }
package net.geant.nmaas.orchestration.tasks.dcn; package net.geant.nmaas.orchestration.tasks.dcn;
import lombok.RequiredArgsConstructor;
import net.geant.nmaas.dcn.deployment.DcnDeploymentProvidersManager; import net.geant.nmaas.dcn.deployment.DcnDeploymentProvidersManager;
import org.springframework.beans.factory.annotation.Autowired;
@RequiredArgsConstructor
abstract class BaseDcnTask { abstract class BaseDcnTask {
@Autowired protected final DcnDeploymentProvidersManager providersManager;
DcnDeploymentProvidersManager providersManager;
} }
package net.geant.nmaas.orchestration.tasks.dcn; package net.geant.nmaas.orchestration.tasks.dcn;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.geant.nmaas.dcn.deployment.DcnDeploymentProvidersManager;
import net.geant.nmaas.orchestration.events.dcn.DcnDeployActionEvent; import net.geant.nmaas.orchestration.events.dcn.DcnDeployActionEvent;
import net.geant.nmaas.utils.logging.LogLevel; import net.geant.nmaas.utils.logging.LogLevel;
import net.geant.nmaas.utils.logging.Loggable; import net.geant.nmaas.utils.logging.Loggable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@Slf4j @Slf4j
public class DcnDeploymentTask extends BaseDcnTask { public class DcnDeploymentTask extends BaseDcnTask {
@Autowired
public DcnDeploymentTask(DcnDeploymentProvidersManager providersManager) {
super(providersManager);
}
@EventListener @EventListener
@Loggable(LogLevel.INFO) @Loggable(LogLevel.INFO)
public void trigger(DcnDeployActionEvent event) { public void trigger(DcnDeployActionEvent event) {
...@@ -18,8 +27,7 @@ public class DcnDeploymentTask extends BaseDcnTask { ...@@ -18,8 +27,7 @@ public class DcnDeploymentTask extends BaseDcnTask {
final String domain = event.getRelatedTo(); final String domain = event.getRelatedTo();
providersManager.getDcnDeploymentProvider(domain).deployDcn(domain); providersManager.getDcnDeploymentProvider(domain).deployDcn(domain);
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
} }
......
package net.geant.nmaas.orchestration.tasks.dcn; package net.geant.nmaas.orchestration.tasks.dcn;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.geant.nmaas.dcn.deployment.DcnDeploymentProvidersManager;
import net.geant.nmaas.orchestration.events.dcn.DcnRemoveActionEvent; import net.geant.nmaas.orchestration.events.dcn.DcnRemoveActionEvent;
import net.geant.nmaas.utils.logging.LogLevel; import net.geant.nmaas.utils.logging.LogLevel;
import net.geant.nmaas.utils.logging.Loggable; import net.geant.nmaas.utils.logging.Loggable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@Slf4j @Slf4j
public class DcnRemovalTask extends BaseDcnTask { public class DcnRemovalTask extends BaseDcnTask {
@Autowired
public DcnRemovalTask(DcnDeploymentProvidersManager providersManager) {
super(providersManager);
}
@EventListener @EventListener
@Loggable(LogLevel.INFO) @Loggable(LogLevel.INFO)
public void trigger(DcnRemoveActionEvent event) { public void trigger(DcnRemoveActionEvent event) {
...@@ -18,8 +27,7 @@ public class DcnRemovalTask extends BaseDcnTask { ...@@ -18,8 +27,7 @@ public class DcnRemovalTask extends BaseDcnTask {
final String domain = event.getRelatedTo(); final String domain = event.getRelatedTo();
providersManager.getDcnDeploymentProvider(domain).removeDcn(domain); providersManager.getDcnDeploymentProvider(domain).removeDcn(domain);
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
} }
......
package net.geant.nmaas.orchestration.tasks.dcn; package net.geant.nmaas.orchestration.tasks.dcn;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.geant.nmaas.dcn.deployment.DcnDeploymentProvidersManager;
import net.geant.nmaas.dcn.deployment.entities.DcnSpec; import net.geant.nmaas.dcn.deployment.entities.DcnSpec;
import net.geant.nmaas.dcn.deployment.entities.DomainDcnDetails; import net.geant.nmaas.dcn.deployment.entities.DomainDcnDetails;
import net.geant.nmaas.dcn.deployment.repositories.DomainDcnDetailsRepository; import net.geant.nmaas.dcn.deployment.repositories.DomainDcnDetailsRepository;
...@@ -13,14 +14,17 @@ import org.springframework.stereotype.Component; ...@@ -13,14 +14,17 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
@Component @Component
@Slf4j @Slf4j
public class DcnRequestVerificationTask extends BaseDcnTask { public class DcnRequestVerificationTask extends BaseDcnTask {
private DomainDcnDetailsRepository repository; private final DomainDcnDetailsRepository repository;
@Autowired @Autowired
public DcnRequestVerificationTask(DomainDcnDetailsRepository repository) { public DcnRequestVerificationTask(DcnDeploymentProvidersManager providersManager, DomainDcnDetailsRepository repository) {
super(providersManager);
this.repository = repository; this.repository = repository;
} }
...@@ -32,8 +36,7 @@ public class DcnRequestVerificationTask extends BaseDcnTask { ...@@ -32,8 +36,7 @@ public class DcnRequestVerificationTask extends BaseDcnTask {
final String domain = event.getRelatedTo(); final String domain = event.getRelatedTo();
providersManager.getDcnDeploymentProvider(domain).verifyRequest(domain, constructDcnSpec(domain)); providersManager.getDcnDeploymentProvider(domain).verifyRequest(domain, constructDcnSpec(domain));
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
} }
......
package net.geant.nmaas.orchestration.tasks.dcn; package net.geant.nmaas.orchestration.tasks.dcn;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.geant.nmaas.dcn.deployment.DcnDeploymentProvidersManager;
import net.geant.nmaas.orchestration.events.dcn.DcnVerifyActionEvent; import net.geant.nmaas.orchestration.events.dcn.DcnVerifyActionEvent;
import net.geant.nmaas.utils.logging.LogLevel; import net.geant.nmaas.utils.logging.LogLevel;
import net.geant.nmaas.utils.logging.Loggable; import net.geant.nmaas.utils.logging.Loggable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component @Component
@Slf4j @Slf4j
public class DcnVerificationTask extends BaseDcnTask { public class DcnVerificationTask extends BaseDcnTask {
@Autowired
public DcnVerificationTask(DcnDeploymentProvidersManager providersManager) {
super(providersManager);
}
@EventListener @EventListener
@Loggable(LogLevel.INFO) @Loggable(LogLevel.INFO)
public void trigger(DcnVerifyActionEvent event) { public void trigger(DcnVerifyActionEvent event) {
...@@ -18,8 +27,7 @@ public class DcnVerificationTask extends BaseDcnTask { ...@@ -18,8 +27,7 @@ public class DcnVerificationTask extends BaseDcnTask {
final String domain = event.getRelatedTo(); final String domain = event.getRelatedTo();
providersManager.getDcnDeploymentProvider(domain).verifyDcn(domain); providersManager.getDcnDeploymentProvider(domain).verifyDcn(domain);
} catch (Exception ex) { } catch (Exception ex) {
long timestamp = System.currentTimeMillis(); log.error("Error reported at {}", LocalDateTime.now(), ex);
log.error("Error reported at " + timestamp, ex);
} }
} }
} }
\ No newline at end of file
package net.geant.nmaas.scheduling;
import com.google.common.base.Strings;
import lombok.extern.slf4j.Slf4j;
import net.geant.nmaas.externalservices.kubernetes.ClusterMonitoringJob;
import net.geant.nmaas.nmservice.deployment.bulks.BulkDeploymentJob;
import net.geant.nmaas.portal.service.ConfigurationManager;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.transaction.annotation.Transactional;
@Configuration
@Slf4j
public class ClusterHealthCheckConfig {
public static final String CLUSTER_HEALTH_CHECK = "ClusterHealthCheck";
@Bean
@DependsOn({"portalConfiguration"})
public InitializingBean insertDefaultClusterHealthCheck() {
return new InitializingBean() {
@Autowired
private ClusterMonitoringJob clusterMonitoringJob;
@Autowired
private ScheduleManager scheduleManager;
@Autowired
private ConfigurationManager configurationManager;
@Value("${nmaas.service.health-check.cron}")
String healthCheckJobCron;
@Override
@Transactional
public void afterPropertiesSet() {
String healthCheckJobCronDb = configurationManager.getConfiguration().getHealthCheckJobCron();
if (!Strings.isNullOrEmpty(healthCheckJobCronDb)) {
log.debug("Scheduling cluster health check job based on cron loaded from the database");
this.scheduleManager.createJob(clusterMonitoringJob, CLUSTER_HEALTH_CHECK, healthCheckJobCron);
log.error("Adding new job for health check cluster ...");
} else if (Strings.isNullOrEmpty(healthCheckJobCron)) {
log.warn("Bulk deployment cron expression not provided");
} else {
this.scheduleManager.createJob(clusterMonitoringJob, CLUSTER_HEALTH_CHECK, healthCheckJobCron);
log.error("Adding new job for health check cluster ...");
}
}
};
}
}
package net.geant.nmaas.scheduling;
import com.google.common.base.Strings;
import lombok.extern.slf4j.Slf4j;
import net.geant.nmaas.externalservices.kubernetes.ClusterMonitoringJob;
import net.geant.nmaas.portal.service.ConfigurationManager;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@Component
@DependsOn({"portalConfiguration"})
@Slf4j
public class ClusterHealthCheckInit implements InitializingBean {
public static final String CLUSTER_HEALTH_CHECK = "ClusterHealthCheck";
private final ClusterMonitoringJob clusterMonitoringJob;
private final ScheduleManager scheduleManager;
private final ConfigurationManager configurationManager;
private final String healthCheckJobCron;
@Autowired
public ClusterHealthCheckInit(ClusterMonitoringJob clusterMonitoringJob,
ScheduleManager scheduleManager,
ConfigurationManager configurationManager,
@Value("${nmaas.service.health-check.cron}") String healthCheckJobCron) {
this.clusterMonitoringJob = clusterMonitoringJob;
this.scheduleManager = scheduleManager;
this.configurationManager = configurationManager;
this.healthCheckJobCron = healthCheckJobCron;
}
@Override
@Transactional
public void afterPropertiesSet() {
final String healthCheckJobCronFromDb = configurationManager.getConfiguration().getHealthCheckJobCron();
if (!Strings.isNullOrEmpty(healthCheckJobCronFromDb)) {
log.debug("Scheduling cluster health check job based on cron loaded from the database");
this.scheduleManager.createJob(clusterMonitoringJob, CLUSTER_HEALTH_CHECK, healthCheckJobCronFromDb);
log.error("Adding new job for health check cluster ...");
} else if (Strings.isNullOrEmpty(healthCheckJobCron)) {
log.warn("Cluster health check cron expression not provided");
} else {
log.debug("Scheduling cluster health check job based on cron loaded from properties");
this.scheduleManager.createJob(clusterMonitoringJob, CLUSTER_HEALTH_CHECK, healthCheckJobCron);
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment