Ninety Percent Muffin

    clusterpost-lib

    2.9.1 • Public • Published

    clusterpost-lib

    It implements the API to submit jobs to clusterpost-server. This library is used by clusterpost-app which implements submit and retrieve functionalities from the server.

    New way to submit jobs:


    var clusterpost = require("clusterpost-lib");
    
    # The config file is is optional, if not provided. It will store the info in your home folder. 
    var configfile = './conf.jobCreation.json';
    
    
    clusterpost.start(configfile)
    .then(function(res){
    
        return clusterpost.parseCLIFromStringAndSubmit("SomeExpensiveTask --img ./data/gravitational-waves-simulation.jpg --img2 ./data/gravitational-waves-simulation.jpg -out ./data.nii.gz")
        .then(function(id){
            console.log(jobid);
        });
    });
    

    An example to submit a job (The old way):


    var clusterpost = require("clusterpost-lib");
    
    var inputfiles = [];
    
    inputfiles.push(path.join(inputdir, "/some/path/img.jpg"));
    inputfiles.push(path.join(inputdir, "/some/path/img1.jpg"));
    inputfiles.push(path.join(inputdir, "/some/path/img2.jpg"));
    
    
    var job = {
        "executable": "aVeryExpensiveTask",
        "parameters": [
            {
                "flag": "--img",
                "name": "img.jpg"
            },
            {
                "flag": "--mask",
                "name": "img1.jpg"
            },
            {
            	"flag": "-labelValue",
            	"name": "6"
            },
            {
                "flag": "--labelImg",
                "name": "pvec.nii.gz"
            },
            {
            	"flag": "--outDir",
                "name": "./"	
            }
        ],
        "inputs": [
            {
                "name": "img.jpg"
            },
            {
                "name": "img1.jpg"
            },
            {
                "name": "img2.jpg"
            }
        ],
        "outputs": [
            {
                "type": "tar.gz",
                "name": "./"
            },
            {
                "type": "file",
                "name": "stdout.out"
            },
            {
                "type": "file",
                "name": "stderr.err"
            }
        ],
        "type": "job",
        "userEmail": "juanprietob@gmail.com"
    };
    
    var agentoptions = {
    	rejectUnauthorized: false //You can also read a certificate here if you want to use https connection and remove this
    }
    clusterpost.setAgentOptions(agentoptions);
    
    clusterpost.start()
    .then(function(res){
    	return clusterpost.getExecutionServers();
    })
    .then(function(res){
    	job.executionserver = res[0].name; //Or select the computing grid where you want to submit your job.
    	return clusterpost.createAndSubmitJob(job, inputfiles)
    })
    .then(function(jobid){
    	console.log(jobid);//Job id of the task submitted
    })
    .catch(console.error)
    

    Once your job is submitted, you can retrieve the results with the following script


    var clusterpost = require("clusterpost-lib");
    
    clusterpost.setClusterPostServer("https://localhost:8180");
    
    var agentoptions = {
    	rejectUnauthorized: false
    }
    
    clusterpost.setAgentOptions(agentoptions);
    
    clusterpost.userLogin({
    	"email": "your@email.com",
    	"password": "passwd"
    	})
    .then(function(res){
        return clusterpost.getJobs("aVeryExpensiveTask");
    })
    .then(function(res){
        console.log(res);
    })
    .catch(console.error)
    

    Install

    npm i clusterpost-lib

    DownloadsWeekly Downloads

    1

    Version

    2.9.1

    License

    Apache-2.0

    Unpacked Size

    35 kB

    Total Files

    3

    Last publish

    Collaborators

    • juanprietob