From 98b00cb94c6fb562b103e6685c1b6e64198b2c18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20=C5=9Awi=C4=99cki?= Date: Thu, 23 Sep 2021 11:07:17 +0200 Subject: [PATCH] Fix scenario status when job manager is down (#2247) --- .../pl/touk/nussknacker/ui/NussknackerApp.scala | 2 +- .../ui/process/deployment/ManagementActor.scala | 5 ++--- .../ui/process/deployment/ManagementActorSpec.scala | 13 +++++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ui/server/src/main/scala/pl/touk/nussknacker/ui/NussknackerApp.scala b/ui/server/src/main/scala/pl/touk/nussknacker/ui/NussknackerApp.scala index a7d3393dc40..ad7765517b6 100644 --- a/ui/server/src/main/scala/pl/touk/nussknacker/ui/NussknackerApp.scala +++ b/ui/server/src/main/scala/pl/touk/nussknacker/ui/NussknackerApp.scala @@ -242,7 +242,7 @@ class NussknackerAppInitializer(baseUnresolvedConfig: Config) extends LazyLoggin (route, objectsToClose) } - + def bindHttp(interface: String, port: Int, route: Route)(implicit system: ActorSystem, materializer: Materializer): Future[Http.ServerBinding] = { Http().bindAndHandle( handler = route, diff --git a/ui/server/src/main/scala/pl/touk/nussknacker/ui/process/deployment/ManagementActor.scala b/ui/server/src/main/scala/pl/touk/nussknacker/ui/process/deployment/ManagementActor.scala index 54ad55c545b..f1bd6a1ed55 100644 --- a/ui/server/src/main/scala/pl/touk/nussknacker/ui/process/deployment/ManagementActor.scala +++ b/ui/server/src/main/scala/pl/touk/nussknacker/ui/process/deployment/ManagementActor.scala @@ -203,7 +203,7 @@ class ManagementActor(managers: ProcessingTypeDataProvider[DeploymentManager], processState match { case Some(state) => state.version match { - case Some(_) if !state.isDeployed => + case _ if !state.isDeployed => ProcessStatus.simpleErrorShouldBeRunning(action.processVersionId, action.user, processState) case Some(ver) if ver.versionId != action.processVersionId => ProcessStatus.simpleErrorMismatchDeployedVersion(ver.versionId, action.processVersionId, action.user, processState) @@ -212,8 +212,7 @@ class ManagementActor(managers: ProcessingTypeDataProvider[DeploymentManager], case None => //TODO: we should remove Option from ProcessVersion? ProcessStatus.simpleWarningMissingDeployedVersion(action.processVersionId, action.user, processState) case _ => - ProcessStatus.simple(SimpleStateStatus.Error) //Generic - // c error in other cases + ProcessStatus.simple(SimpleStateStatus.Error) //Generic error in other cases } case None => ProcessStatus.simpleErrorShouldBeRunning(action.processVersionId, action.user, Option.empty) diff --git a/ui/server/src/test/scala/pl/touk/nussknacker/ui/process/deployment/ManagementActorSpec.scala b/ui/server/src/test/scala/pl/touk/nussknacker/ui/process/deployment/ManagementActorSpec.scala index 2fec469c470..4d9be2956a6 100644 --- a/ui/server/src/test/scala/pl/touk/nussknacker/ui/process/deployment/ManagementActorSpec.scala +++ b/ui/server/src/test/scala/pl/touk/nussknacker/ui/process/deployment/ManagementActorSpec.scala @@ -265,6 +265,19 @@ class ManagementActorSpec extends FunSuite with Matchers with PatientScalaFuture } } + test("Should return error state when failed to get state") { + val id = prepareDeployedProcess(processName).futureValue + + deploymentManager.withProcessStateVersion(SimpleStateStatus.FailedToGet, Option.empty) { + val state = processService.getProcessState(ProcessIdWithName(id, processName)).futureValue + + state.status shouldBe SimpleStateStatus.Error + state.icon shouldBe Some(SimpleProcessStateDefinitionManager.deployFailedIcon) + state.allowedActions shouldBe List(ProcessActionType.Deploy, ProcessActionType.Cancel) + state.description shouldBe Some(SimpleProcessStateDefinitionManager.shouldBeRunningDescription) + } + } + test("Should return not deployed status for process with empty state - not deployed state") { val id = prepareProcess(processName).futureValue fetchingProcessRepository.fetchLatestProcessDetailsForProcessId[Unit](id).futureValue.get.lastAction shouldBe None