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

Removed unnecessary nested transaction

parent 3cfec247
No related branches found
No related tags found
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