package crate.elasticsearch.plugin.inout;
import java.util.Collection;
import org.elasticsearch.common.collect.Lists;
import org.elasticsearch.common.inject.Module;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.plugins.AbstractPlugin;
import org.elasticsearch.rest.RestModule;
import crate.elasticsearch.module.dump.DumpModule;
import crate.elasticsearch.module.export.ExportModule;
import crate.elasticsearch.module.import_.ImportModule;
import crate.elasticsearch.module.reindex.ReindexModule;
import crate.elasticsearch.module.restore.RestoreModule;
import crate.elasticsearch.module.searchinto.SearchIntoModule;
import crate.elasticsearch.rest.action.admin.dump.RestDumpAction;
import crate.elasticsearch.rest.action.admin.export.RestExportAction;
import crate.elasticsearch.rest.action.admin.import_.RestImportAction;
import crate.elasticsearch.rest.action.admin.reindex.RestReindexAction;
import crate.elasticsearch.rest.action.admin.restore.RestRestoreAction;
import crate.elasticsearch.rest.action.admin.searchinto.RestSearchIntoAction;
public class InOutPlugin extends AbstractPlugin {
private final Settings settings;
public InOutPlugin(Settings settings) {
this.settings = settings;
}
public String name() {
return "inout";
}
public String description() {
return "InOut plugin";
}
public void onModule(RestModule restModule) {
restModule.addRestAction(RestExportAction.class);
restModule.addRestAction(RestImportAction.class);
restModule.addRestAction(RestSearchIntoAction.class);
restModule.addRestAction(RestDumpAction.class);
restModule.addRestAction(RestRestoreAction.class);
restModule.addRestAction(RestReindexAction.class);
}
@Override
public Collection<Class<? extends Module>> modules() {
Collection<Class<? extends Module>> modules = Lists.newArrayList();
if (!settings.getAsBoolean("node.client", false)) {
modules.add(ExportModule.class);
modules.add(ImportModule.class);
modules.add(SearchIntoModule.class);
modules.add(DumpModule.class);
modules.add(RestoreModule.class);
modules.add(ReindexModule.class);
}
return modules;
}
}