private void index( final Container container, final ContainerCardPresenter cardPresenter ) { if ( !index.containsKey( container.getServerInstanceKey().getServerInstanceId() ) ) { index.put( container.getServerInstanceKey().getServerInstanceId(), new HashMap<String, ContainerCardPresenter>() ); } index.get( container.getServerInstanceKey().getServerInstanceId() ).put( container.getContainerSpecId(), cardPresenter ); }
private Container makeContainer(final String seed) { final Container container = mock(Container.class); doReturn(seed).when(container).getContainerSpecId(); doReturn(mock(ServerInstanceKey.class)).when(container).getServerInstanceKey(); return container; }
private ContainerCardPresenter buildContainer( final Container container, boolean addCard ) { final ContainerCardPresenter cardPresenter = cardPresenterProvider.get(); cardPresenter.setup( container.getServerInstanceKey(), container ); if(addCard) { view.addCard( cardPresenter.getView().asWidget() ); } return cardPresenter; }
private ContainerSpecKey buildContainerSpecKey( final Container container ) { return new ContainerSpecKey( container.getContainerSpecId(), container.getContainerName(), new ServerTemplateKey( container.getServerInstanceKey().getServerTemplateId(), "" ) ); } }
@Override public synchronized void updateContainerConfig(final String serverTemplateId, final String containerSpecId, final Capability capability, final ContainerConfig containerConfig) { final ServerTemplate serverTemplate = templateStorage.load(serverTemplateId); if (serverTemplate == null) { throw new KieServerControllerIllegalArgumentException("No server template found for id " + serverTemplateId); } final ContainerSpec containerSpec = serverTemplate.getContainerSpec(containerSpecId); if (containerSpec == null) { throw new KieServerControllerIllegalArgumentException("No container spec found for id " + containerSpecId + " within server template with id " + serverTemplateId); } final List<Container> affectedContainers = updateContainerConfig(capability, containerConfig, serverTemplate, containerSpec); if (affectedContainers.isEmpty()) { logInfo("Update of container configuration resulted in no changes to containers running on kie-servers"); } affectedContainers.forEach(ac -> { logDebug("Container {} on server {} was affected by a change in the scanner", ac.getContainerSpecId(), ac.getServerInstanceKey()); }); containerSpec.getConfigs().put(capability, containerConfig); templateStorage.update(serverTemplate); notificationService.notify(new ServerTemplateUpdated(serverTemplate)); }
@Test public void testOnServerInstanceUpdated() { final ContainerCardPresenter cardPresenter = mock( ContainerCardPresenter.class ); when( cardPresenter.getView() ).thenReturn( mock( ContainerCardPresenter.View.class ) ); when( presenterProvider.get() ).thenReturn( cardPresenter ); final ServerInstance serverInstance = new ServerInstance( "templateId", "serverName", "serverInstanceId", "url", "1.0", Collections.<Message>emptyList(), Collections.<Container>emptyList() ); final Container container = new Container( "containerSpecId", "containerName", serverInstance, Collections.<Message>emptyList(), null, null ); container.setStatus( KieContainerStatus.STARTED ); final Container containerToBeRemoved = new Container( "containerToBeRemovedSpecId", "containerToBeRemovedName", serverInstance, Collections.<Message>emptyList(), null, null ); containerToBeRemoved.setStatus( KieContainerStatus.STARTED ); serverInstance.addContainer( container ); presenter.setup( new ContainerSpec(), Arrays.asList( container, containerToBeRemoved ) ); presenter.onServerInstanceUpdated( new ServerInstanceUpdated( serverInstance ) ); //One container updated, one removed verify( cardPresenter ).updateContent( serverInstance, container ); verify( cardPresenter ).delete(); final ArgumentCaptor<Container> containerCaptor = ArgumentCaptor.forClass( Container.class ); verify( cardPresenter, times( 2 ) ).setup( eq( container.getServerInstanceKey() ), containerCaptor.capture() ); final List<Container> containers = containerCaptor.getAllValues(); assertEquals( 2, containers.size() ); assertEquals( container, containers.get( 0 ) ); assertEquals( containerToBeRemoved, containers.get( 1 ) ); }
@Test public void testOnDelete() { final ContainerCardPresenter cardPresenter = mock( ContainerCardPresenter.class ); when( cardPresenter.getView() ).thenReturn( mock( ContainerCardPresenter.View.class ) ); when( presenterProvider.get() ).thenReturn( cardPresenter ); final ServerInstanceKey serverInstanceKey = new ServerInstanceKey( "templateId", "serverName", "serverInstanceId", "url" ); final Container container = new Container( "containerSpecId", "containerName", serverInstanceKey, Collections.<Message>emptyList(), null, null ); container.setStatus( KieContainerStatus.STARTED ); presenter.setup( new ContainerSpec(), Collections.singletonList( container ) ); verify( view ).clear(); verify( cardPresenter ).setup( container.getServerInstanceKey(), container ); verify( view ).addCard( any( IsWidget.class ) ); presenter.onDelete( new ServerInstanceDeleted( serverInstanceKey.getServerInstanceId() ) ); verify( cardPresenter ).delete(); presenter.onDelete( new ServerInstanceDeleted( "randomKey" ) ); verify( cardPresenter ).delete(); }
container1.getServerInstanceKey()); verify(specManagementService).logDebug("Container {} on server {} was affected by a change in the scanner", container2.getContainerSpecId(), container2.getServerInstanceKey()); verify(specManagementService, never()).logInfo(any()); verify(configs).put(capability, containerConfig);
@Test public void testOnServerInstanceUpdatedDuplicatedContainerName() { final ContainerCardPresenter cardPresenter = mock( ContainerCardPresenter.class ); when( cardPresenter.getView() ).thenReturn( mock( ContainerCardPresenter.View.class ) ); when( presenterProvider.get() ).thenReturn( cardPresenter ); final ServerInstance serverInstance = new ServerInstance( "templateId", "serverName", "serverInstanceId", "url", "1.0", Collections.<Message>emptyList(), Collections.<Container>emptyList() ); final Container container = new Container( "containerSpecId", "containerName", serverInstance, Collections.<Message>emptyList(), null, null ); container.setStatus( KieContainerStatus.STARTED ); final Container container2 = new Container( "containerSpecId2", "containerName", serverInstance, Collections.<Message>emptyList(), null, null ); container2.setStatus( KieContainerStatus.STARTED ); final Container containerToBeRemoved = new Container( "containerToBeRemovedSpecId", "containerToBeRemovedName", serverInstance, Collections.<Message>emptyList(), null, null ); containerToBeRemoved.setStatus( KieContainerStatus.STARTED ); serverInstance.addContainer( container ); serverInstance.addContainer( container2 ); presenter.setup( new ContainerSpec(), Arrays.asList( container, container2, containerToBeRemoved ) ); presenter.onServerInstanceUpdated( new ServerInstanceUpdated( serverInstance ) ); //One container updated, one removed verify( cardPresenter ).updateContent( serverInstance, container ); verify( cardPresenter ).updateContent( serverInstance, container2 ); verify( cardPresenter ).delete(); final ArgumentCaptor<Container> containerCaptor = ArgumentCaptor.forClass( Container.class ); verify( cardPresenter, times( 3 ) ).setup( eq( container.getServerInstanceKey() ), containerCaptor.capture() ); final List<Container> containers = containerCaptor.getAllValues(); assertEquals( 3, containers.size() ); assertEquals( container, containers.get( 0 ) ); assertEquals( container2, containers.get( 1 ) ); assertEquals( containerToBeRemoved, containers.get( 2 ) ); }
new ServerTemplateKey( container.getServerInstanceKey().getServerTemplateId(), "" ) );
verify( cardPresenter3 ).setup( newContainer2.getServerInstanceKey(), newContainer2 );