From 1b342001a2722116e6161c415f6ec769deda4ec0 Mon Sep 17 00:00:00 2001 From: Stanislav Trailov Date: Thu, 13 Apr 2023 12:13:33 +0300 Subject: [PATCH] Fix CANCEL_REJECTED dmf behaviour (#1346) * Fix CANCEL_REJECTED dmf behaviour * Proper formatting * Remove unused imports Signed-off-by: Stanislav Trailov --- .../eclipse/hawkbit/amqp/AmqpMessageHandlerService.java | 3 ++- .../AmqpMessageHandlerServiceIntegrationTest.java | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java index 1c64f4195..85feff75f 100644 --- a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java +++ b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageHandlerService.java @@ -394,7 +394,8 @@ public class AmqpMessageHandlerService extends BaseAmqpService { actionStatus.code(code); actionStatus.message("Device reported status code: " + code); }); - updatedAction = (Status.CANCELED == status) ? controllerManagement.addCancelActionStatus(actionStatus) + updatedAction = ((Status.CANCELED == status) || (Status.CANCEL_REJECTED == status)) ? + controllerManagement.addCancelActionStatus(actionStatus) : controllerManagement.addUpdateActionStatus(actionStatus); } diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AmqpMessageHandlerServiceIntegrationTest.java b/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AmqpMessageHandlerServiceIntegrationTest.java index f3572f622..ca754efbd 100644 --- a/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AmqpMessageHandlerServiceIntegrationTest.java +++ b/hawkbit-dmf/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AmqpMessageHandlerServiceIntegrationTest.java @@ -52,6 +52,7 @@ import org.eclipse.hawkbit.repository.event.remote.entity.TenantConfigurationUpd import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException; import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet; import org.eclipse.hawkbit.repository.jpa.model.JpaTarget; +import org.eclipse.hawkbit.repository.model.Action; import org.eclipse.hawkbit.repository.model.Action.Status; import org.eclipse.hawkbit.repository.model.ActionStatus; import org.eclipse.hawkbit.repository.model.DistributionSet; @@ -626,7 +627,7 @@ class AmqpMessageHandlerServiceIntegrationTest extends AbstractAmqpServiceIntegr @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), @Expect(type = CancelTargetAssignmentEvent.class, count = 1), - @Expect(type = ActionUpdatedEvent.class, count = 1), @Expect(type = ActionCreatedEvent.class, count = 1), + @Expect(type = ActionUpdatedEvent.class, count = 2), @Expect(type = ActionCreatedEvent.class, count = 1), @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), @Expect(type = SoftwareModuleUpdatedEvent.class, count = 6), @Expect(type = DistributionSetCreatedEvent.class, count = 1), @@ -638,6 +639,11 @@ class AmqpMessageHandlerServiceIntegrationTest extends AbstractAmqpServiceIntegr createAndSendActionStatusUpdateMessage(controllerId, actionId, DmfActionStatus.CANCEL_REJECTED); assertAction(actionId, 1, Status.RUNNING, Status.CANCELING, Status.CANCEL_REJECTED); + + // retrieve action and ensure that it is in Running state + final Action action = deploymentManagement.findAction(actionId).orElseThrow(() -> new AssertionError("Action not found!")); + assertThat(action.getStatus()).isEqualTo(Status.RUNNING); + } @Test