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