Skip to content

Commit

Permalink
JBPM-9273 System error occurred while adding deployment unit
Browse files Browse the repository at this point in the history
  • Loading branch information
bxf12315 committed Nov 3, 2020
1 parent b769cdc commit c2fda7a
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
package org.kie.workbench.common.screens.server.management.client.container;

import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Optional;

import javax.annotation.PostConstruct;
import javax.enterprise.context.Dependent;
Expand All @@ -30,6 +32,8 @@
import org.jboss.errai.common.client.api.ErrorCallback;
import org.jboss.errai.common.client.api.RemoteCallback;
import org.kie.server.api.model.KieContainerStatus;
import org.kie.server.api.model.Message;
import org.kie.server.api.model.Severity;
import org.kie.server.controller.api.model.events.ServerInstanceUpdated;
import org.kie.server.controller.api.model.runtime.Container;
import org.kie.server.controller.api.model.spec.Capability;
Expand Down Expand Up @@ -147,13 +151,28 @@ public void loadContainers(@Observes final ContainerSpecData content) {
containerSpec != null &&
containerSpec.getId() != null &&
containerSpec.getId().equals(content.getContainerSpec().getId())) {
resetReleaseIdForFailedContainers(content.getContainers(), content.getContainerSpec());
setup(content.getContainerSpec(),
content.getContainers());
} else {
logger.warn("Illegal event argument.");
}
}

private void resetReleaseIdForFailedContainers(Collection<Container> containers, ContainerSpec containerSpec) {
containers.forEach(container -> {
if (KieContainerStatus.FAILED == container.getStatus() || container.getResolvedReleasedId() == null) {
container.setResolvedReleasedId(containerSpec.getReleasedId());
container.addMessage(new Message(Severity.ERROR, Collections.emptyList()));
}
});
Optional<Container> optionalContainer = containers.stream().filter(container -> KieContainerStatus.FAILED != container.getStatus()).findFirst();
if (!optionalContainer.isPresent() && containers.size() > 0) {
containerSpec.setStatus(KieContainerStatus.FAILED);
}
}


public void refreshOnContainerUpdateEvent(@Observes final ContainerUpdateEvent updateEvent) {
final ContainerRuntimeOperation runtimeOperation = updateEvent.getContainerRuntimeOperation();

Expand Down Expand Up @@ -242,11 +261,17 @@ protected void updateStatus(final KieContainerStatus status) {
break;
case STOPPED:
view.updateToggleActivationButton(false);
view.setContainerStartState(State.DISABLED);
view.setContainerStopState(State.ENABLED);
view.enableRemoveButton();
view.disableToggleActivationButton();
break;
case DISPOSING:
case FAILED:
view.enableRemoveButton();
view.updateToggleActivationButton(false);
view.setContainerStartState(State.DISABLED);
view.setContainerStopState(State.ENABLED);
view.setContainerStopState(State.DISABLED);
view.disableToggleActivationButton();
break;
}
Expand Down Expand Up @@ -413,5 +438,7 @@ public interface View extends UberView<ContainerPresenter> {
String getStartContainerErrorMessage();

String getCanNotStopContainerMessage();

String getFailedContainerErrrMessage();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,11 @@ public String getCanNotStopContainerMessage() {
return translationService.format(Constants.CanNot_Stop_Container);
}

@Override
public String getFailedContainerErrrMessage() {
return translationService.format(Constants.NewContainer_FailedContainer);
}

private String getConfirmRemovePopupMessage() {
return translationService.format(Constants.ContainerView_ConfirmRemovePopupMessage);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,4 +254,7 @@ public class Constants {
@TranslationKey(defaultValue = "")
public static final String CanNot_Stop_Container = "CanNot_Stop_Container";

@TranslationKey(defaultValue = "")
public static final String NewContainer_FailedContainer = "NewContainer.FailedContainer";

}
Original file line number Diff line number Diff line change
Expand Up @@ -153,3 +153,4 @@ NewContainer.Save=Ok
NewContainer.SaveContainerSpec=Save Container Spec
NewContainer.Deploying={0} is deploying
CanNot_Stop_Container=It is not possible to stop the container due to running process instance.
NewContainer.FailedContainer=The Container failed on kie server.
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ public void testInit() {
@Test
public void testStartContainer() {
presenter.loadContainers(containerSpecData);

presenter.startContainer();

verify(view).setContainerStartState(State.ENABLED);
Expand Down Expand Up @@ -314,8 +315,7 @@ public void testDeactivateThenActivateContainerFromStartedState() {
public void testLoadContainersEmpty() {
presenter.loadContainers(containerSpecData);

verifyLoad(true,
1);
verifyLoad(true, 1, false);
}

@Test
Expand All @@ -330,14 +330,12 @@ public void testLoadContainersOnlyOnSelectedContainerEvent() {
presenter.setContainerSpec(containerSpec1);
presenter.loadContainers(containerSpecData);

verifyLoad(true,
0);
verifyLoad(true, 0, false);

presenter.setContainerSpec(containerSpec);
presenter.loadContainers(containerSpecData);

verifyLoad(true,
1);
verifyLoad(true, 1, false);

}

Expand All @@ -351,8 +349,7 @@ public void testRefresh() {
presenter.loadContainers(containerSpecData);
presenter.refresh();

verifyLoad(true,
2);
verifyLoad(true, 2, false);
}

@Test
Expand All @@ -366,8 +363,7 @@ public void testLoadContainers() {
containerSpecData.getContainers().add(container);
presenter.loadContainers(containerSpecData);

verifyLoad(true,
1);
verifyLoad(true, 1, false);
}

@Test
Expand All @@ -382,12 +378,29 @@ public void testLoadContainersNonStoped() {
containerSpecData.getContainers().add(container);
presenter.loadContainers(containerSpecData);

verifyLoad(false,
1);
verifyLoad(false, 1, false);
}

private void verifyLoad(boolean empty,
int times) {
@Test
public void testLoadContainersHasFailed() {
final Container container = new Container("containerSpecId",
"containerName",
new ServerInstanceKey(),
Collections.<Message>emptyList(),
null,
null);
container.setStatus(KieContainerStatus.FAILED);
containerSpecData.getContainers().add(container);
assertNull(container.getResolvedReleasedId());
presenter.loadContainers(containerSpecData);

assertEquals(KieContainerStatus.FAILED, containerSpecData.getContainerSpec().getStatus());
assertNotNull(container.getResolvedReleasedId());

verifyLoad(false, 1, true);
}

private void verifyLoad(boolean empty, int times, boolean hasFailed) {
verify(containerStatusEmptyPresenter,
times(times)).setup(containerSpec);
verify(containerRemoteStatusPresenter,
Expand Down Expand Up @@ -421,8 +434,11 @@ private void verifyLoad(boolean empty,

verify(view,
times(times)).setContainerStartState(State.DISABLED);
verify(view,
times(times)).setContainerStopState(State.ENABLED);
if (!hasFailed) {
verify(view, times(times)).setContainerStopState(State.ENABLED);
} else {
verify(view, times(times)).setContainerStopState(State.DISABLED);
}

verify(containerProcessConfigPresenter,
times(times)).setup(containerSpec,
Expand All @@ -440,8 +456,7 @@ public void testLoad() {

presenter.load(new ContainerSpecSelected(containerSpec));

verifyLoad(true,
1);
verifyLoad(true, 1, false);
}

@Test
Expand Down Expand Up @@ -514,8 +529,7 @@ public void testOnRefresh() {

presenter.onRefresh(new RefreshRemoteServers(containerSpec));

verifyLoad(true,
1);
verifyLoad(true, 1, false);
}

@Test
Expand Down Expand Up @@ -599,7 +613,7 @@ public void testUpdateStatusForFailed() {

verify(view).enableRemoveButton();
verify(view).setContainerStartState(State.DISABLED);
verify(view).setContainerStopState(State.ENABLED);
verify(view).setContainerStopState(State.DISABLED);
verify(view).disableToggleActivationButton();
}

Expand Down

0 comments on commit c2fda7a

Please sign in to comment.