use of com.b2international.snowowl.core.RepositoryInfo 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);
}
use of com.b2international.snowowl.core.RepositoryInfo in project snow-owl by b2ihealthcare.
the class RepositoriesCommand method run.
@Override
public void run(CommandLineStream out) {
RepositorySearchRequestBuilder req = RepositoryRequests.prepareSearch();
if (!Strings.isNullOrEmpty(repositoryId)) {
req.one().filterById(repositoryId);
} else {
req.all();
}
final Repositories repositories = req.buildAsync().execute(getBus()).getSync();
final int maxDiagLength = ImmutableList.copyOf(repositories).stream().map(RepositoryInfo::diagnosis).map(Strings::nullToEmpty).map(diag -> diag.length()).max(Ints::compare).orElse(16);
final int maxLength = Math.max(maxDiagLength + 36, 52);
printSeparator(out, maxLength);
printHeader(out, "id", "health", Strings.padEnd("diagnosis", maxDiagLength, ' '));
printSeparator(out, maxLength);
repositories.forEach(repository -> {
printLine(out, repository, RepositoryInfo::id, RepositoryInfo::health, repo -> Strings.isNullOrEmpty(repo.diagnosis()) ? "-" : null);
printSeparator(out, maxLength);
});
}
use of com.b2international.snowowl.core.RepositoryInfo in project snow-owl by b2ihealthcare.
the class TerminologyRepositoryPlugin method run.
@Override
public final void run(SnowOwlConfiguration configuration, Environment env) throws Exception {
// register terminology and component definitions
TerminologyRegistry registry = env.service(TerminologyRegistry.class);
registry.register(this);
getAdditionalTerminologyComponents().values().forEach(additionalTerminologyComponent -> registry.register(getToolingId(), additionalTerminologyComponent));
if (env.isServer()) {
final DefaultRepositoryManager repositories = (DefaultRepositoryManager) env.service(RepositoryManager.class);
final RepositoryBuilder builder = repositories.prepareCreate(getToolingId());
final Repository repo = builder.withPreCommitHook(getTerminologyRepositoryPreCommitHook(builder.log())).addTerminologyComponents(getTerminologyComponents()).addTerminologyComponents(getAdditionalTerminologyComponents()).addMappings(getAdditionalMappings()).bind(ComponentDeletionPolicy.class, getComponentDeletionPolicy()).bind(VersioningRequestBuilder.class, getVersioningRequestBuilder()).bind(ComponentRevisionConflictProcessor.class, getComponentRevisionConflictProcessor()).bind(ConceptSearchRequestEvaluator.class, getConceptSearchRequestEvaluator()).bind(ValueSetMemberSearchRequestEvaluator.class, getMemberSearchRequestEvaluator()).bind(ConceptMapMappingSearchRequestEvaluator.class, getConceptMapMappingSearchRequestEvaluator()).bind(QueryOptimizer.class, getQueryOptimizer()).bind(ContentAvailabilityInfoProvider.class, getContentAvailabilityInfoProvider()).bind(ContextConfigurer.class, getRequestConfigurer()).bind(ResourceURLSchemaSupport.class, getTerminologyURISupport()).build(env);
RepositoryInfo status = repo.status();
if (status.health() == Health.GREEN) {
LOG.info("Started repository '{}' with status '{}'", repo.id(), status.health());
} else {
LOG.warn("Started repository '{}' with status '{}'. Diagnosis: {}.", status.id(), status.health(), status.diagnosis());
}
// register EsClient from repository globally
env.services().registerService(EsClient.class, repo.service(IndexClient.class).client());
}
afterRun(configuration, env);
}
Aggregations