public KieContainerStatus getStatus() { return resource.getStatus(); }
public KieContainerStatus getStatus() { return resource.getStatus(); }
public boolean accept(KieContainerResource kieContainerResource) { if (kieContainerResource == null) { throw new IllegalArgumentException("KieContainerResource can not be null!"); } // in case resolved release id exists, check against that ReleaseId resolvedReleaseId = kieContainerResource.getResolvedReleaseId(); if (resolvedReleaseId != null) { if (!releaseIdFilter.accept(resolvedReleaseId)) { return false; } } else { if (!releaseIdFilter.accept(kieContainerResource.getReleaseId())) { return false; } } KieContainerStatus status = kieContainerResource.getStatus(); if (status != null && !statusFilter.accept(status)) { return false; } // all sub-filters accepted the container, so it is a match return true; }
@Test public void testMakeContainerResourceWhenConfigsIsNull() { final String id = "id"; final ReleaseId releaseId = mock(ReleaseId.class); final ReleaseId resolvedReleasedId = mock(ReleaseId.class); final KieContainerStatus status = KieContainerStatus.CREATING; final String containerName = "containerName"; final Collection<Message> messages = new ArrayList<>(); doReturn(id).when(containerSpec).getId(); doReturn(releaseId).when(containerSpec).getReleasedId(); doReturn(resolvedReleasedId).when(container).getResolvedReleasedId(); doReturn(status).when(container).getStatus(); doReturn(containerName).when(containerSpec).getContainerName(); doReturn(messages).when(container).getMessages(); doReturn(null).when(containerSpec).getConfigs(); final KieContainerResource resource = instanceManager.makeContainerResource(container, containerSpec); assertEquals(id, resource.getContainerId()); assertEquals(releaseId, resource.getReleaseId()); assertEquals(resolvedReleasedId, resource.getResolvedReleaseId()); assertEquals(status, resource.getStatus()); assertEquals(containerName, resource.getContainerAlias()); assertEquals(messages, resource.getMessages()); verify(instanceManager, never()).setRuleConfigAttributes(any(), any()); verify(instanceManager, never()).setProcessConfigAttributes(any(), any()); }
@Test public void testGetContainersRemoteOperationWhenResponseTypeIsSUCCESS() { doReturn(containerResource).when(response).getResult(); doReturn(response).when(client).getContainerInfo(any()); doReturn(ServiceResponse.ResponseType.SUCCESS).when(response).getType(); final KieServerInstanceManager.RemoteKieServerOperation<Void> operation = instanceManager.getContainersRemoteOperation(serverTemplate, containerSpec); operation.doOperation(client, container); verify(container).setContainerSpecId(containerResource.getContainerId()); verify(container).setContainerName(containerResource.getContainerId()); verify(container).setResolvedReleasedId(containerResource.getReleaseId()); verify(container).setServerTemplateId(serverTemplate.getId()); verify(container).setStatus(containerResource.getStatus()); verify(container).setMessages(containerResource.getMessages()); }
@Test public void testMakeContainerResourceWhenConfigsIsNotNull() { final String id = "id"; final ReleaseId releaseId = mock(ReleaseId.class); final ReleaseId resolvedReleasedId = mock(ReleaseId.class); final KieContainerStatus status = KieContainerStatus.CREATING; final String containerName = "containerName"; final Collection<Message> messages = new ArrayList<>(); final Map<?, ?> configs = mock(Map.class); doReturn(id).when(containerSpec).getId(); doReturn(releaseId).when(containerSpec).getReleasedId(); doReturn(resolvedReleasedId).when(container).getResolvedReleasedId(); doReturn(status).when(container).getStatus(); doReturn(containerName).when(containerSpec).getContainerName(); doReturn(messages).when(container).getMessages(); doReturn(configs).when(containerSpec).getConfigs(); final KieContainerResource resource = instanceManager.makeContainerResource(container, containerSpec); assertEquals(id, resource.getContainerId()); assertEquals(releaseId, resource.getReleaseId()); assertEquals(resolvedReleasedId, resource.getResolvedReleaseId()); assertEquals(status, resource.getStatus()); assertEquals(containerName, resource.getContainerAlias()); assertEquals(messages, resource.getMessages()); verify(instanceManager).setRuleConfigAttributes(containerSpec, resource); verify(instanceManager).setProcessConfigAttributes(containerSpec, resource); }
public void installContainersSync(KieServerImpl kieServer, Set<KieContainerResource> containers, KieServerState currentState, KieServerSetup kieServerSetup) { logger.info("About to install containers '{}' on kie server '{}'", containers, kieServer); if (containers == null) { kieServer.markAsReady(); return; } for (KieContainerResource containerResource : containers) { if (KieContainerStatus.STARTED.equals(containerResource.getStatus())) { kieServer.createContainer(containerResource.getContainerId(), containerResource); } else if (KieContainerStatus.DEACTIVATED.equals(containerResource.getStatus())) { kieServer.createContainer(containerResource.getContainerId(), containerResource); kieServer.deactivateContainer(containerResource.getContainerId()); containerResource.setStatus(KieContainerStatus.DEACTIVATED); } } currentState.setContainers(containers); if (kieServerSetup.getServerConfig() != null) { currentState.setConfiguration(kieServerSetup.getServerConfig()); } kieServer.getServerRegistry().getStateRepository().store(KieServerEnvironment.getServerId(), currentState); kieServer.markAsReady(); } }
container.setResolvedReleasedId(containerResource.getResolvedReleaseId() == null ? containerResource.getReleaseId() : containerResource.getResolvedReleaseId()); container.setServerTemplateId(serverInstanceKey.getServerTemplateId()); container.setStatus(containerResource.getStatus()); container.setMessages(containerResource.getMessages());
@Override public Void doOperation(KieServicesClient client, Container container) { final ServiceResponse<KieContainerResource> response = client.getContainerInfo(containerSpec.getId()); final KieContainerResource containerResource = response.getResult(); if (response.getType().equals(ServiceResponse.ResponseType.SUCCESS)) { container.setContainerSpecId(containerResource.getContainerId()); container.setContainerName(containerResource.getContainerAlias()); container.setResolvedReleasedId(containerResource.getResolvedReleaseId() == null ? containerResource.getReleaseId() : containerResource.getResolvedReleaseId()); container.setServerTemplateId(serverTemplate.getId()); container.setStatus(containerResource.getStatus()); container.setMessages(containerResource.getMessages()); } return null; } };
@Test public void testNotAllowedDisposeContainerDueToActiveProcessInstances() throws Exception { KieServerAssert.assertSuccess(client.createContainer(CONTAINER_ID, new KieContainerResource(CONTAINER_ID, releaseId))); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("stringData", "waiting for signal"); parameters.put("personData", createPersonInstance(USER_JOHN)); Long processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK, parameters); // dispose not allowed as there is active process instance ServiceResponse<Void> disposeContainerResponse = client.disposeContainer(CONTAINER_ID); assertEquals(ServiceResponse.ResponseType.FAILURE, disposeContainerResponse.getType()); String failureMessage = disposeContainerResponse.getMsg(); assertEquals(DISPOSE_FAILURE_MSG, failureMessage); // after failed dispose container should be fully operational and in started state ServiceResponse<KieContainerResource> containerResponse = client.getContainerInfo(CONTAINER_ID); assertEquals(ServiceResponse.ResponseType.SUCCESS, containerResponse.getType()); KieContainerResource container = containerResponse.getResult(); assertNotNull(container); assertEquals(KieContainerStatus.STARTED, container.getStatus()); // let's abort the active instance processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); // and now proceed with dispose again which must be successful disposeContainerResponse = client.disposeContainer(CONTAINER_ID); assertEquals(ServiceResponse.ResponseType.SUCCESS, disposeContainerResponse.getType()); } }