From 677f755185518b4c66b5d1450aaac4dab46d59b7 Mon Sep 17 00:00:00 2001 From: Marek Marusic Date: Mon, 28 Aug 2017 13:06:21 +0200 Subject: [PATCH] [JBEAP-12414] - Fixed - Patching via Management Console double-prompts user to restart --- .../jboss/dmr/client/dispatch/impl/DMRResponse.java | 13 +++++++++++++ .../shared/patching/PatchManagementPresenter.java | 1 + .../client/shared/patching/PatchManager.java | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/dmr/src/main/java/org/jboss/dmr/client/dispatch/impl/DMRResponse.java b/dmr/src/main/java/org/jboss/dmr/client/dispatch/impl/DMRResponse.java index e24008ed8..be3d2c29c 100644 --- a/dmr/src/main/java/org/jboss/dmr/client/dispatch/impl/DMRResponse.java +++ b/dmr/src/main/java/org/jboss/dmr/client/dispatch/impl/DMRResponse.java @@ -36,10 +36,14 @@ public class DMRResponse implements Result { private static final String FILTERED_ATTRIBUTES = "filtered-attributes"; private static final String ABSOLUTE_ADDRESS = "absolute-address"; private static final String RELATIVE_ADDRESS = "relative-address"; + private static final String RESPONSE_HEADERS = "response-headers"; + private static final String PROCESS_STATE = "process-state"; + private static final String RESTART_NOT_REQUIRED = "restart-not-required"; private String method; private String responseText; private String contentType; + private boolean ignoreRestartHeader = false; private ResponseProcessorDelegate processor; @@ -51,6 +55,10 @@ public DMRResponse(String method, String responseText, String contentType) { this.processor = new ResponseProcessorDelegate(); } + public void setIgnoreRestartHeader(boolean ignoreRestartHeader) { + this.ignoreRestartHeader = ignoreRestartHeader; + } + @Override public ModelNode get() { @@ -113,6 +121,11 @@ else if(ModelType.OBJECT == response.get(RESULT).getType()) response = err; } + //Do not show a restart modal window when an ignoreRestart is set to true + if (ignoreRestartHeader) { + response.get(RESPONSE_HEADERS).get(PROCESS_STATE).set(RESTART_NOT_REQUIRED); + } + processor.process(response); return response; diff --git a/gui/src/main/java/org/jboss/as/console/client/shared/patching/PatchManagementPresenter.java b/gui/src/main/java/org/jboss/as/console/client/shared/patching/PatchManagementPresenter.java index 132924592..6b2335be0 100644 --- a/gui/src/main/java/org/jboss/as/console/client/shared/patching/PatchManagementPresenter.java +++ b/gui/src/main/java/org/jboss/as/console/client/shared/patching/PatchManagementPresenter.java @@ -84,6 +84,7 @@ public interface MyView extends View, HasPresenter, Up private abstract class GetRunningServersCallback implements AsyncCallback { @Override public void onSuccess(DMRResponse result) { + result.setIgnoreRestartHeader(true); ModelNode response = result.get(); List runningServers = new LinkedList(); if (!response.isFailure()) { diff --git a/gui/src/main/java/org/jboss/as/console/client/shared/patching/PatchManager.java b/gui/src/main/java/org/jboss/as/console/client/shared/patching/PatchManager.java index 20759935c..502c56ac7 100644 --- a/gui/src/main/java/org/jboss/as/console/client/shared/patching/PatchManager.java +++ b/gui/src/main/java/org/jboss/as/console/client/shared/patching/PatchManager.java @@ -127,6 +127,7 @@ public void onFailure(final Throwable caught) { @Override public void onSuccess(final DMRResponse response) { + response.setIgnoreRestartHeader(true); ModelNode result = response.get(); if (!result.hasDefined(OUTCOME) || result.isFailure()) { callback.onFailure(new RuntimeException(result.getFailureDescription())); @@ -173,6 +174,7 @@ public void onFailure(final Throwable caught) { @Override public void onSuccess(final DMRResponse response) { + response.setIgnoreRestartHeader(true); ModelNode result = response.get(); if (!result.hasDefined(OUTCOME) || result.isFailure()) { callback.onFailure(new RuntimeException(result.getFailureDescription())); @@ -248,6 +250,7 @@ public void onFailure(Throwable caught) { } public void onSuccess(DMRResponse result) { + result.setIgnoreRestartHeader(true); final ModelNode readResult = result.get().get(RESULT); final Patches patches = new Patches(host); //extract latest patch @@ -296,6 +299,7 @@ public void onFailure(Throwable caught) { } public void onSuccess(DMRResponse result) { + result.setIgnoreRestartHeader(true); final ModelNode compResult = result.get().get(RESULT); for (int index = 0; index < patchStreamIDs.length; index++) { String streamId = patchStreamIDs[index];