diff --git a/src/integrationTest/java/net/geant/nmaas/orchestration/api/OrchestratorManagerControllerIntTest.java b/src/integrationTest/java/net/geant/nmaas/orchestration/api/OrchestratorManagerControllerIntTest.java index 964ca4c76029dd3b42a28b9f828a9f11bdb43c15..c86403395a088d5e5abfc0b11bbc9b2ff770bd73 100644 --- a/src/integrationTest/java/net/geant/nmaas/orchestration/api/OrchestratorManagerControllerIntTest.java +++ b/src/integrationTest/java/net/geant/nmaas/orchestration/api/OrchestratorManagerControllerIntTest.java @@ -49,6 +49,7 @@ public class OrchestratorManagerControllerIntTest { private static final String DOMAIN = "domain"; private static final String DEPLOYMENT_NAME = "deploymentName"; + private Identifier applicationId; private Identifier deploymentId; private AppConfiguration appConfiguration; diff --git a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesRepositoryManager.java b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesRepositoryManager.java index 858efa7898cf1c3da86f772448a2f94c6c9e10a1..6d5763f0776311c862ca69451931822f18f46788 100644 --- a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesRepositoryManager.java +++ b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesRepositoryManager.java @@ -17,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; 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.SHARED; @@ -38,7 +37,7 @@ public class KubernetesRepositoryManager extends NmServiceRepositoryManager<Kube KubernetesNmServiceInfo serviceInfo = loadService(deploymentId); List<ServiceStorageVolume> storageVolumes = serviceInfo.getStorageVolumes().stream() .filter(v -> Arrays.asList(MAIN, SHARED).contains(v.getType())) - .collect(Collectors.toList()); + .toList(); storageVolumes.forEach(v -> { v.setSize(storageSpace); storageVolumeRepository.save(v); diff --git a/src/main/java/net/geant/nmaas/orchestration/DefaultAppDeploymentRepositoryManager.java b/src/main/java/net/geant/nmaas/orchestration/DefaultAppDeploymentRepositoryManager.java index 51e2b7523f69d61a8356a2e902ffdb78ceb50f99..a26507e3d7e0c64103dbcbc7080f4dab99b5df2b 100644 --- a/src/main/java/net/geant/nmaas/orchestration/DefaultAppDeploymentRepositoryManager.java +++ b/src/main/java/net/geant/nmaas/orchestration/DefaultAppDeploymentRepositoryManager.java @@ -1,6 +1,5 @@ package net.geant.nmaas.orchestration; -import io.micrometer.core.instrument.util.StringUtils; import lombok.AllArgsConstructor; import net.geant.nmaas.orchestration.entities.AppDeployment; import net.geant.nmaas.orchestration.entities.AppDeploymentHistory; @@ -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.repositories.SSHKeyRepository; import net.geant.nmaas.portal.persistent.repositories.UserRepository; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -35,7 +35,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos @Override @Transactional(propagation = Propagation.REQUIRES_NEW) 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."); } appDeployment.addChangeOfStateToHistory(null, appDeployment.getState()); @@ -43,7 +43,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos } @Override - @Transactional(propagation = Propagation.REQUIRES_NEW) + //@Transactional(propagation = Propagation.REQUIRES_NEW) public void update(AppDeployment appDeployment) { repository.save(appDeployment); } @@ -141,7 +141,7 @@ public class DefaultAppDeploymentRepositoryManager implements AppDeploymentRepos } @Override - public List<AppDeploymentHistory> loadStateHistory(Identifier deploymentId){ + public List<AppDeploymentHistory> loadStateHistory(Identifier deploymentId) { return load(deploymentId).getHistory(); } diff --git a/src/main/java/net/geant/nmaas/orchestration/DefaultAppLifecycleManager.java b/src/main/java/net/geant/nmaas/orchestration/DefaultAppLifecycleManager.java index 5ec39362373510b23475dc0d71909317274278b8..6a9a2755c223241cd862adf8e7031821e54fbd87 100644 --- a/src/main/java/net/geant/nmaas/orchestration/DefaultAppLifecycleManager.java +++ b/src/main/java/net/geant/nmaas/orchestration/DefaultAppLifecycleManager.java @@ -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.AppDeployment; import net.geant.nmaas.orchestration.entities.AppDeploymentState; -import net.geant.nmaas.orchestration.events.app.AppApplyConfigurationActionEvent; -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.events.app.*; import net.geant.nmaas.orchestration.exceptions.InvalidDeploymentIdException; import net.geant.nmaas.portal.api.exception.ProcessingException; import net.geant.nmaas.utils.logging.LogLevel; @@ -135,7 +129,6 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager { configuration.getAccessCredentials()); } /* - * NMAAS-967 * if terms acceptance is required, perform check actions */ if (appDeployment.isTermsAcceptanceRequired()) { @@ -153,15 +146,7 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager { if (termsAcceptanceStatement != null && termsAcceptanceStatement.equalsIgnoreCase("yes")) { // OK - log.info(String.format( - "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) - )); + 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)); appTermsAcceptanceService.addTermsAcceptanceEntry( appDeployment.getAppName(), appDeployment.getInstanceId(), @@ -174,9 +159,10 @@ public class DefaultAppLifecycleManager implements AppLifecycleManager { // Terms were not accepted by they should throw new ProcessingException("Application usage terms acceptance is required, however terms were not accepted"); } - } + deploymentRepositoryManager.update(appDeployment); + if (appDeployment.getState().equals(AppDeploymentState.MANAGEMENT_VPN_CONFIGURED)) { eventPublisher.publishEvent(new AppApplyConfigurationActionEvent(this, deploymentId)); } diff --git a/src/main/java/net/geant/nmaas/portal/api/market/AppConfigurationController.java b/src/main/java/net/geant/nmaas/portal/api/market/AppConfigurationController.java index ae3bd3ef7c9051316af14df8173ffc1f71329a00..15765e4bd833d70a51cfba857258cae553fbad99 100644 --- a/src/main/java/net/geant/nmaas/portal/api/market/AppConfigurationController.java +++ b/src/main/java/net/geant/nmaas/portal/api/market/AppConfigurationController.java @@ -2,6 +2,7 @@ package net.geant.nmaas.portal.api.market; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Strings; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.geant.nmaas.orchestration.AppLifecycleManager; @@ -12,14 +13,8 @@ import net.geant.nmaas.portal.persistent.entity.AppInstance; import net.geant.nmaas.portal.service.ApplicationInstanceService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.GetMapping; -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 org.springframework.web.bind.annotation.*; -import jakarta.validation.constraints.NotNull; import java.io.IOException; import java.security.Principal; @@ -43,13 +38,13 @@ public class AppConfigurationController { AppInstance appInstance = instances.find(appInstanceId).orElseThrow(() -> new MissingElementException(INSTANCE_NOT_FOUND_MESSAGE)); boolean valid = validJSON(configuration.getJsonInput()); - log.error("Configuration = " + configuration.getJsonInput()); + log.debug("Provided configuration = {}", configuration.getJsonInput()); 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) { - 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)) { @@ -105,4 +100,5 @@ public class AppConfigurationController { public String getConfiguration(@PathVariable(value = "appInstanceId") Long appInstanceId) { return instances.find(appInstanceId).orElseThrow(() -> new MissingElementException(INSTANCE_NOT_FOUND_MESSAGE)).getConfiguration(); } + }