From bacd72f40caa8eb21a2380b1a71ac172695d1221 Mon Sep 17 00:00:00 2001 From: Florian Ruschbaschan <46709526+floruschbaschan@users.noreply.github.com> Date: Fri, 11 Jun 2021 13:56:23 +0200 Subject: [PATCH] Set DdiActionFeedback ID deprecated (#1091) * Deprecate DdiActionFeedback ID Signed-off-by: Florian Ruschbaschan * Add deprecation to FEEDBACK_ACTION_ID in docu Signed-off-by: Florian Ruschbaschan --- .../ddi/json/model/DdiActionFeedback.java | 6 ++++++ .../ddi/rest/resource/DdiRootController.java | 18 ++---------------- .../ddi/rest/resource/DdiCancelActionTest.java | 12 ------------ .../documentation/DdiApiModelProperties.java | 4 +++- .../RootControllerDocumentationTest.java | 4 ++-- 5 files changed, 13 insertions(+), 31 deletions(-) diff --git a/hawkbit-rest/hawkbit-ddi-api/src/main/java/org/eclipse/hawkbit/ddi/json/model/DdiActionFeedback.java b/hawkbit-rest/hawkbit-ddi-api/src/main/java/org/eclipse/hawkbit/ddi/json/model/DdiActionFeedback.java index 110c33a95..c7707a9da 100644 --- a/hawkbit-rest/hawkbit-ddi-api/src/main/java/org/eclipse/hawkbit/ddi/json/model/DdiActionFeedback.java +++ b/hawkbit-rest/hawkbit-ddi-api/src/main/java/org/eclipse/hawkbit/ddi/json/model/DdiActionFeedback.java @@ -37,6 +37,12 @@ import com.fasterxml.jackson.annotation.JsonProperty; */ @JsonIgnoreProperties(ignoreUnknown = true) public class DdiActionFeedback { + /** + * @deprecated + * This ID is always given by the actionId path variable. + * Will be removed in future versions. + */ + @Deprecated private final Long id; private final String time; diff --git a/hawkbit-rest/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java b/hawkbit-rest/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java index 8367bc904..c64e7cc27 100644 --- a/hawkbit-rest/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java +++ b/hawkbit-rest/hawkbit-ddi-resource/src/main/java/org/eclipse/hawkbit/ddi/rest/resource/DdiRootController.java @@ -351,13 +351,6 @@ public class DdiRootController implements DdiRootControllerRestApi { final Target target = controllerManagement.getByControllerId(controllerId) .orElseThrow(() -> new EntityNotFoundException(Target.class, controllerId)); - if (!actionId.equals(feedback.getId())) { - LOG.warn( - "provideBasedeploymentActionFeedback: action in payload ({}) was not identical to action in path ({}).", - feedback.getId(), actionId); - return ResponseEntity.notFound().build(); - } - final Action action = findActionWithExceptionIfNotFound(actionId); if (!action.getTarget().getId().equals(target.getId())) { LOG.warn(GIVEN_ACTION_IS_NOT_ASSIGNED_TO_GIVEN_TARGET, action.getId(), target.getId()); @@ -370,7 +363,7 @@ public class DdiRootController implements DdiRootControllerRestApi { return new ResponseEntity<>(HttpStatus.GONE); } - controllerManagement.addUpdateActionStatus(generateUpdateStatus(feedback, controllerId, feedback.getId())); + controllerManagement.addUpdateActionStatus(generateUpdateStatus(feedback, controllerId, actionId)); return ResponseEntity.ok().build(); @@ -501,13 +494,6 @@ public class DdiRootController implements DdiRootControllerRestApi { final Target target = controllerManagement.getByControllerId(controllerId) .orElseThrow(() -> new EntityNotFoundException(Target.class, controllerId)); - if (!actionId.equals(feedback.getId())) { - LOG.warn( - "provideBasedeploymentActionFeedback: action in payload ({}) was not identical to action in path ({}).", - feedback.getId(), actionId); - return ResponseEntity.notFound().build(); - } - final Action action = findActionWithExceptionIfNotFound(actionId); if (!action.getTarget().getId().equals(target.getId())) { LOG.warn(GIVEN_ACTION_IS_NOT_ASSIGNED_TO_GIVEN_TARGET, action.getId(), target.getId()); @@ -515,7 +501,7 @@ public class DdiRootController implements DdiRootControllerRestApi { } controllerManagement - .addCancelActionStatus(generateActionCancelStatus(feedback, target, feedback.getId(), entityFactory)); + .addCancelActionStatus(generateActionCancelStatus(feedback, target, actionId, entityFactory)); return ResponseEntity.ok().build(); } diff --git a/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiCancelActionTest.java b/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiCancelActionTest.java index 7278f3d2c..94179304e 100644 --- a/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiCancelActionTest.java +++ b/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiCancelActionTest.java @@ -523,18 +523,6 @@ public class DdiCancelActionTest extends AbstractDDiApiIntegrationTest { .content(JsonBuilder.cancelActionFeedback("sdfsdfsdfs", "closed")) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andDo(MockMvcResultPrinter.print()).andExpect(status().isBadRequest()); - mvc.perform(post("/{tenant}/controller/v1/" + TestdataFactory.DEFAULT_CONTROLLER_ID + "/cancelAction/" - + cancelAction.getId() + "/feedback", tenantAware.getCurrentTenant()) - .content(JsonBuilder.cancelActionFeedback("1234", "closed")) - .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) - .andDo(MockMvcResultPrinter.print()).andExpect(status().isNotFound()); - - // right action but for wrong target - mvc.perform(post("/{tenant}/controller/v1/" + TestdataFactory.DEFAULT_CONTROLLER_ID + "/cancelAction/" - + cancelAction.getId() + "/feedback", tenantAware.getCurrentTenant()) - .content(JsonBuilder.cancelActionFeedback(cancelAction2.getId().toString(), "closed")) - .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) - .andDo(MockMvcResultPrinter.print()).andExpect(status().isNotFound()); // finally get it right :) mvc.perform(post("/{tenant}/controller/v1/" + TestdataFactory.DEFAULT_CONTROLLER_ID + "/cancelAction/" diff --git a/hawkbit-rest/hawkbit-rest-docs/src/test/java/org/eclipse/hawkbit/rest/ddi/documentation/DdiApiModelProperties.java b/hawkbit-rest/hawkbit-rest-docs/src/test/java/org/eclipse/hawkbit/rest/ddi/documentation/DdiApiModelProperties.java index 845f4f9b0..9e091451d 100644 --- a/hawkbit-rest/hawkbit-rest-docs/src/test/java/org/eclipse/hawkbit/rest/ddi/documentation/DdiApiModelProperties.java +++ b/hawkbit-rest/hawkbit-rest-docs/src/test/java/org/eclipse/hawkbit/rest/ddi/documentation/DdiApiModelProperties.java @@ -26,7 +26,7 @@ final class DdiApiModelProperties { static final String TARGET_RESULT_FINISHED = "defined status of the result"; - static final String TARGET_RESULT_PROGRESS = "progress assumption of the device"; + static final String TARGET_RESULT_PROGRESS = "progress assumption of the device (currently not supported)."; static final String TARGET_PROGRESS_CNT = "current progress level"; @@ -34,6 +34,8 @@ final class DdiApiModelProperties { static final String ACTION_ID = "id of the action"; + static final String FEEDBACK_ACTION_ID = "(@deprecated) id of the action"; + static final String CANCEL_ACTION = "action that needs to be canceled"; static final String ACTION_ID_CANCELED = "id of the action that needs to be canceled (typically identical to id field on the cancel action itself)"; diff --git a/hawkbit-rest/hawkbit-rest-docs/src/test/java/org/eclipse/hawkbit/rest/ddi/documentation/RootControllerDocumentationTest.java b/hawkbit-rest/hawkbit-rest-docs/src/test/java/org/eclipse/hawkbit/rest/ddi/documentation/RootControllerDocumentationTest.java index c0942e428..efa7fd72c 100644 --- a/hawkbit-rest/hawkbit-rest-docs/src/test/java/org/eclipse/hawkbit/rest/ddi/documentation/RootControllerDocumentationTest.java +++ b/hawkbit-rest/hawkbit-rest-docs/src/test/java/org/eclipse/hawkbit/rest/ddi/documentation/RootControllerDocumentationTest.java @@ -183,7 +183,7 @@ public class RootControllerDocumentationTest extends AbstractApiRestDocumentatio pathParameters(parameterWithName("tenant").description(ApiModelPropertiesGeneric.TENANT), parameterWithName("controllerId").description(DdiApiModelProperties.CONTROLLER_ID), parameterWithName("actionId").description(DdiApiModelProperties.ACTION_ID_CANCELED)), - requestFields(optionalRequestFieldWithPath("id").description(DdiApiModelProperties.ACTION_ID), + requestFields(optionalRequestFieldWithPath("id").description(DdiApiModelProperties.FEEDBACK_ACTION_ID), requestFieldWithPath("status").description(DdiApiModelProperties.TARGET_STATUS), requestFieldWithPath("status.execution") .description(DdiApiModelProperties.TARGET_EXEC_STATUS).type("enum") @@ -386,7 +386,7 @@ public class RootControllerDocumentationTest extends AbstractApiRestDocumentatio parameterWithName("controllerId").description(DdiApiModelProperties.CONTROLLER_ID), parameterWithName("actionId").description(DdiApiModelProperties.ACTION_ID)), - requestFields(optionalRequestFieldWithPath("id").description(DdiApiModelProperties.ACTION_ID), + requestFields(optionalRequestFieldWithPath("id").description(DdiApiModelProperties.FEEDBACK_ACTION_ID), requestFieldWithPath("status").description(DdiApiModelProperties.TARGET_STATUS), requestFieldWithPath("status.execution") .description(DdiApiModelProperties.TARGET_EXEC_STATUS).type("enum")