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

Removed unnecessary nested transaction

parent 3cfec247
Branches
Tags
1 merge request!123Develop
Pipeline #92140 passed
...@@ -49,6 +49,7 @@ public class OrchestratorManagerControllerIntTest { ...@@ -49,6 +49,7 @@ public class OrchestratorManagerControllerIntTest {
private static final String DOMAIN = "domain"; private static final String DOMAIN = "domain";
private static final String DEPLOYMENT_NAME = "deploymentName"; private static final String DEPLOYMENT_NAME = "deploymentName";
private Identifier applicationId; private Identifier applicationId;
private Identifier deploymentId; private Identifier deploymentId;
private AppConfiguration appConfiguration; private AppConfiguration appConfiguration;
......
...@@ -17,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -17,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import static net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.entities.ServiceStorageVolumeType.MAIN; import static net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.entities.ServiceStorageVolumeType.MAIN;
import static net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.entities.ServiceStorageVolumeType.SHARED; import static net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.entities.ServiceStorageVolumeType.SHARED;
...@@ -38,7 +37,7 @@ public class KubernetesRepositoryManager extends NmServiceRepositoryManager<Kube ...@@ -38,7 +37,7 @@ public class KubernetesRepositoryManager extends NmServiceRepositoryManager<Kube
KubernetesNmServiceInfo serviceInfo = loadService(deploymentId); KubernetesNmServiceInfo serviceInfo = loadService(deploymentId);
List<ServiceStorageVolume> storageVolumes = serviceInfo.getStorageVolumes().stream() List<ServiceStorageVolume> storageVolumes = serviceInfo.getStorageVolumes().stream()
.filter(v -> Arrays.asList(MAIN, SHARED).contains(v.getType())) .filter(v -> Arrays.asList(MAIN, SHARED).contains(v.getType()))
.collect(Collectors.toList()); .toList();
storageVolumes.forEach(v -> { storageVolumes.forEach(v -> {
v.setSize(storageSpace); v.setSize(storageSpace);
storageVolumeRepository.save(v); storageVolumeRepository.save(v);
......
package net.geant.nmaas.orchestration; package net.geant.nmaas.orchestration;
import io.micrometer.core.instrument.util.StringUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import net.geant.nmaas.orchestration.entities.AppDeployment; import net.geant.nmaas.orchestration.entities.AppDeployment;
import net.geant.nmaas.orchestration.entities.AppDeploymentHistory; import net.geant.nmaas.orchestration.entities.AppDeploymentHistory;
...@@ -13,6 +12,7 @@ import net.geant.nmaas.portal.persistent.entity.SSHKeyEntity; ...@@ -13,6 +12,7 @@ import net.geant.nmaas.portal.persistent.entity.SSHKeyEntity;
import net.geant.nmaas.portal.persistent.entity.User; import net.geant.nmaas.portal.persistent.entity.User;
import net.geant.nmaas.portal.persistent.repositories.SSHKeyRepository; import net.geant.nmaas.portal.persistent.repositories.SSHKeyRepository;
import net.geant.nmaas.portal.persistent.repositories.UserRepository; import net.geant.nmaas.portal.persistent.repositories.UserRepository;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -35,7 +35,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos ...@@ -35,7 +35,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos
@Override @Override
@Transactional(propagation = Propagation.REQUIRES_NEW) @Transactional(propagation = Propagation.REQUIRES_NEW)
public void store(AppDeployment appDeployment) { public void store(AppDeployment appDeployment) {
if(repository.findByDeploymentId(appDeployment.getDeploymentId()).isPresent()) { if (repository.findByDeploymentId(appDeployment.getDeploymentId()).isPresent()) {
throw new InvalidDeploymentIdException("Deployment with id " + appDeployment.getDeploymentId() + " already exists in the repository."); throw new InvalidDeploymentIdException("Deployment with id " + appDeployment.getDeploymentId() + " already exists in the repository.");
} }
appDeployment.addChangeOfStateToHistory(null, appDeployment.getState()); appDeployment.addChangeOfStateToHistory(null, appDeployment.getState());
...@@ -43,7 +43,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos ...@@ -43,7 +43,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos
} }
@Override @Override
@Transactional(propagation = Propagation.REQUIRES_NEW) //@Transactional(propagation = Propagation.REQUIRES_NEW)
public void update(AppDeployment appDeployment) { public void update(AppDeployment appDeployment) {
repository.save(appDeployment); repository.save(appDeployment);
} }
...@@ -141,7 +141,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos ...@@ -141,7 +141,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos
} }
@Override @Override
public List<AppDeploymentHistory> loadStateHistory(Identifier deploymentId){ public List<AppDeploymentHistory> loadStateHistory(Identifier deploymentId) {
return load(deploymentId).getHistory(); return load(deploymentId).getHistory();
} }
......
...@@ -13,13 +13,7 @@ import net.geant.nmaas.orchestration.api.model.AppConfigurationView; ...@@ -13,13 +13,7 @@ import net.geant.nmaas.orchestration.api.model.AppConfigurationView;
import net.geant.nmaas.orchestration.entities.AppConfiguration; import net.geant.nmaas.orchestration.entities.AppConfiguration;
import net.geant.nmaas.orchestration.entities.AppDeployment; import net.geant.nmaas.orchestration.entities.AppDeployment;
import net.geant.nmaas.orchestration.entities.AppDeploymentState; import net.geant.nmaas.orchestration.entities.AppDeploymentState;
import net.geant.nmaas.orchestration.events.app.AppApplyConfigurationActionEvent; import net.geant.nmaas.orchestration.events.app.*;
import net.geant.nmaas.orchestration.events.app.AppRemoveActionEvent;
import net.geant.nmaas.orchestration.events.app.AppRemoveFailedActionEvent;
import net.geant.nmaas.orchestration.events.app.AppRestartActionEvent;
import net.geant.nmaas.orchestration.events.app.AppUpgradeActionEvent;
import net.geant.nmaas.orchestration.events.app.AppVerifyRequestActionEvent;
import net.geant.nmaas.orchestration.events.app.AppVerifyServiceActionEvent;
import net.geant.nmaas.orchestration.exceptions.InvalidDeploymentIdException; import net.geant.nmaas.orchestration.exceptions.InvalidDeploymentIdException;
import net.geant.nmaas.portal.api.exception.ProcessingException; import net.geant.nmaas.portal.api.exception.ProcessingException;
import net.geant.nmaas.utils.logging.LogLevel; import net.geant.nmaas.utils.logging.LogLevel;
...@@ -135,7 +129,6 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager { ...@@ -135,7 +129,6 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager {
configuration.getAccessCredentials()); configuration.getAccessCredentials());
} }
/* /*
* NMAAS-967
* if terms acceptance is required, perform check actions * if terms acceptance is required, perform check actions
*/ */
if (appDeployment.isTermsAcceptanceRequired()) { if (appDeployment.isTermsAcceptanceRequired()) {
...@@ -153,15 +146,7 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager { ...@@ -153,15 +146,7 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager {
if (termsAcceptanceStatement != null && termsAcceptanceStatement.equalsIgnoreCase("yes")) { if (termsAcceptanceStatement != null && termsAcceptanceStatement.equalsIgnoreCase("yes")) {
// OK // OK
log.info(String.format( log.info("Application usage terms were accepted: application [{}], instance id [{}], content [{}], statement [{}], by [{}], at: [{}]", appDeployment.getAppName(), appDeployment.getInstanceId(), termsContent, termsAcceptanceStatement, initiator, now.format(DateTimeFormatter.ISO_DATE_TIME));
"Application usage terms were accepted: application [%s], instance id [%s], content [%s], statement [%s], by [%s], at: [%s]",
appDeployment.getAppName(),
appDeployment.getInstanceId(),
termsContent,
termsAcceptanceStatement,
initiator,
now.format(DateTimeFormatter.ISO_DATE_TIME)
));
appTermsAcceptanceService.addTermsAcceptanceEntry( appTermsAcceptanceService.addTermsAcceptanceEntry(
appDeployment.getAppName(), appDeployment.getAppName(),
appDeployment.getInstanceId(), appDeployment.getInstanceId(),
...@@ -174,9 +159,10 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager { ...@@ -174,9 +159,10 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager {
// Terms were not accepted by they should // Terms were not accepted by they should
throw new ProcessingException("Application usage terms acceptance is required, however terms were not accepted"); throw new ProcessingException("Application usage terms acceptance is required, however terms were not accepted");
} }
} }
deploymentRepositoryManager.update(appDeployment); deploymentRepositoryManager.update(appDeployment);
if (appDeployment.getState().equals(AppDeploymentState.MANAGEMENT_VPN_CONFIGURED)) { if (appDeployment.getState().equals(AppDeploymentState.MANAGEMENT_VPN_CONFIGURED)) {
eventPublisher.publishEvent(new AppApplyConfigurationActionEvent(this, deploymentId)); eventPublisher.publishEvent(new AppApplyConfigurationActionEvent(this, deploymentId));
} }
......
...@@ -2,6 +2,7 @@ package net.geant.nmaas.portal.api.market; ...@@ -2,6 +2,7 @@ package net.geant.nmaas.portal.api.market;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.geant.nmaas.orchestration.AppLifecycleManager; import net.geant.nmaas.orchestration.AppLifecycleManager;
...@@ -12,14 +13,8 @@ import net.geant.nmaas.portal.persistent.entity.AppInstance; ...@@ -12,14 +13,8 @@ import net.geant.nmaas.portal.persistent.entity.AppInstance;
import net.geant.nmaas.portal.service.ApplicationInstanceService; import net.geant.nmaas.portal.service.ApplicationInstanceService;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import jakarta.validation.constraints.NotNull;
import java.io.IOException; import java.io.IOException;
import java.security.Principal; import java.security.Principal;
...@@ -43,13 +38,13 @@ public class AppConfigurationController { ...@@ -43,13 +38,13 @@ public class AppConfigurationController {
AppInstance appInstance = instances.find(appInstanceId).orElseThrow(() -> new MissingElementException(INSTANCE_NOT_FOUND_MESSAGE)); AppInstance appInstance = instances.find(appInstanceId).orElseThrow(() -> new MissingElementException(INSTANCE_NOT_FOUND_MESSAGE));
boolean valid = validJSON(configuration.getJsonInput()); boolean valid = validJSON(configuration.getJsonInput());
log.error("Configuration = " + configuration.getJsonInput()); log.debug("Provided configuration = {}", configuration.getJsonInput());
if (!valid) { if (!valid) {
throw new ProcessingException("Configuration is not in valid JSON format"); throw new ProcessingException("Configuration is not in a valid JSON format");
} }
if (configuration.getStorageSpace() != null && configuration.getStorageSpace() <= 0) { if (configuration.getStorageSpace() != null && configuration.getStorageSpace() <= 0) {
throw new ProcessingException("Storage space cannot be less or equal 0"); throw new ProcessingException("Storage space cannot be less or equal to 0");
} }
if (!instances.validateAgainstAppConfiguration(appInstance, configuration)) { if (!instances.validateAgainstAppConfiguration(appInstance, configuration)) {
...@@ -105,4 +100,5 @@ public class AppConfigurationController { ...@@ -105,4 +100,5 @@ public class AppConfigurationController {
public String getConfiguration(@PathVariable(value = "appInstanceId") Long appInstanceId) { public String getConfiguration(@PathVariable(value = "appInstanceId") Long appInstanceId) {
return instances.find(appInstanceId).orElseThrow(() -> new MissingElementException(INSTANCE_NOT_FOUND_MESSAGE)).getConfiguration(); return instances.find(appInstanceId).orElseThrow(() -> new MissingElementException(INSTANCE_NOT_FOUND_MESSAGE)).getConfiguration();
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment