List<Container> updateContainerRuleConfig(final RuleConfig ruleConfig, final ServerTemplate serverTemplate, final ContainerSpec containerSpec) { final Long interval = ruleConfig.getPollInterval(); final KieScannerStatus status = ruleConfig.getScannerStatus(); switch (status) { case STARTED: return kieServerInstanceManager.startScanner(serverTemplate, containerSpec, interval); case STOPPED: return kieServerInstanceManager.stopScanner(serverTemplate, containerSpec); default: return new ArrayList<>(); } }
@Test public void testUpdateContainerRuleConfigWhenKieScannerStatusIsStopped() { final SpecManagementServiceImpl specManagementService = (SpecManagementServiceImpl) this.specManagementService; final RuleConfig ruleConfig = mock(RuleConfig.class); final ServerTemplate serverTemplate = mock(ServerTemplate.class); final ContainerSpec containerSpec = mock(ContainerSpec.class); final List<?> expectedContainers = mock(List.class); doReturn(KieScannerStatus.STOPPED).when(ruleConfig).getScannerStatus(); doReturn(expectedContainers).when(kieServerInstanceManager).stopScanner(serverTemplate, containerSpec); final List<Container> actualContainers = specManagementService.updateContainerRuleConfig(ruleConfig, serverTemplate, containerSpec); assertEquals(expectedContainers, actualContainers); }
@Test public void testUpdateContainerRuleConfigWhenKieScannerStatusIsNotStartedNeitherStopped() { final SpecManagementServiceImpl specManagementService = (SpecManagementServiceImpl) this.specManagementService; final RuleConfig ruleConfig = mock(RuleConfig.class); final ServerTemplate serverTemplate = mock(ServerTemplate.class); final ContainerSpec containerSpec = mock(ContainerSpec.class); final List<?> expectedContainers = new ArrayList<>(); doReturn(KieScannerStatus.UNKNOWN).when(ruleConfig).getScannerStatus(); final List<Container> actualContainers = specManagementService.updateContainerRuleConfig(ruleConfig, serverTemplate, containerSpec); assertEquals(expectedContainers, actualContainers); }
void setRuleConfigAttributes(final ContainerSpec containerSpec, final KieContainerResource containerResource) { final ContainerConfig containerConfig = containerSpec.getConfigs().get(Capability.RULE); if (containerConfig != null) { final RuleConfig ruleConfig = (RuleConfig) containerConfig; final KieScannerResource scannerResource = new KieScannerResource(); scannerResource.setPollInterval(ruleConfig.getPollInterval()); scannerResource.setStatus(ruleConfig.getScannerStatus()); containerResource.setScanner(scannerResource); } }
@Test public void testSetup() { when(ruleConfig.getScannerStatus()).thenReturn(KieScannerStatus.STOPPED); when(ruleConfig.getPollInterval()).thenReturn(null); releaseId.setVersion("1.x"); presenter.setup(containerSpec, ruleConfig); verify(view).setContent(eq(""), eq("1.x"), eq(State.ENABLED), eq(State.DISABLED), eq(State.ENABLED), eq(State.ENABLED)); }
@Test public void testSetupScannerIntervalSeconds() { when(view.getIntervalTimeUnit()).thenReturn(ContainerRulesConfigPresenter.S); when(ruleConfig.getScannerStatus()).thenReturn(KieScannerStatus.STARTED); when(ruleConfig.getPollInterval()).thenReturn(TimeUnit.MILLISECONDS.convert(Long.valueOf(1), TimeUnit.SECONDS)); releaseId.setVersion("1.x"); presenter.setup(containerSpec, ruleConfig); verify(view).setContent(eq("1"), eq("1.x"), eq(State.DISABLED), eq(State.ENABLED), eq(State.DISABLED), eq(State.DISABLED)); }
@Test public void testSetupScannerIntervalMinutes() { when(view.getIntervalTimeUnit()).thenReturn(ContainerRulesConfigPresenter.M); when(ruleConfig.getScannerStatus()).thenReturn(KieScannerStatus.STARTED); when(ruleConfig.getPollInterval()).thenReturn(TimeUnit.MILLISECONDS.convert(Long.valueOf(1), TimeUnit.MINUTES)); releaseId.setVersion("1.x"); presenter.setup(containerSpec, ruleConfig); verify(view).setContent(eq("1"), eq("1.x"), eq(State.DISABLED), eq(State.ENABLED), eq(State.DISABLED), eq(State.DISABLED)); }
@Test public void testSetupScannerIntervalHours() { when(view.getIntervalTimeUnit()).thenReturn(ContainerRulesConfigPresenter.H); when(ruleConfig.getScannerStatus()).thenReturn(KieScannerStatus.STARTED); when(ruleConfig.getPollInterval()).thenReturn(TimeUnit.MILLISECONDS.convert(Long.valueOf(1), TimeUnit.HOURS)); releaseId.setVersion("1.x"); presenter.setup(containerSpec, ruleConfig); verify(view).setContent(eq("1"), eq("1.x"), eq(State.DISABLED), eq(State.ENABLED), eq(State.DISABLED), eq(State.DISABLED)); }
@Test public void testSetupScannerIntervalMillis() { when(view.getIntervalTimeUnit()).thenReturn(ContainerRulesConfigPresenter.MS); when(ruleConfig.getScannerStatus()).thenReturn(KieScannerStatus.STARTED); when(ruleConfig.getPollInterval()).thenReturn(1L); releaseId.setVersion("1.x"); presenter.setup(containerSpec, ruleConfig); verify(view).setContent(eq("1"), eq("1.x"), eq(State.DISABLED), eq(State.ENABLED), eq(State.DISABLED), eq(State.DISABLED)); }
@Test public void testUpdateContainerRuleConfigWhenKieScannerStatusIsStarted() { final SpecManagementServiceImpl specManagementService = (SpecManagementServiceImpl) this.specManagementService; final RuleConfig ruleConfig = mock(RuleConfig.class); final ServerTemplate serverTemplate = mock(ServerTemplate.class); final ContainerSpec containerSpec = mock(ContainerSpec.class); final Long interval = 1L; final List<?> expectedContainers = mock(List.class); doReturn(interval).when(ruleConfig).getPollInterval(); doReturn(KieScannerStatus.STARTED).when(ruleConfig).getScannerStatus(); doReturn(expectedContainers).when(kieServerInstanceManager).startScanner(serverTemplate, containerSpec, interval); final List<Container> actualContainers = specManagementService.updateContainerRuleConfig(ruleConfig, serverTemplate, containerSpec); assertEquals(expectedContainers, actualContainers); }
@Test public void testSetupScannerIntervalDays() { when(view.getIntervalTimeUnit()).thenReturn(ContainerRulesConfigPresenter.D); when(ruleConfig.getScannerStatus()).thenReturn(KieScannerStatus.STARTED); when(ruleConfig.getPollInterval()).thenReturn(TimeUnit.MILLISECONDS.convert(Long.valueOf(1), TimeUnit.DAYS)); releaseId.setVersion("1.x"); presenter.setup(containerSpec, ruleConfig); verify(view).setContent(eq("1"), eq("1.x"), eq(State.DISABLED), eq(State.ENABLED), eq(State.DISABLED), eq(State.DISABLED)); } }
private void setRuleConfig(final RuleConfig ruleConfig, final String version) { checkNotNull("ruleConfig", ruleConfig); checkNotEmpty("version", version); this.scannerStatus = ruleConfig.getScannerStatus(); if (ruleConfig.getPollInterval() != null) { this.pollInterval = String.valueOf(adjustInterval(ruleConfig.getPollInterval().longValue(), view.getIntervalTimeUnit())); } else { this.pollInterval = ""; } setScannerStatus(); view.setContent(pollInterval, version, startScannerState, stopScannerState, scanNowState, upgradeState); }
@Test public void testSetRuleConfigAttributesWhenRuleConfigIsNotNull() { final Map<?, ?> configs = mock(Map.class); final RuleConfig containerConfig = mock(RuleConfig.class); final ArgumentCaptor<KieScannerResource> scannerResourceCaptor = ArgumentCaptor.forClass(KieScannerResource.class); final Long pollInterval = 1L; final KieScannerStatus scannerStatus = KieScannerStatus.CREATED; doReturn(pollInterval).when(containerConfig).getPollInterval(); doReturn(scannerStatus).when(containerConfig).getScannerStatus(); doReturn(containerConfig).when(configs).get(Capability.RULE); doReturn(configs).when(containerSpec).getConfigs(); instanceManager.setRuleConfigAttributes(containerSpec, containerResource); verify(containerResource).setScanner(scannerResourceCaptor.capture()); final KieScannerResource scannerResource = scannerResourceCaptor.getValue(); assertEquals(pollInterval, scannerResource.getPollInterval()); assertEquals(scannerStatus, scannerResource.getStatus()); }
private ContainerConfig copy(final ContainerConfig _value) { if (_value instanceof RuleConfig) { final RuleConfig value = (RuleConfig) _value; return new RuleConfig(value.getPollInterval(), value.getScannerStatus()); } else if (_value instanceof ProcessConfig) { final ProcessConfig value = (ProcessConfig) _value; return new ProcessConfig(value.getRuntimeStrategy(), value.getKBase(), value.getKSession(), value.getMergeMode()); } return null; }
@Test public void testStopScanner() { List<Container> fakeResult = new ArrayList<Container>(); fakeResult.add(container); when(kieServerInstanceManager.stopScanner(any(ServerTemplate.class), any(ContainerSpec.class))).thenReturn(fakeResult); ruleCapabilitiesService.stopScanner(containerSpec); verify(kieServerInstanceManager, times(1)).stopScanner(any(ServerTemplate.class), any(ContainerSpec.class)); ServerTemplate updated = specManagementService.getServerTemplate(serverTemplate.getId()); Collection<ContainerSpec> containerSpecs = updated.getContainersSpec(); assertNotNull(containerSpecs); assertEquals(1, containerSpecs.size()); ContainerSpec updatedContainer = containerSpecs.iterator().next(); assertNotNull(updatedContainer); ContainerConfig ruleConfig = updatedContainer.getConfigs().get(Capability.RULE); assertNotNull(ruleConfig); assertTrue(ruleConfig instanceof RuleConfig); RuleConfig ruleCg = (RuleConfig) ruleConfig; assertEquals(KieScannerStatus.STOPPED, ruleCg.getScannerStatus()); assertNull(ruleCg.getPollInterval()); }
@Test public void testStartScanner() { List<Container> fakeResult = new ArrayList<Container>(); fakeResult.add(container); when(kieServerInstanceManager.startScanner(any(ServerTemplate.class), any(ContainerSpec.class), anyLong())).thenReturn(fakeResult); ruleCapabilitiesService.startScanner(containerSpec, 100l); verify(kieServerInstanceManager, times(1)).startScanner(any(ServerTemplate.class), any(ContainerSpec.class), anyLong()); ServerTemplate updated = specManagementService.getServerTemplate(serverTemplate.getId()); Collection<ContainerSpec> containerSpecs = updated.getContainersSpec(); assertNotNull(containerSpecs); assertEquals(1, containerSpecs.size()); ContainerSpec updatedContainer = containerSpecs.iterator().next(); assertNotNull(updatedContainer); ContainerConfig ruleConfig = updatedContainer.getConfigs().get(Capability.RULE); assertNotNull(ruleConfig); assertTrue(ruleConfig instanceof RuleConfig); RuleConfig ruleCg = (RuleConfig) ruleConfig; assertEquals(KieScannerStatus.STARTED, ruleCg.getScannerStatus()); assertEquals(100l, ruleCg.getPollInterval().longValue()); }
@Override public void stopScanner(final ContainerSpecKey containerSpecKey) { ServerTemplate serverTemplate = templateStorage.load(containerSpecKey.getServerTemplateKey().getId()); if (serverTemplate == null) { throw new KieServerControllerIllegalArgumentException("No server template found for id " + containerSpecKey.getServerTemplateKey().getId()); } ContainerSpec containerSpec = serverTemplate.getContainerSpec(containerSpecKey.getId()); if (containerSpec == null) { throw new KieServerControllerIllegalArgumentException("No container spec found for id " + containerSpecKey.getId()); } ContainerConfig containerConfig = containerSpec.getConfigs().get(Capability.RULE); if (containerConfig == null) { containerConfig = new RuleConfig(); containerSpec.getConfigs().put(Capability.RULE, containerConfig); } if(((RuleConfig) containerConfig).getScannerStatus() == KieScannerStatus.STOPPED){ return; } ((RuleConfig) containerConfig).setPollInterval(null); ((RuleConfig) containerConfig).setScannerStatus(KieScannerStatus.STOPPED); templateStorage.update(serverTemplate); List<Container> containers = kieServerInstanceManager.stopScanner(serverTemplate, containerSpec); notificationService.notify(serverTemplate, containerSpec, containers); }
assertNotNull(ruleConfig); assertEquals(this.ruleConfig.getPollInterval(), ruleConfig.getPollInterval()); assertEquals(this.ruleConfig.getScannerStatus(), ruleConfig.getScannerStatus());
assertNotNull(ruleConfig); assertEquals(this.ruleConfig.getPollInterval(), ruleConfig.getPollInterval()); assertEquals(this.ruleConfig.getScannerStatus(), ruleConfig.getScannerStatus());
assertNotNull(ruleConfig); assertEquals(this.ruleConfig.getPollInterval(), ruleConfig.getPollInterval()); assertEquals(this.ruleConfig.getScannerStatus(), ruleConfig.getScannerStatus());