Example usage for org.apache.commons.configuration BaseConfiguration getString

List of usage examples for org.apache.commons.configuration BaseConfiguration getString

Introduction

In this page you can find the example usage for org.apache.commons.configuration BaseConfiguration getString.

Prototype

public String getString(String key) 

Source Link

Usage

From source file:uk.ac.sanger.cgp.wwdocker.workflow.DEWorkflow.java

@Override
public boolean provisionHost(String host, BaseConfiguration config, File thisJar, File tmpConf, String mode,
        Map<String, String> envs) throws InterruptedException {
    boolean provisioned = false;
    String remoteWorkflowDir = config.getString("workflowDir");
    String localSeqwareJar = config.getString("seqware");
    String localWorkflowZip = config.getString("workflow");
    File jreDist = Utils.expandUserFile(config, "jreDist", true);
    File remoteSeqwareJar = new File(
            remoteWorkflowDir.concat("/").concat(localSeqwareJar.replaceAll(".*/", "")));
    File remoteWorkflowZip = new File(
            remoteWorkflowDir.concat("/").concat(localWorkflowZip.replaceAll(".*/", "")));
    String[] pullDockerImages = config.getStringArray("pullDockerImages");
    String[] curlDockerImages = config.getStringArray("curlDockerImages");
    String[] pushDockerImages = config.getStringArray("pushDockerImages");
    String optDir = "/opt/wwdocker";
    String workerLog = config.getString("log4-worker");
    File localTmp = Utils.expandUserDirPath(config, "primaryLargeTmp", true);

    List<String> createPaths = new ArrayList();
    createPaths.add("/opt/wwdocker");
    createPaths.add("/opt/wwdocker/jre");
    createPaths.add(remoteWorkflowDir);//from  ww  w  .j  a  va 2  s .  c om
    createPaths.add(config.getString("datastoreDir"));

    Session ssh = Remote.getSession(config, host);

    Remote.createPaths(ssh, createPaths);
    Remote.chmodPaths(ssh, "a+wrx", createPaths, true);
    Remote.cleanFiles(ssh, new String[] { config.getString("log4-delete") });

    Remote.cleanupOldImages(ssh); // incase lots of stale ones are already present

    if (Local.pushFileSetToHost(pushDockerImages, host, "/opt/wwdocker", envs, ssh, null) != 0) {
        return provisioned;
    }
    String[] pushedDockerImages = new String[pushDockerImages.length];
    for (int i = 0; i < pushDockerImages.length; i++) {
        pushedDockerImages[i] = Paths.get("/opt/wwdocker", new File(pushDockerImages[i]).getName()).toFile()
                .getPath();
    }

    if (Remote.dockerPull(ssh, pullDockerImages) != 0
            || Remote.dockerLoad(ssh, curlDockerImages, remoteWorkflowDir) != 0
            || Remote.dockerLoad(ssh, pushedDockerImages, remoteWorkflowDir) != 0) {
        return provisioned;
    }
    Remote.cleanupOldImages(ssh); // incase lots of stale ones are already present

    if (Remote.curl(ssh, localSeqwareJar, remoteWorkflowDir) == null) {
        return provisioned;
    }

    Local.pushToHost(jreDist.getAbsolutePath(), host, optDir, envs, ssh, localTmp);
    if (Remote.expandJre(ssh, jreDist) != 0) {
        return provisioned;
    }
    Remote.curl(ssh, localWorkflowZip, remoteWorkflowDir);
    if (Remote.expandWorkflow(ssh, remoteWorkflowZip, remoteSeqwareJar, remoteWorkflowDir) != 0) {
        return provisioned;
    }
    //String workflowBase = remoteWorkflowZip.getName().replaceAll("\\.zip$", "");
    //Path gnosDest = Paths.get(remoteWorkflowDir, workflowBase);
    if (Local.pushToHost(thisJar.getAbsolutePath(), host, optDir, envs, ssh, localTmp) != 0 // this jar file
            || Local.pushToHost(workerLog, host, optDir, envs, ssh, localTmp) != 0 // worker log config
            || Local.pushToHost(tmpConf.getAbsolutePath(), host, optDir, envs, ssh, localTmp) != 0 // config file
            || Remote.chmodPath(ssh, "go-wrx", optDir.concat("/*"), true) != 0 // file will have passwords
            || Local.pushFileSetToHost(Utils.getGnosKeys(config), host, config.getString("datastoreDir"), envs,
                    ssh, localTmp) != 0 // GNOS keys, note DATASTORE
            || Remote.chmodPath(ssh, "a+r", config.getString("datastoreDir").concat("/*.pem"), false) != 0 // need to ensure these are readable within the image
            || Remote.startWorkerDaemon(ssh, thisJar.getName(), tmpConf.getName(), mode) != 0) {
        return provisioned;
    }
    provisioned = true;
    return provisioned;
}

From source file:uk.ac.sanger.cgp.wwdocker.workflow.DEWorkflow.java

@Override
public int cleanDockerPath(BaseConfiguration config) {
    String command = baseDockerCommand(config, null);
    String datastore = config.getString("datastoreDir");
    List<String> args = new ArrayList(Arrays.asList(command.split(" ")));
    args.add("/bin/bash");
    args.add("-c");
    args.add("rm -rf " + datastore + "/oozie-* " + datastore + "/*.ini " + datastore + "/logs.tar.gz "
            + datastore + "/toInclude.lst" + datastore + "/DEWorkflowData/dkfz/gtdownload-*.log");

    ProcessBuilder pb = new ProcessBuilder(args);

    Map<String, String> pEnv = pb.environment();
    pEnv.putAll(Config.getEnvs(config));
    logger.info("Executing: " + String.join(" ", args));
    int exitCode = -1;
    Process p = null;//ww w . ja  v  a 2 s  .  com
    try {
        p = pb.start();
        String progErr = IOUtils.toString(p.getErrorStream());
        String progOut = IOUtils.toString(p.getInputStream());
        exitCode = p.waitFor();
        Utils.logOutput(progErr, Level.ERROR);
        Utils.logOutput(progOut, Level.TRACE);
    } catch (InterruptedException | IOException e) {
        logger.error(e.getMessage(), e);
    } finally {
        if (p != null) {
            p.destroy();
            exitCode = p.exitValue();
        }
    }
    return exitCode;
}

From source file:uk.ac.sanger.cgp.wwdocker.workflow.SangerWorkflow.java

@Override
public String baseDockerCommand(BaseConfiguration config, String extras) {
    File workflow = Paths.get(config.getString("workflowDir"),
            config.getString("workflow").replaceAll(".*/", "").replaceAll("\\.zip$", "")).toFile();

    // probably want to clean the data store before we write the ini file
    //docker run --rm -h master -v /cgp/datastore:/datastore -v /cgp/workflows/Workflow_Bundle_SangerPancancerCgpCnIndelSnvStr_1.0.5.1_SeqWare_1.1.0-alpha.5:/workflow -i seqware/seqware_whitestar_pancancer rm -rf /datastore/

    String command = "docker run --rm -h master";
    command = command.concat(" -v ").concat(config.getString("datastoreDir")).concat(":/datastore");
    command = command.concat(" -v ").concat(workflow.getAbsolutePath()).concat(":/workflow");
    command = command.concat(" ").concat(seqwareWhiteStarImage(config));
    return command;
}

From source file:uk.ac.sanger.cgp.wwdocker.workflow.SangerWorkflow.java

@Override
public boolean provisionHost(String host, BaseConfiguration config, File thisJar, File tmpConf, String mode,
        Map<String, String> envs) throws InterruptedException {
    boolean provisioned = false;
    String remoteWorkflowDir = config.getString("workflowDir");
    String localSeqwareJar = config.getString("seqware");
    String localWorkflowZip = config.getString("workflow");
    File jreDist = Utils.expandUserFile(config, "jreDist", true);
    File remoteSeqwareJar = new File(
            remoteWorkflowDir.concat("/").concat(localSeqwareJar.replaceAll(".*/", "")));
    File remoteWorkflowZip = new File(
            remoteWorkflowDir.concat("/").concat(localWorkflowZip.replaceAll(".*/", "")));
    String[] pullDockerImages = config.getStringArray("pullDockerImages");
    String optDir = "/opt/wwdocker";
    String workerLog = config.getString("log4-worker");
    File localTmp = Utils.expandUserDirPath(config, "primaryLargeTmp", true);

    List<String> createPaths = new ArrayList();
    createPaths.add("/opt/wwdocker");
    createPaths.add("/opt/wwdocker/jre");
    createPaths.add(remoteWorkflowDir);//from w  w w.j  a  v a2  s.  c  o  m
    createPaths.add(config.getString("datastoreDir"));

    Session ssh = Remote.getSession(config, host);

    Remote.createPaths(ssh, createPaths);
    Remote.chmodPaths(ssh, "a+wrx", createPaths, true);
    Remote.cleanFiles(ssh, new String[] { config.getString("log4-delete") });

    if (Remote.dockerPull(ssh, pullDockerImages) != 0) {
        return provisioned;
    }

    if (Remote.curl(ssh, localSeqwareJar, remoteWorkflowDir) == null) {
        return provisioned;
    }

    Local.pushToHost(jreDist.getAbsolutePath(), host, optDir, envs, ssh, localTmp);
    if (Remote.expandJre(ssh, jreDist) != 0) {
        return provisioned;
    }

    if (Remote.curl(ssh, localWorkflowZip, remoteWorkflowDir) == null
            || Remote.expandWorkflow(ssh, remoteWorkflowZip, remoteSeqwareJar, remoteWorkflowDir) != 0) {
        return provisioned;
    }
    String workflowBase = remoteWorkflowZip.getName().replaceAll("\\.zip$", "");
    Path gnosDest = Paths.get(remoteWorkflowDir, workflowBase);
    if (Local.pushToHost(thisJar.getAbsolutePath(), host, optDir, envs, ssh, localTmp) != 0 // this jar file
            || Local.pushToHost(workerLog, host, optDir, envs, ssh, localTmp) != 0 // worker log config
            || Local.pushToHost(tmpConf.getAbsolutePath(), host, optDir, envs, ssh, localTmp) != 0 // config file
            || Remote.chmodPath(ssh, "go-wrx", optDir.concat("/*"), true) != 0 // file will have passwords
            || Local.pushFileSetToHost(Utils.getGnosKeys(config), host, gnosDest.toString(), envs, ssh,
                    localTmp) != 0 // GNOS keys
            || Remote.startWorkerDaemon(ssh, thisJar.getName(), tmpConf.getName(), mode) != 0) {
        return provisioned;
    }
    provisioned = true;
    return provisioned;
}

From source file:uk.ac.sanger.cgp.wwdocker.workflow.TestWorkflow.java

@Override
public String baseDockerCommand(BaseConfiguration config, String extras) {
    File workflow = Paths.get(config.getString("workflowDir"),
            config.getString("workflow").replaceAll(".*/", "").replaceAll("\\.zip$", "")).toFile();

    // probably want to clean the data store before we write the ini file
    //docker run --rm -h master -v /cgp/datastore:/datastore -v /cgp/workflows/Workflow_Bundle_SangerPancancerCgpCnIndelSnvStr_1.0.5.1_SeqWare_1.1.0-alpha.5:/workflow -i seqware/seqware_whitestar_pancancer rm -rf /datastore/

    String command = "docker run --rm -h master";
    command = command.concat(" -v ").concat(config.getString("datastoreDir")).concat(":/datastore");
    //    command = command.concat(" -v ").concat(workflow.getAbsolutePath()).concat(":/workflow");
    command = command.concat(" ").concat(seqwareWhiteStarImage(config));
    return command;
}

From source file:uk.ac.sanger.cgp.wwdocker.workflow.TestWorkflow.java

@Override
public boolean provisionHost(String host, BaseConfiguration config, File thisJar, File tmpConf, String mode,
        Map<String, String> envs) throws InterruptedException {
    boolean provisioned = false;
    String remoteWorkflowDir = config.getString("workflowDir");
    String localSeqwareJar = config.getString("seqware");
    File jreDist = Utils.expandUserFile(config, "jreDist", true);
    String[] pullDockerImages = config.getStringArray("pullDockerImages");
    String optDir = "/opt/wwdocker";
    String workerLog = config.getString("log4-worker");
    File localTmp = Utils.expandUserDirPath(config, "primaryLargeTmp", true);

    List<String> createPaths = new ArrayList();
    createPaths.add("/opt/wwdocker");
    createPaths.add("/opt/wwdocker/jre");
    createPaths.add(remoteWorkflowDir);/*from   w  w  w. j a v  a2s. c  om*/
    createPaths.add(config.getString("datastoreDir"));

    Session ssh = Remote.getSession(config, host);

    Remote.createPaths(ssh, createPaths);
    Remote.chmodPaths(ssh, "a+wrx", createPaths, true);
    Remote.cleanFiles(ssh, new String[] { config.getString("log4-delete") });

    if (Remote.dockerPull(ssh, pullDockerImages) != 0) {
        return provisioned;
    }

    if (Remote.curl(ssh, localSeqwareJar, remoteWorkflowDir) == null) {
        return provisioned;
    }

    Local.pushToHost(jreDist.getAbsolutePath(), host, optDir, envs, ssh, localTmp);
    if (Remote.expandJre(ssh, jreDist) != 0) {
        return provisioned;
    }

    Local.pushToHost("testData/run.pl", host, config.getString("datastoreDir"), envs, ssh, localTmp);

    if (Local.pushToHost(thisJar.getAbsolutePath(), host, optDir, envs, ssh, localTmp) != 0 // this jar file
            || Local.pushToHost(workerLog, host, optDir, envs, ssh, localTmp) != 0 // worker log config
            || Local.pushToHost(tmpConf.getAbsolutePath(), host, optDir, envs, ssh, localTmp) != 0 // config file
            || Remote.chmodPath(ssh, "go-wrx", optDir.concat("/*"), true) != 0 // file will have passwords
            || Remote.startWorkerDaemon(ssh, thisJar.getName(), tmpConf.getName(), mode) != 0) {
        return provisioned;
    }
    provisioned = true;
    return provisioned;
}