Search in sources :

Example 1 with ServerInstanceUpdated

use of org.kie.server.controller.api.model.events.ServerInstanceUpdated in project kie-wb-common by kiegroup.

the class StandaloneControllerMultinodeIT method testAvailableRestEndpoint.

/**
 * This creates a multiinstance node where
 * instance 1 deploys the workbench
 * instance 2 deploys kie-server
 * after checking that the instance 2 manual is instantiated and working
 * it kills the server (only working in linux for now) -> on windows it will stop the app server gracefully
 * instance 2 is killed and the health check detects the problem
 * notifies back to the test that the kie server is disconnected (CountDownLatch in the EventHandler)
 */
@Test
@RunAsClient
@OperateOnDeployment("workbench")
public void testAvailableRestEndpoint() throws Exception {
    String url = new URL("http://localhost:8080/workbench/websocket/controller").toExternalForm();
    URL serverUrl = new URL("http://localhost:8230/kie-server/services/rest/server");
    CountDownLatch serverDown = new CountDownLatch(1);
    CountDownLatch kieServerTemplateUp = new CountDownLatch(1);
    CountDownLatch kieServerInstanceUp = new CountDownLatch(1);
    EventHandler customWSEventHandler = new EventHandler() {

        @Override
        public void onServerInstanceConnected(ServerInstanceConnected serverInstanceConnected) {
            LOGGER.info("onServerInstanceConnected :" + serverInstanceConnected);
        }

        @Override
        public void onServerInstanceDeleted(ServerInstanceDeleted serverInstanceDeleted) {
            LOGGER.info("onServerInstanceDeleted :" + serverInstanceDeleted);
        }

        @Override
        public void onServerInstanceDisconnected(ServerInstanceDisconnected serverInstanceDisconnected) {
            LOGGER.info("onServerInstanceDisconnected :" + serverInstanceDisconnected);
            serverDown.countDown();
        }

        @Override
        public void onServerTemplateDeleted(ServerTemplateDeleted serverTemplateDeleted) {
            LOGGER.info("onServerTemplateDeleted :" + serverTemplateDeleted);
        }

        @Override
        public void onServerTemplateUpdated(ServerTemplateUpdated serverTemplateUpdated) {
            LOGGER.info("onServerTemplateUpdated :" + serverTemplateUpdated);
            kieServerTemplateUp.countDown();
        }

        @Override
        public void onServerInstanceUpdated(ServerInstanceUpdated serverInstanceUpdated) {
            LOGGER.info("onServerInstanceUpdated :" + serverInstanceUpdated);
            kieServerInstanceUp.countDown();
        }

        @Override
        public void onContainerSpecUpdated(ContainerSpecUpdated containerSpecUpdated) {
            LOGGER.info("onContainerSpecUpdated :" + containerSpecUpdated);
        }
    };
    deployer.deploy("kie-server");
    assertTrue(ping(serverUrl));
    // the use of manually deployment is the only way to guarantee that the web context is completely deployed
    // and not causing a race condition when the controller ping the server and severing the connection
    deployer.deploy("workbench");
    try (WebSocketKieServerControllerClient client = (WebSocketKieServerControllerClient) KieServerControllerClientFactory.newWebSocketClient(url, USER, PASSWORD, customWSEventHandler)) {
        kieServerTemplateUp.await(100, TimeUnit.SECONDS);
        kieServerInstanceUp.await(100, TimeUnit.SECONDS);
        ServerInstanceKeyList list = client.getServerInstances(KIE_SERVER_ID);
        assertEquals(1, list.getServerInstanceKeys().length);
        // kill the secondary node
        controller.kill(SECONDARY_NODE);
        serverDown.await(100, TimeUnit.SECONDS);
        assertFalse(ping(serverUrl));
        list = client.getServerInstances(KIE_SERVER_ID);
        assertEquals(0, list.getServerInstanceKeys().length);
    }
}
Also used : ContainerSpecUpdated(org.kie.server.controller.api.model.events.ContainerSpecUpdated) ServerInstanceDeleted(org.kie.server.controller.api.model.events.ServerInstanceDeleted) ServerInstanceUpdated(org.kie.server.controller.api.model.events.ServerInstanceUpdated) ServerTemplateDeleted(org.kie.server.controller.api.model.events.ServerTemplateDeleted) EventHandler(org.kie.server.controller.client.event.EventHandler) ServerInstanceConnected(org.kie.server.controller.api.model.events.ServerInstanceConnected) CountDownLatch(java.util.concurrent.CountDownLatch) URL(java.net.URL) ServerTemplateUpdated(org.kie.server.controller.api.model.events.ServerTemplateUpdated) WebSocketKieServerControllerClient(org.kie.server.controller.client.websocket.WebSocketKieServerControllerClient) ServerInstanceKeyList(org.kie.server.controller.api.model.runtime.ServerInstanceKeyList) ServerInstanceDisconnected(org.kie.server.controller.api.model.events.ServerInstanceDisconnected) OperateOnDeployment(org.jboss.arquillian.container.test.api.OperateOnDeployment) RunAsClient(org.jboss.arquillian.container.test.api.RunAsClient) Test(org.junit.Test)

Example 2 with ServerInstanceUpdated

use of org.kie.server.controller.api.model.events.ServerInstanceUpdated in project kie-wb-common by kiegroup.

the class ContainerPresenterTest method testOnInstanceUpdatedWhenContainerSpecServerTemplateNotEqualServerInstanceUpdatedServerTemplate.

@Test
public void testOnInstanceUpdatedWhenContainerSpecServerTemplateNotEqualServerInstanceUpdatedServerTemplate() {
    ServerInstanceUpdated serverInstanceUpdated = mock(ServerInstanceUpdated.class);
    ServerInstance serverInstance = mock(ServerInstance.class);
    when(serverInstanceUpdated.getServerInstance()).thenReturn(serverInstance);
    when(serverInstance.getServerTemplateId()).thenReturn(serverTemplateKey + "1");
    presenter.onInstanceUpdated(serverInstanceUpdated);
    verify(runtimeManagementService, times(0)).getContainersByContainerSpec(any(), any());
}
Also used : ServerInstanceUpdated(org.kie.server.controller.api.model.events.ServerInstanceUpdated) ServerInstance(org.kie.server.controller.api.model.runtime.ServerInstance) Test(org.junit.Test)

Example 3 with ServerInstanceUpdated

use of org.kie.server.controller.api.model.events.ServerInstanceUpdated in project kie-wb-common by kiegroup.

the class ServerTemplatePresenterTest method testOnServerInstanceUpdatedWithoutCurrentServer.

@Test
public void testOnServerInstanceUpdatedWithoutCurrentServer() {
    final ServerTemplate serverTemplate = new ServerTemplate("ServerTemplateId", "ServerTemplateName");
    final ServerInstance serverInstance = new ServerInstance(serverTemplate.getId(), "serverName", "serverInstanceId", "url", "1.0", Collections.<Message>emptyList(), Collections.<Container>emptyList());
    presenter.onServerInstanceUpdated(new ServerInstanceUpdated(serverInstance));
    verify(view, never()).addServerInstance(Mockito.<String>any(), Mockito.<String>any(), Mockito.<String>any(), any(Command.class));
}
Also used : ServerTemplate(org.kie.server.controller.api.model.spec.ServerTemplate) ParameterizedCommand(org.uberfire.mvp.ParameterizedCommand) Command(org.uberfire.mvp.Command) ServerInstanceUpdated(org.kie.server.controller.api.model.events.ServerInstanceUpdated) ServerInstance(org.kie.server.controller.api.model.runtime.ServerInstance) Test(org.junit.Test)

Example 4 with ServerInstanceUpdated

use of org.kie.server.controller.api.model.events.ServerInstanceUpdated in project kie-wb-common by kiegroup.

the class RemotePresenterTest method testOnInstanceUpdateWithoutSelect.

@Test
public void testOnInstanceUpdateWithoutSelect() {
    final ServerInstance serverInstance = new ServerInstance("templateId", "serverName", "serverInstanceId", "url", "1.0", Collections.<Message>emptyList(), Collections.<Container>emptyList());
    presenter.onInstanceUpdate(new ServerInstanceUpdated(serverInstance));
    verify(view, never()).clear();
    verify(view, never()).setServerName(anyString());
    verify(view, never()).setServerURL(anyString());
    verify(view, never()).setEmptyView(any(RemoteEmptyView.class));
}
Also used : ServerInstanceUpdated(org.kie.server.controller.api.model.events.ServerInstanceUpdated) ServerInstance(org.kie.server.controller.api.model.runtime.ServerInstance) RemoteEmptyView(org.kie.workbench.common.screens.server.management.client.remote.empty.RemoteEmptyView) Test(org.junit.Test)

Example 5 with ServerInstanceUpdated

use of org.kie.server.controller.api.model.events.ServerInstanceUpdated in project kie-wb-common by kiegroup.

the class ContainerPresenterTest method testOnInstanceUpdatedWhenContainerSpecIsNull.

@Test
public void testOnInstanceUpdatedWhenContainerSpecIsNull() {
    ServerInstanceUpdated serverInstanceUpdated = mock(ServerInstanceUpdated.class);
    ContainerSpec containerSpec = null;
    presenter.setContainerSpec(containerSpec);
    presenter.onInstanceUpdated(serverInstanceUpdated);
    verify(runtimeManagementService, times(0)).getContainersByContainerSpec(any(), any());
}
Also used : ServerInstanceUpdated(org.kie.server.controller.api.model.events.ServerInstanceUpdated) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)11 ServerInstanceUpdated (org.kie.server.controller.api.model.events.ServerInstanceUpdated)11 ServerInstance (org.kie.server.controller.api.model.runtime.ServerInstance)9 Container (org.kie.server.controller.api.model.runtime.Container)3 ContainerSpec (org.kie.server.controller.api.model.spec.ContainerSpec)3 ContainerCardPresenter (org.kie.workbench.common.screens.server.management.client.container.status.card.ContainerCardPresenter)3 ServerInstanceDeleted (org.kie.server.controller.api.model.events.ServerInstanceDeleted)2 ServerTemplate (org.kie.server.controller.api.model.spec.ServerTemplate)2 ServerInstanceSelected (org.kie.workbench.common.screens.server.management.client.events.ServerInstanceSelected)2 Command (org.uberfire.mvp.Command)2 ParameterizedCommand (org.uberfire.mvp.ParameterizedCommand)2 URL (java.net.URL)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 OperateOnDeployment (org.jboss.arquillian.container.test.api.OperateOnDeployment)1 RunAsClient (org.jboss.arquillian.container.test.api.RunAsClient)1 ReleaseId (org.kie.server.api.model.ReleaseId)1 ContainerSpecUpdated (org.kie.server.controller.api.model.events.ContainerSpecUpdated)1 ServerInstanceConnected (org.kie.server.controller.api.model.events.ServerInstanceConnected)1 ServerInstanceDisconnected (org.kie.server.controller.api.model.events.ServerInstanceDisconnected)1 ServerTemplateDeleted (org.kie.server.controller.api.model.events.ServerTemplateDeleted)1