You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2015/04/09 17:41:54 UTC
[12/12] airavata-php-gateway git commit: Path changes for experiment
outputs
Path changes for experiment outputs
Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/f1b3474d
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/f1b3474d
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/f1b3474d
Branch: refs/heads/master
Commit: f1b3474d7a1c0cba1749f49156e6d18dbe56a1ab
Parents: 20cf13c
Author: Nipurn Doshi <ni...@gmail.com>
Authored: Tue Mar 24 14:38:16 2015 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Thu Apr 9 11:41:34 2015 -0400
----------------------------------------------------------------------
app/controllers/ExperimentController.php | 43 +++++++++--------
app/libraries/utilities.php | 67 +++++++++++----------------
app/views/experiment/summary.blade.php | 20 ++++++--
3 files changed, 67 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f1b3474d/app/controllers/ExperimentController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index 0743113..95caf97 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -67,28 +67,33 @@ class ExperimentController extends BaseController {
public function summary()
{
$experiment = Utilities::get_experiment($_GET['expId']);
- $project = Utilities::get_project($experiment->projectID);
- $expVal = Utilities::get_experiment_values( $experiment, $project);
- // User should not clone or edit a failed experiment. Only create clones of it.
- if( $expVal["experimentStatusString"] == "FAILED")
- $expVal["editable"] = false;
-
- if( Request::ajax() )
+ if( $experiment != null)
{
- return json_encode( $experiment);
+ $project = Utilities::get_project($experiment->projectID);
+ $expVal = Utilities::get_experiment_values( $experiment, $project);
+ // User should not clone or edit a failed experiment. Only create clones of it.
+ if( $expVal["experimentStatusString"] == "FAILED")
+ $expVal["editable"] = false;
+
+ if( Request::ajax() )
+ {
+ return json_encode( $experiment);
+ }
+ else
+ {
+ return View::make( "experiment/summary",
+ array(
+ "expId" => Input::get("expId"),
+ "experiment" => $experiment,
+ "project" => $project,
+ "expVal" => $expVal
+
+ )
+ );
+ }
}
else
- {
- return View::make( "experiment/summary",
- array(
- "expId" => Input::get("expId"),
- "experiment" => $experiment,
- "project" => $project,
- "expVal" => $expVal
-
- )
- );
- }
+ return View::make( "experiment/summary", array("invalidExperimentId" => 1));
}
public function expChange()
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f1b3474d/app/libraries/utilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/utilities.php b/app/libraries/utilities.php
index 1631bb5..e32da17 100644
--- a/app/libraries/utilities.php
+++ b/app/libraries/utilities.php
@@ -746,6 +746,7 @@ public static function assemble_experiment()
{
$utility = new Utilities();
$experimentInputs = array();
+ $app_config = Utilities::read_config();
$scheduling = new ComputationalResourceScheduling();
$scheduling->totalCPUCount = $_POST['cpu-count'];
@@ -763,31 +764,14 @@ public static function assemble_experiment()
$experimentInputs = Utilities::process_inputs($applicationInputs, $experimentInputs);
//var_dump($experimentInputs);
- if( Utilities::$experimentPath != null){
- $advHandling = new AdvancedOutputDataHandling();
-
- $advHandling->outputDataDir = str_replace( base_path() . Constant::EXPERIMENT_DATA_ROOT, Utilities::$pathConstant , Utilities::$experimentPath);
- $userConfigData->advanceOutputDataHandling = $advHandling;
+ if( Utilities::$experimentPath == null){
+ Utilities::create_experiment_folder_path();
}
+ $advHandling = new AdvancedOutputDataHandling();
-
-
-
- /*
- $applicationOutputs = get_application_outputs($_POST['application']);
- $experimentOutputs = array();
-
- foreach ($applicationOutputs as $applicationOutput)
- {
- $experimentOutput = new DataObjectType();
- $experimentOutput->key = $applicationOutput->name;
- $experimentOutput->type = $applicationOutput->type;
- $experimentOutput->value = '';
-
- $experimentOutputs[] = $experimentOutput;
- }
- */
+ $advHandling->outputDataDir = str_replace( base_path() . Constant::EXPERIMENT_DATA_ROOT, Utilities::$pathConstant , Utilities::$experimentPath);
+ $userConfigData->advanceOutputDataHandling = $advHandling;
//TODO: replace constructor with a call to airvata to get a prepopulated experiment template
$experiment = new Experiment();
@@ -836,20 +820,7 @@ public static function process_inputs($applicationInputs, $experimentInputs)
if (Utilities::file_upload_successful())
{
// construct unique path
- do
- {
- Utilities::$experimentPath = base_path() . Constant::EXPERIMENT_DATA_ROOT . str_replace(' ', '', Session::get('username') ) . md5(rand() * time()) . '/';
- }
- while (is_dir( Utilities::$experimentPath)); // if dir already exists, try again
-
- //var_dump( Utilities::$experimentPath ); exit;
- // create upload directory
- if (!mkdir( Utilities::$experimentPath))
- {
- Utilities::print_error_message('<p>Error creating upload directory!
- Please try again later or report a bug using the link in the Help menu.</p>');
- $experimentAssemblySuccessful = false;
- }
+ Utilities::create_experiment_folder_path();
}
else
{
@@ -1015,6 +986,22 @@ public static function process_inputs($applicationInputs, $experimentInputs)
}
+public static function create_experiment_folder_path()
+{
+ do
+ {
+ Utilities::$experimentPath = base_path() . Constant::EXPERIMENT_DATA_ROOT . str_replace(' ', '', Session::get('username') ) . md5(rand() * time()) . '/';
+ }
+ while (is_dir( Utilities::$experimentPath)); // if dir already exists, try again
+ // create upload directory
+ if (!mkdir( Utilities::$experimentPath))
+ {
+ Utilities::print_error_message('<p>Error creating upload directory!
+ Please try again later or report a bug using the link in the Help menu.</p>');
+ $experimentAssemblySuccessful = false;
+ }
+}
+
/**
* Check the uploaded files for errors
*/
@@ -1830,17 +1817,19 @@ public static function list_output_files($experiment, $expStatus)
{
$utility = new Utilities();
$experimentOutputs = $experiment->experimentOutputs;
+
foreach ((array)$experimentOutputs as $output)
- {
+ {
if ($output->type == DataType::URI || $output->type == DataType::STDOUT || $output->type == DataType::STDERR )
{
+ $explode = explode('/', $output->value);
//echo '<p>' . $output->key . ': <a href="' . $output->value . '">' . $output->value . '</a></p>';
$outputPath = str_replace(Utilities::$experimentDataPathAbsolute, Constant::EXPERIMENT_DATA_ROOT, $output->value);
$outputPathArray = explode("/", $outputPath);
echo '<p>' . $output->name . ' : ' . '<a target="_blank"
- href="' . str_replace(Utilities::$experimentDataPathAbsolute, Constant::EXPERIMENT_DATA_ROOT, $output->value) . '">' .
- $outputPathArray[ sizeof( $outputPathArray) - 1] . ' <span class="glyphicon glyphicon-new-window"></span></a></p>';
+ href="' . URL::to("/") . "/.." . Constant::EXPERIMENT_DATA_ROOT . $explode[sizeof($explode)-2] . '/' . $explode[sizeof($explode)-1] . '">' .
+ $explode[sizeof($explode)-1] . ' <span class="glyphicon glyphicon-new-window"></span></a></p>';
}
elseif ($output->type == DataType::STRING)
{
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f1b3474d/app/views/experiment/summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/summary.blade.php b/app/views/experiment/summary.blade.php
index 4692f40..e94cf9c 100755
--- a/app/views/experiment/summary.blade.php
+++ b/app/views/experiment/summary.blade.php
@@ -7,12 +7,19 @@
@section('content')
<div class="container" style="max-width: 750px;">
-<h1>
- Experiment Summary
- <small><a href="{{ URL::to('/') }}/experiment/summary?expId={{ $experiment->experimentID }}"
- title="Refresh"><span class="glyphicon glyphicon-refresh refresh-exp"></span></a></small>
-</h1>
+ @if(isset( $invalidExperimentId ) )
+ <div class="alert alert-danger">
+ The Experiment ID does not exist. Please go to correct experiment.
+ </div>
+ @else
+ <h1>
+ Experiment Summary
+ <small><a href="{{ URL::to('/') }}/experiment/summary?expId={{ $experiment->experimentID }}"
+ title="Refresh"><span class="glyphicon glyphicon-refresh refresh-exp"></span></a></small>
+ </h1>
+
+
<table class="table">
<tr>
<td><strong>Name</strong></td>
@@ -100,6 +107,9 @@
</div>
</form>
<input type="hidden" id="expObj" value="{{ htmlentities( json_encode( $experiment)) }}"/>
+
+ <!-- check of correct experiment Id ends here -->
+ @endif
</div>
@stop