public void onServerInstanceDisconnected(@Observes ServerInstanceDisconnected serverInstanceDisconnected) { ServerInstanceKey serverInstanceKey = serverInstancesById.get(serverInstanceDisconnected.getServerInstanceId()); if (serverInstanceKey != null) { Iterator<Map.Entry<String, KieServicesClient>> iterator = serverTemplatesClients.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, KieServicesClient> entry = iterator.next(); if (entry.getKey().startsWith(serverInstanceKey.getServerTemplateId())) { KieServicesClient client = entry.getValue(); if (client != null) { LoadBalancer loadBalancer = ((AbstractKieServicesClientImpl) client).getLoadBalancer(); loadBalancer.markAsFailed(serverInstanceKey.getUrl()); logger.debug("Server instance {} for server template {} removed from client thus won't be used for operations", serverInstanceKey.getUrl(), serverInstanceKey.getServerTemplateId()); } logger.debug("KieServerClient load balancer updated for server template {}", entry.getKey()); } } serverInstancesById.remove(serverInstanceKey.getServerInstanceId()); // update admin client KieServicesClient adminClient = adminClients.get(serverInstanceKey.getServerTemplateId()); if (adminClient != null) { LoadBalancer loadBalancer = ((AbstractKieServicesClientImpl) adminClient).getLoadBalancer(); loadBalancer.markAsFailed(serverInstanceKey.getUrl()); logger.debug("Server instance {} for server template {} removed from client thus won't be used for operations", serverInstanceKey.getUrl(), serverInstanceKey.getServerTemplateId()); } } }
public static ServerInstanceKey newServerInstanceKey(String serverTemplateId, String url) { try { URL serverUrl = new URL(url); String serverInstanceId = null; if (serverUrl.getPort() == -1) { serverInstanceId = serverTemplateId + "@" + serverUrl.getHost(); } else { serverInstanceId = serverTemplateId + "@" + serverUrl.getHost() + ":" + serverUrl.getPort(); } return new ServerInstanceKey(serverTemplateId, serverInstanceId, serverInstanceId, url); } catch (MalformedURLException e) { throw new IllegalArgumentException("Invalid server url " + url); } } }
private void addServerInstance( final ServerInstanceKey serverInstanceKey ) { serverInstances.add( serverInstanceKey.getServerInstanceId() ); view.addServerInstance( serverInstanceKey.getServerTemplateId(), serverInstanceKey.getServerInstanceId(), serverInstanceKey.getServerName(), new Command() { @Override public void execute() { serverInstanceSelectedEvent.fire( new ServerInstanceSelected( serverInstanceKey ) ); } } ); }
public ContainerKey( final String containerSpecId, final String containerName, final ServerInstanceKey serverInstanceKey ) { this.serverTemplateId = serverInstanceKey.getServerTemplateId(); this.containerSpecId = containerSpecId; this.containerName = containerName; this.url = serverInstanceKey.getUrl(); }
@Override public ContainerList getContainers(ServerInstanceKey serverInstanceKey) { return getServerInstanceContainers(serverInstanceKey.getServerTemplateId(), serverInstanceKey.getServerInstanceId()); }
@Override public void afterResponseSent() { ServerTemplate serverTemplate = controller.getTemplateStorage().load(serverInfo.getServerId()); ServerInstanceKey serverInstanceKey = serverTemplate.getServerInstanceKeys().stream() .filter(server -> server.getUrl().equals(serverInfo.getLocation())) .findFirst() .get(); ServerInstance serverInstance = new ServerInstance(); serverInstance.setServerName(serverInstanceKey.getServerName()); serverInstance.setServerTemplateId(serverInstanceKey.getServerTemplateId()); serverInstance.setServerInstanceId(serverInstanceKey.getServerInstanceId()); serverInstance.setUrl(serverInstanceKey.getUrl()); controller.getNotificationService().notify(new ServerInstanceUpdated(serverInstance)); controller.getNotificationService().notify(new ServerInstanceConnected(serverInstance)); }
public Container( final String containerSpecId, final String containerName, final ServerInstanceKey serverInstanceKey, final Collection<Message> messages, final ReleaseId resolvedReleasedId, final String url ) { super( containerSpecId, containerName, serverInstanceKey ); this.serverInstanceId = serverInstanceKey.getServerInstanceId(); this.messages.addAll( messages ); this.resolvedReleasedId = resolvedReleasedId; }
@Test public void testOnServerInstanceSelect() { final ServerInstanceKey serverInstanceKey = new ServerInstanceKey( "serverInstanceKeyId", "serverName", "serverInstanceId", "url" ); presenter.onServerInstanceSelect( new ServerInstanceSelected( serverInstanceKey ) ); verify( view ).selectServerInstance( serverInstanceKey.getServerTemplateId(), serverInstanceKey.getServerInstanceId() ); }
@Test public void testOnDeleteWithoutCurrentServer() { final ServerInstanceKey serverInstanceKey = new ServerInstanceKey( "serverInstanceKeyId", "serverName", "serverInstanceId", "url" ); presenter.onDelete( new ServerInstanceDeleted( serverInstanceKey.getServerInstanceId() ) ); verify( specManagementService, never() ).listServerTemplateKeys(); }
public KieServicesClient getAdminServerClient(String serverTemplateId, String serverInstanceId) { try { ServerInstanceKey instance = specManagementService.getServerTemplate(serverTemplateId).getServerInstanceKeys() .stream() .filter(si -> si.getServerInstanceId().equals(serverInstanceId)) .findFirst() .get(); String url = instance.getUrl(); KieServicesClient client = clientProviders .stream() .filter(provider -> provider.supports(url)) .findFirst() .get() .get(url); logger.debug("Using client {}", client); return client; } catch (Exception e) { return adminClients.get(serverTemplateId); } }
public boolean isAlive(ServerInstanceKey serverInstanceKey) { boolean alive = false; try { // get client will internally call serverinfo getClient(serverInstanceKey.getUrl()); alive = true; } catch (Exception e) { logger.debug("Unable to connect to server instance at {} due to {}", serverInstanceKey.getUrl(), e.getMessage()); } return alive; }
when( cardPresenterProvider.get() ).thenReturn( cardPresenter ); final ServerInstanceKey serverInstanceKey = new ServerInstanceKey( "templateId", "serverName", "serverInstanceId", "url" ); final Message message = new Message( Severity.INFO, "testMessage" ); final ReleaseId resolvedReleasedId = new ReleaseId( "org.kie", "container", "1.0.0" ); new ServerTemplateKey( container.getServerInstanceKey().getServerTemplateId(), "" ) );
protected void removeServerInstancesFromIndex(String serverTemplateId) { Iterator<Map.Entry<String, ServerInstanceKey>> iterator = serverInstancesById.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, ServerInstanceKey> entry = iterator.next(); if (entry.getValue().getServerTemplateId().equals(serverTemplateId)) { iterator.remove(); } } }
private void loadContent( final Collection<Container> containers ) { view.clear(); view.setServerName( serverInstanceKey.getServerName() ); view.setServerURL( serverInstanceKey.getUrl() ); if ( containers.isEmpty() ) { view.setEmptyView( remoteEmptyPresenter.getView() ); } else { remoteStatusPresenter.setup( containers ); view.setStatusPresenter( remoteStatusPresenter.getView() ); } }
when( cardPresenterProvider.get() ).thenReturn( cardPresenter ); final ServerInstanceKey serverInstanceKey = new ServerInstanceKey( "templateId", "serverName", "serverInstanceId", "url" ); final Message message = new Message( Severity.INFO, "testMessage" ); final ReleaseId resolvedReleasedId = new ReleaseId( "org.kie", "container", "1.0.0" ); verify( linkTitlePresenter ).setup( eq( serverInstanceKey.getServerName() ), any( Command.class ) ); verify( bodyPresenter ).setup( Arrays.asList( message ) ); verify( footerPresenter ).setup( container.getUrl(), resolvedReleasedId.getVersion() );
public void updateContent( final ServerInstanceKey serverInstanceKey, final Container container ) { linkTitlePresenter.setup( serverInstanceKey.getServerName(), new Command() { @Override public void execute() { remoteServerSelectedEvent.fire( new ServerInstanceSelected( serverInstanceKey ) ); } } ); bodyPresenter.setup( container.getMessages() ); footerPresenter.setup( container.getUrl(), container.getResolvedReleasedId().getVersion() ); }
@Override public boolean equals( final Object o ) { if ( this == o ) { return true; } if ( !( o instanceof ServerInstanceSelected ) ) { return false; } final ServerInstanceSelected that = (ServerInstanceSelected) o; return serverInstanceKey.equals( that.serverInstanceKey ); }
@Test public void testSelectAndRefreshEmptyContainers() { final ServerInstanceKey serverInstanceKey = new ServerInstanceKey( "templateId", "serverName", "serverInstanceId", "url" ); when( runtimeManagementService.getContainersByServerInstance( serverInstanceKey.getServerTemplateId(), serverInstanceKey.getServerInstanceId() ) ).thenReturn( Collections.<Container>emptyList() ); presenter.onSelect( new ServerInstanceSelected( serverInstanceKey ) ); verify( view ).clear(); verify( view ).setServerName( serverInstanceKey.getServerName() ); verify( view ).setServerURL( serverInstanceKey.getUrl() ); verify( view ).setEmptyView( remoteEmptyPresenter.getView() ); }
@Override public ContainerList getContainers(ServerInstanceKey serverInstanceKey) { return makeGetRequestAndCreateCustomResponse(controllerBaseUrl + RUNTIME_URI_PART + serverInstanceKey.getServerTemplateId() + INSTANCES_URI_PART + serverInstanceKey.getServerInstanceId() + CONTAINERS_URI_PART, ContainerList.class); }
public Container( final String containerSpecId, final String containerName, final ServerInstanceKey serverInstanceKey, final Collection<Message> messages, final ReleaseId resolvedReleasedId, final String url ) { super( containerSpecId, containerName, serverInstanceKey ); this.serverInstanceId = serverInstanceKey.getServerInstanceId(); this.messages.addAll( messages ); this.resolvedReleasedId = resolvedReleasedId; }