@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); }
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<>(); } }
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; }
@Override public void startScanner(final ContainerSpecKey containerSpecKey, final Long interval) { 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); } ((RuleConfig) containerConfig).setPollInterval(interval); ((RuleConfig) containerConfig).setScannerStatus(KieScannerStatus.STARTED); templateStorage.update(serverTemplate); List<Container> containers = kieServerInstanceManager.startScanner(serverTemplate, containerSpec, interval); notificationService.notify(serverTemplate, containerSpec, containers); }
RuleConfig makeRuleConfig() { return new RuleConfig(null, KieScannerStatus.STOPPED); }
@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); }
@Test public void testOnRuleConfigUpdate() { final RuleConfigUpdated ruleConfigUpdated = new RuleConfigUpdated(); ruleConfigUpdated.setRuleConfig(ruleConfig); ruleConfigUpdated.setReleasedId(releaseId); final Long poolInterval = 1l; when(ruleConfig.getPollInterval()).thenReturn(poolInterval); presenter.onRuleConfigUpdate(ruleConfigUpdated); verify(view).setContent(eq(String.valueOf(poolInterval)), anyString(), any(State.class), any(State.class), any(State.class), any(State.class)); }
ruleConfig = new RuleConfig(); ruleConfig.setPollInterval(1000l); ruleConfig.setScannerStatus(KieScannerStatus.STARTED);
capabilityContainerConfig.put( Capability.RULE, new RuleConfig( null, KieScannerStatus.STOPPED ) );
@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); }
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); } }
RuleConfig ruleConfig = new RuleConfig(); ruleConfig.setPollInterval(1000l); ruleConfig.setScannerStatus(KieScannerStatus.STARTED);
RuleConfig ruleConfig = new RuleConfig(); ruleConfig.setPollInterval(1000l); ruleConfig.setScannerStatus(KieScannerStatus.STARTED); assertNotNull(ruleConfigCurrent); assertTrue(ruleConfigCurrent instanceof org.kie.server.controller.api.model.spec.RuleConfig); assertEquals(ruleConfig.getPollInterval(), ((org.kie.server.controller.api.model.spec.RuleConfig) ruleConfigCurrent).getPollInterval()); assertEquals(ruleConfig.getScannerStatus(), ((org.kie.server.controller.api.model.spec.RuleConfig) ruleConfigCurrent).getScannerStatus()); ContainerConfig containerConfig = new RuleConfig(); ((RuleConfig) containerConfig).setScannerStatus(KieScannerStatus.SCANNING); ((RuleConfig) containerConfig).setPollInterval(10l); assertNotNull(ruleConfigCurrent2); assertTrue(ruleConfigCurrent2 instanceof org.kie.server.controller.api.model.spec.RuleConfig); assertEquals(((org.kie.server.controller.api.model.spec.RuleConfig) containerConfig).getPollInterval(), ((org.kie.server.controller.api.model.spec.RuleConfig) ruleConfigCurrent2).getPollInterval()); assertEquals(((org.kie.server.controller.api.model.spec.RuleConfig) containerConfig).getScannerStatus(), ((org.kie.server.controller.api.model.spec.RuleConfig) ruleConfigCurrent2).getScannerStatus());
@Override public void complete() { final Map<Capability, ContainerConfig> mapConfig = new HashMap<Capability, ContainerConfig>(); if ( getPages().size() == 2 ) { mapConfig.put( Capability.PROCESS, processConfigPagePresenter.buildProcessConfig() ); } mapConfig.put( Capability.RULE, new RuleConfig( null, KieScannerStatus.STOPPED ) ); final ContainerSpec newContainer = newContainerFormPresenter.buildContainerSpec( newContainerFormPresenter.getServerTemplate().getId(), mapConfig ); specManagementService.call( new RemoteCallback<Void>() { @Override public void callback( final Void o ) { notification.fire( new NotificationEvent( newContainerFormPresenter.getView().getNewContainerWizardSaveSuccess(), NotificationEvent.NotificationType.SUCCESS ) ); clear(); NewContainerWizard.super.complete(); serverTemplateSelectedEvent.fire( new ServerTemplateSelected( serverTemplate, newContainer.getId() ) ); } }, new ErrorCallback<Object>() { @Override public boolean error( final Object o, final Throwable throwable ) { notification.fire( new NotificationEvent( newContainerFormPresenter.getView().getNewContainerWizardSaveError(), NotificationEvent.NotificationType.ERROR ) ); NewContainerWizard.this.pageSelected( 0 ); NewContainerWizard.this.start(); return false; } } ).saveContainerSpec( newContainerFormPresenter.getServerTemplate().getId(), newContainer ); }
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); }
RuleConfig ruleConfig = new RuleConfig(); ruleConfig.setPollInterval(1000l); ruleConfig.setScannerStatus(KieScannerStatus.STARTED);
@Test public void testOnConfigUpdateNoUpdate() { final RuleConfigUpdated ruleConfigUpdated = new RuleConfigUpdated(); ruleConfigUpdated.setContainerSpecKey(new ContainerSpecKey()); ruleConfigUpdated.setRuleConfig(new RuleConfig()); presenter.setup(containerSpec, ruleConfig); presenter.onConfigUpdate(ruleConfigUpdated); verify(view).setContent(anyString(), anyString(), any(State.class), any(State.class), any(State.class), any(State.class)); }
@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)); }
RuleConfig ruleConfig = new RuleConfig(); ruleConfig.setPollInterval(1000l); ruleConfig.setScannerStatus(KieScannerStatus.STARTED);
new ProcessConfig()); containerSpec.addConfig(Capability.RULE, new RuleConfig()); containers = new ArrayList<Container>(); containerSpecData = new ContainerSpecData(containerSpec,