-
Eike Cochu authoredEike Cochu authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TestCommand.java 1.21 KiB
package de.vipra.cmd.option;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.bson.types.ObjectId;
import org.elasticsearch.client.transport.NoNodeAvailableException;
import org.elasticsearch.client.transport.TransportClient;
import de.vipra.util.Config;
import de.vipra.util.ESClient;
import de.vipra.util.model.Article;
import de.vipra.util.service.MongoService;
public class TestCommand implements Command {
public static final Logger log = LogManager.getLogger(TestCommand.class);
@Override
public void run() throws Exception {
// test if configuration readable
log.info("reading configuration...");
final Config config = Config.getConfig();
// test if database is accessible
log.info("testing mongodb connection...");
final MongoService<Article, ObjectId> dbArticles = MongoService.getDatabaseService(config, Article.class);
dbArticles.count(null);
// test if elasticsearch is accessible
log.info("testing elasticsearch connection...");
final TransportClient esclient = ESClient.getClient(config);
if (esclient.connectedNodes().isEmpty()) {
throw new NoNodeAvailableException("no elasticsearch nodes available");
}
log.info("all tests passed");
}
}