From cb024eb027cb9e0776359a9ee06b1caec4592256 Mon Sep 17 00:00:00 2001 From: Einat Vinouze Date: Wed, 20 May 2020 12:00:29 +0300 Subject: Set JobStatus as COMPLETED_AND_PAUSED when needed so we can present it on instantiationStatus Issue-ID: VID-821 Signed-off-by: Einat Vinouze Change-Id: I19328ce643ea984a97dc04183626dea133be517d Signed-off-by: Einat Vinouze --- vid-app-common/src/main/java/org/onap/vid/job/Job.java | 4 ++-- .../main/java/org/onap/vid/job/command/ResourceCommand.kt | 14 ++++++++++++-- .../java/org/onap/vid/job/command/WatchChildrenJobsBL.kt | 3 ++- 3 files changed, 16 insertions(+), 5 deletions(-) (limited to 'vid-app-common/src/main/java/org/onap') diff --git a/vid-app-common/src/main/java/org/onap/vid/job/Job.java b/vid-app-common/src/main/java/org/onap/vid/job/Job.java index 197e03b7b..9861d0703 100644 --- a/vid-app-common/src/main/java/org/onap/vid/job/Job.java +++ b/vid-app-common/src/main/java/org/onap/vid/job/Job.java @@ -21,13 +21,12 @@ package org.onap.vid.job; import com.fasterxml.jackson.annotation.JsonIgnore; -import org.onap.vid.job.impl.JobSharedData; - import java.util.List; import java.util.Map; import java.util.UUID; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.onap.vid.job.impl.JobSharedData; public interface Job { @@ -68,6 +67,7 @@ public interface Job { COMPLETED_WITH_NO_ACTION(true, false), CREATING(false), PENDING_RESOURCE(false), + COMPLETED_AND_PAUSED(true, false), ; private final Boolean finalStatus; diff --git a/vid-app-common/src/main/java/org/onap/vid/job/command/ResourceCommand.kt b/vid-app-common/src/main/java/org/onap/vid/job/command/ResourceCommand.kt index 9b4f8b985..3ecb4aed3 100644 --- a/vid-app-common/src/main/java/org/onap/vid/job/command/ResourceCommand.kt +++ b/vid-app-common/src/main/java/org/onap/vid/job/command/ResourceCommand.kt @@ -230,7 +230,7 @@ abstract class ResourceCommand( InternalState.IN_PROGRESS -> { when { - jobStatus != JobStatus.COMPLETED -> InternalState.IN_PROGRESS + jobStatus !in setOf(JobStatus.COMPLETED, JobStatus.COMPLETED_AND_PAUSED) -> InternalState.IN_PROGRESS isDescendantHasAction(Action.Create) -> InternalState.CREATING_CHILDREN isDescendantHasAction(Action.Upgrade) -> InternalState.CREATING_CHILDREN else -> InternalState.TERMINAL @@ -385,9 +385,19 @@ abstract class ResourceCommand( protected open fun getExpiryChecker(): ExpiryChecker = ExpiryChecker {false} protected open fun handleInProgressStatus(jobStatus: JobStatus): JobStatus { - return if (jobStatus == JobStatus.PAUSE) JobStatus.IN_PROGRESS else jobStatus + if (jobStatus == JobStatus.PAUSE){ + return JobStatus.IN_PROGRESS + } else if (completedAndPaused(jobStatus)){ + return JobStatus.COMPLETED_AND_PAUSED + } + return jobStatus } + private fun completedAndPaused(jobStatus: JobStatus) = + jobStatus == JobStatus.COMPLETED && getRequest().pauseInstantiation == afterCompletion + && featureManager.isActive(Features.FLAG_2006_PAUSE_VFMODULE_INSTANTIATION_CREATION) + + protected open fun watchChildren():JobStatus { return watchChildrenJobsBL.retrieveChildrenJobsStatus(childJobs) } diff --git a/vid-app-common/src/main/java/org/onap/vid/job/command/WatchChildrenJobsBL.kt b/vid-app-common/src/main/java/org/onap/vid/job/command/WatchChildrenJobsBL.kt index 194fe4ba2..502d8344d 100644 --- a/vid-app-common/src/main/java/org/onap/vid/job/command/WatchChildrenJobsBL.kt +++ b/vid-app-common/src/main/java/org/onap/vid/job/command/WatchChildrenJobsBL.kt @@ -21,11 +21,11 @@ package org.onap.vid.job.command import org.apache.commons.lang3.StringUtils +import org.onap.portalsdk.core.service.DataAccessService import org.onap.vid.job.Job import org.onap.vid.job.Job.JobStatus.* import org.onap.vid.job.impl.JobDaoImpl import org.onap.vid.utils.DaoUtils -import org.onap.portalsdk.core.service.DataAccessService import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import java.util.* @@ -63,6 +63,7 @@ constructor(private val dataAccessService: DataAccessService) { a == COMPLETED_WITH_ERRORS || b == COMPLETED_WITH_ERRORS-> COMPLETED_WITH_ERRORS a == COMPLETED && b.isFailure -> COMPLETED_WITH_ERRORS b == COMPLETED && a.isFailure -> COMPLETED_WITH_ERRORS + a == COMPLETED_AND_PAUSED || b == COMPLETED_AND_PAUSED -> COMPLETED_AND_PAUSED a == COMPLETED || b == COMPLETED -> COMPLETED a.isFailure || b.isFailure -> FAILED else -> COMPLETED_WITH_NO_ACTION -- cgit 1.2.3-korg