package org.hadatac.utils;
import org.hadatac.data.loader.DataContext;
import org.hadatac.metadata.loader.MetadataContext;
import org.hadatac.metadata.loader.PermissionsContext;
import play.Play;
public class Repository {
public static final String METADATA = "metadata";
public static final String DATA = "data";
public static final String START = "start";
public static final String STOP = "stop";
private static final String METADATA_SCRIPT = "run_solr4.sh";
private static final String DATA_SCRIPT = "run_solr5.sh";
public static boolean operational(String repository) {
if (repository.equals(METADATA)) {
return ((MetadataContext.playTotalTriples() != -1) &&
(PermissionsContext.playTotalTriples() != -1));
} else if (repository.equals(DATA)) {
return ((DataContext.playTotalDataAcquisitions() != -1)&&
(DataContext.playTotalMeasurements() != -1));
}
return false;
}
public static String startStopMetadataRepository(String oper, String repository) {
String message = "";
String script = "";
if (!oper.equals(START) && !oper.equals(STOP)) {
message = Feedback.println(Feedback.WEB, "Invalid operation. It should be either " + START + " or " + STOP);
return message;
}
String home = Play.application().configuration().getString("hadatac.solr.home");
System.out.println(home);
if (!home.endsWith("/")) {
home = home + "/";
}
if (repository.equals(METADATA)) {
script = home + METADATA_SCRIPT;
} else if (repository.equals(DATA)) {
script = home + DATA_SCRIPT;
} else {
message = "FAIL";
return message;
}
String[] cmd = {script, oper};
message += Feedback.print(Feedback.WEB, "Requested " + oper + " " + repository + " repository.");
message += Command.exec(Feedback.WEB, false, cmd);
return message;
}
}