fixing AIRAVATA-1773
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/1a6fa4b4 Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/1a6fa4b4 Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/1a6fa4b4 Branch: refs/heads/0.15-release-branch Commit: 1a6fa4b467a4345813e8f2c2947ccd4ef22d3b75 Parents: 2b05920 Author: Supun Nakandala <[email protected]> Authored: Wed Jul 15 22:17:17 2015 +0530 Committer: Supun Nakandala <[email protected]> Committed: Wed Jul 15 22:17:17 2015 +0530 ---------------------------------------------------------------------- app/libraries/ExperimentUtilities.php | 31 ++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/1a6fa4b4/app/libraries/ExperimentUtilities.php ---------------------------------------------------------------------- diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php index 344b58d..ff61473 100644 --- a/app/libraries/ExperimentUtilities.php +++ b/app/libraries/ExperimentUtilities.php @@ -399,16 +399,31 @@ class ExperimentUtilities try { //create new experiment to receive the clone $experiment = Airavata::getExperiment($expId); - - //Fixme - Input Files Dir - - $cloneId = Airavata::cloneExperiment($expId, 'Clone of ' . $experiment->name); - CommonUtilities::print_success_message("<p>Experiment cloned!</p>" . - '<p>You will be redirected to the edit page shortly, or you can - <a href="edit_experiment.php?expId=' . $cloneId . '">go directly</a> to the edit experiment page.</p>'); - //redirect('edit_experiment.php?expId=' . $cloneId); + //updating the experiment inputs and output path + $experiment = Airavata::getExperiment($cloneId); + $experimentInputs = $experiment->experimentInputs; + ExperimentUtilities::create_experiment_folder_path(); + $hostName = $_SERVER['SERVER_NAME']; + $expPathConstant = 'file://' . ExperimentUtilities::$sshUser . '@' . $hostName . ':' . Config::get('pga_config.airavata')['experiment-data-absolute-path']; + $outputDataDir = str_replace(Config::get('pga_config.airavata')['experiment-data-absolute-path'], + $expPathConstant, ExperimentUtilities::$experimentPath); + $experiment->userConfigurationData->advanceOutputDataHandling->outputDataDir = $outputDataDir; + + foreach ($experimentInputs as $experimentInput) { + if ($experimentInput->type == DataType::URI) { + $currentInputPath = $experimentInput->value; + $hostPathConstant = 'file://' . ExperimentUtilities::$sshUser . '@' . $hostName . ':'; + $currentInputPath = str_replace($hostPathConstant, '', $currentInputPath); + $parts = explode('/', rtrim($currentInputPath, '/')); + $fileName = array_pop($parts); + $newInputPath = ExperimentUtilities::$experimentPath . $fileName; + copy($currentInputPath, $newInputPath); + $experimentInput->value = $hostPathConstant . $newInputPath; + } + } + Airavata::updateExperiment($cloneId, $experiment); return $cloneId; } catch (InvalidRequestException $ire) { CommonUtilities::print_error_message('<p>There was a problem cloning the experiment.
