Exemple #1
0
<?php

include "airavata.php";
$projId = createProject("admin", "test");
echo var_dump($projId);
$expId = createExperiment("admin", "exp5", $projId, "test", "{\"input1\":\"13\",\"input2\":\"3\",\"input3\":\"true\"}");
// $expId =  "exp5_e7b826cf-a429-4b3e-b519-28d859fe4b64";
echo var_dump($expId);
$res = launchExperiment($expId);
echo var_dump($res);
while (($status = get_experiment_status($expId)) != "COMPLETED") {
    echo "{$status}\n";
    sleep(1);
}
$results = getOutput($expId);
echo var_dump($results);
Exemple #2
0
function getOutput($expId)
{
    $transport = new TSocket($GLOBALS['AIRAVATA_SERVER'], $GLOBALS['AIRAVATA_PORT']);
    $transport->setSendTimeout($GLOBALS['AIRAVATA_TIMEOUT']);
    $protocol = new TBinaryProtocol($transport);
    $errors = array('CANCELED' => "Experiment Cancelled", 'SUSPENDED' => "Experiment Suspended", 'FAILED' => "Experiment Failed");
    try {
        $airavataclient = new AiravataClient($protocol);
        $transport->open();
        while (($status = get_experiment_status($airavataclient, $expId)) != "COMPLETED") {
            if (isset($errors[$status])) {
                $transport->close();
                return "{\"error\":\"" . $errors[$status] . "\"}";
                exit;
            }
            sleep(1);
        }
        $outputs = $airavataclient->getExperimentOutputs($expId);
        $transport->close();
        $outputData = array();
        if (!empty($outputs[0]->value)) {
            $out = json_decode($outputs[0]->value);
            $out->Computational_Host = $GLOBALS["RESOURCE_HOST"];
            $outputData["output"] = json_encode($out);
        } else {
            $outputData["error"] = $outputs[1]->value;
        }
    } catch (InvalidRequestException $ire) {
        $outputData["error"] = 'InvalidRequestException: ' . $ire->getMessage();
    } catch (AiravataClientException $ace) {
        $outputData["error"] = 'Airavata System Exception: ' . $ace->getMessage();
    } catch (AiravataSystemException $ase) {
        $outputData["error"] = 'Airavata System Exception: ' . $ase->getMessage();
    } catch (TException $tx) {
        $outputData["error"] = 'Exception: ' . $tx->getMessage();
    } catch (ExperimentNotFoundException $enf) {
        $outputData["error"] = 'ExperimentNotFoundException: ' . $enf->getMessage();
    } catch (TTransportException $tte) {
        $outputData["error"] = 'TTransportException: ' . $tte->getMessage();
    } catch (\Exception $e) {
        $outputData["error"] = 'Exception: ' . $e->getMessage();
    }
    return json_encode($outputData);
}