Search in sources :

Example 1 with EsClusterStatus

use of com.b2international.index.es.client.EsClusterStatus in project snow-owl by b2ihealthcare.

the class TerminologyRepository method status.

@Override
public RepositoryInfo status() {
    // by default assume it is in GREEN status with no diagnosis
    Health health = Health.GREEN;
    String diagnosis = "";
    final String[] indices = service(Index.class).admin().indices();
    final EsClusterStatus status = service(IndexClient.class).client().status(indices);
    if (!status.isAvailable()) {
        // check if cluster is available or not, and report RED state if not along with index diagnosis
        health = Health.RED;
        diagnosis = status.getDiagnosis();
    } else if (!status.isHealthy(indices)) {
        // check if index is healthy and report RED if not along with diagnosis
        health = Health.RED;
        diagnosis = String.format("Repository indices '%s' are not healthy.", Arrays.toString(indices));
    }
    return RepositoryInfo.of(id(), health, diagnosis, status.getIndices());
}
Also used : Health(com.b2international.snowowl.core.RepositoryInfo.Health) EsClusterStatus(com.b2international.index.es.client.EsClusterStatus)

Example 2 with EsClusterStatus

use of com.b2international.index.es.client.EsClusterStatus in project snow-owl by b2ihealthcare.

the class ServerInfoGetRequest method execute.

@Override
public ServerInfo execute(ServiceProvider context) {
    final Version version = Platform.getBundle(CoreActivator.PLUGIN_ID).getVersion();
    final String description = context.service(SnowOwlConfiguration.class).getDescription();
    final Repositories repositories = RepositoryRequests.prepareSearch().build().execute(context);
    final Set<String> repositoryIndices = repositories.stream().map(RepositoryInfo::indices).flatMap(List::stream).map(EsIndexStatus::getIndex).collect(Collectors.toSet());
    // this represents the current full cluster status with all global and terminology plugin specific indices
    EsClusterStatus clusterStatus = context.service(EsClient.class).status();
    // append global indices to the server info response
    final List<EsIndexStatus> globalIndices = clusterStatus.getIndices().stream().filter(indexStatus -> !repositoryIndices.contains(indexStatus.getIndex())).collect(Collectors.toList());
    EsClusterStatus globalStatus = new EsClusterStatus(clusterStatus.isAvailable(), clusterStatus.getDiagnosis(), globalIndices);
    return new ServerInfo(version.toString(), description, repositories, globalStatus);
}
Also used : Repositories(com.b2international.snowowl.core.Repositories) EsClient(com.b2international.index.es.client.EsClient) EsClusterStatus(com.b2international.index.es.client.EsClusterStatus) Request(com.b2international.snowowl.core.events.Request) Set(java.util.Set) ServerInfo(com.b2international.snowowl.core.ServerInfo) Unprotected(com.b2international.snowowl.core.authorization.Unprotected) Version(org.osgi.framework.Version) Collectors(java.util.stream.Collectors) RepositoryRequests(com.b2international.snowowl.core.repository.RepositoryRequests) RepositoryInfo(com.b2international.snowowl.core.RepositoryInfo) List(java.util.List) EsIndexStatus(com.b2international.index.es.client.EsIndexStatus) CoreActivator(com.b2international.snowowl.core.CoreActivator) ServiceProvider(com.b2international.snowowl.core.ServiceProvider) Platform(org.eclipse.core.runtime.Platform) SnowOwlConfiguration(com.b2international.snowowl.core.config.SnowOwlConfiguration) Repositories(com.b2international.snowowl.core.Repositories) EsIndexStatus(com.b2international.index.es.client.EsIndexStatus) Version(org.osgi.framework.Version) ServerInfo(com.b2international.snowowl.core.ServerInfo) EsClusterStatus(com.b2international.index.es.client.EsClusterStatus) List(java.util.List) EsClient(com.b2international.index.es.client.EsClient) SnowOwlConfiguration(com.b2international.snowowl.core.config.SnowOwlConfiguration)

Aggregations

EsClusterStatus (com.b2international.index.es.client.EsClusterStatus)2 EsClient (com.b2international.index.es.client.EsClient)1 EsIndexStatus (com.b2international.index.es.client.EsIndexStatus)1 CoreActivator (com.b2international.snowowl.core.CoreActivator)1 Repositories (com.b2international.snowowl.core.Repositories)1 RepositoryInfo (com.b2international.snowowl.core.RepositoryInfo)1 Health (com.b2international.snowowl.core.RepositoryInfo.Health)1 ServerInfo (com.b2international.snowowl.core.ServerInfo)1 ServiceProvider (com.b2international.snowowl.core.ServiceProvider)1 Unprotected (com.b2international.snowowl.core.authorization.Unprotected)1 SnowOwlConfiguration (com.b2international.snowowl.core.config.SnowOwlConfiguration)1 Request (com.b2international.snowowl.core.events.Request)1 RepositoryRequests (com.b2international.snowowl.core.repository.RepositoryRequests)1 List (java.util.List)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 Platform (org.eclipse.core.runtime.Platform)1 Version (org.osgi.framework.Version)1