You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2015/10/23 06:56:44 UTC
airavata-php-gateway git commit: adding updated code for the job
command ordering
Repository: airavata-php-gateway
Updated Branches:
refs/heads/master 2fc02c053 -> 9315f3cd5
adding updated code for the job command ordering
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/9315f3cd
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/9315f3cd
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/9315f3cd
Branch: refs/heads/master
Commit: 9315f3cd5d26ddd6ac2cac89e6d1a97a15e5e8d6
Parents: 2fc02c0
Author: scnakandala <su...@gmail.com>
Authored: Fri Oct 23 00:56:39 2015 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Fri Oct 23 00:56:39 2015 -0400
----------------------------------------------------------------------
app/controllers/ApplicationController.php | 20 ---
.../Model/AppCatalog/AppDeployment/Types.php | 175 +++++++++++++++++--
app/libraries/AppUtilities.php | 32 +++-
app/views/partials/deployment-block.blade.php | 6 +-
4 files changed, 187 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9315f3cd/app/controllers/ApplicationController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ApplicationController.php b/app/controllers/ApplicationController.php
index 0106331..c111141 100644
--- a/app/controllers/ApplicationController.php
+++ b/app/controllers/ApplicationController.php
@@ -131,26 +131,6 @@ class ApplicationController extends BaseController {
{
$update = true;
$appDeploymentValues = Input::all();
- switch($appDeploymentValues["parallelism"]){
- case "MPI":
- $appDeploymentValues["parallelism"] = \Airavata\Model\AppCatalog\AppDeployment\ApplicationParallelismType::MPI;
- break;
- case "SERIAL":
- $appDeploymentValues["parallelism"] = \Airavata\Model\AppCatalog\AppDeployment\ApplicationParallelismType::SERIAL;
- break;
- case "OPENMP":
- $appDeploymentValues["parallelism"] = \Airavata\Model\AppCatalog\AppDeployment\ApplicationParallelismType::OPENMP;
- break;
- case "OPENMP_MPI":
- $appDeploymentValues["parallelism"] = \Airavata\Model\AppCatalog\AppDeployment\ApplicationParallelismType::OPENMP_MPI;
- break;
- case "CRAY_MPI":
- $appDeploymentValues["parallelism"] = \Airavata\Model\AppCatalog\AppDeployment\ApplicationParallelismType::CRAY_MPI;
- break;
- case "CCM":
- $appDeploymentValues["parallelism"] = \Airavata\Model\AppCatalog\AppDeployment\ApplicationParallelismType::CCM;
- break;
- }
AppUtilities::create_or_update_appDeployment( $appDeploymentValues, $update);
$message = "Application Deployment has been updated!";
}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9315f3cd/app/libraries/Airavata/Model/AppCatalog/AppDeployment/Types.php
----------------------------------------------------------------------
diff --git a/app/libraries/Airavata/Model/AppCatalog/AppDeployment/Types.php b/app/libraries/Airavata/Model/AppCatalog/AppDeployment/Types.php
index 61d4c5a..a9cc409 100644
--- a/app/libraries/Airavata/Model/AppCatalog/AppDeployment/Types.php
+++ b/app/libraries/Airavata/Model/AppCatalog/AppDeployment/Types.php
@@ -58,6 +58,9 @@ final class ApplicationParallelismType {
*
* value:
* Value of the environment variable to set
+ *
+ * envOrder:
+ * The order of the setting of the env variables when there are multiple env variables
*/
class SetEnvPaths {
static $_TSPEC;
@@ -70,6 +73,10 @@ class SetEnvPaths {
* @var string
*/
public $value = null;
+ /**
+ * @var int
+ */
+ public $envPathOrder = null;
public function __construct($vals=null) {
if (!isset(self::$_TSPEC)) {
@@ -82,6 +89,10 @@ class SetEnvPaths {
'var' => 'value',
'type' => TType::STRING,
),
+ 3 => array(
+ 'var' => 'envPathOrder',
+ 'type' => TType::I32,
+ ),
);
}
if (is_array($vals)) {
@@ -91,6 +102,9 @@ class SetEnvPaths {
if (isset($vals['value'])) {
$this->value = $vals['value'];
}
+ if (isset($vals['envPathOrder'])) {
+ $this->envPathOrder = $vals['envPathOrder'];
+ }
}
}
@@ -127,6 +141,13 @@ class SetEnvPaths {
$xfer += $input->skip($ftype);
}
break;
+ case 3:
+ if ($ftype == TType::I32) {
+ $xfer += $input->readI32($this->envPathOrder);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
default:
$xfer += $input->skip($ftype);
break;
@@ -150,6 +171,118 @@ class SetEnvPaths {
$xfer += $output->writeString($this->value);
$xfer += $output->writeFieldEnd();
}
+ if ($this->envPathOrder !== null) {
+ $xfer += $output->writeFieldBegin('envPathOrder', TType::I32, 3);
+ $xfer += $output->writeI32($this->envPathOrder);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+/**
+ * Job commands to be used in Pre Job, Post Job and Module Load Commands
+ *
+ * command:
+ * The actual command in string format
+ *
+ * commandOrder:
+ * Order of the command in the multiple command situation
+ */
+class CommandObject {
+ static $_TSPEC;
+
+ /**
+ * @var string
+ */
+ public $command = null;
+ /**
+ * @var int
+ */
+ public $commandOrder = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'command',
+ 'type' => TType::STRING,
+ ),
+ 2 => array(
+ 'var' => 'commandOrder',
+ 'type' => TType::I32,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['command'])) {
+ $this->command = $vals['command'];
+ }
+ if (isset($vals['commandOrder'])) {
+ $this->commandOrder = $vals['commandOrder'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'CommandObject';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->command);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::I32) {
+ $xfer += $input->readI32($this->commandOrder);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('CommandObject');
+ if ($this->command !== null) {
+ $xfer += $output->writeFieldBegin('command', TType::STRING, 1);
+ $xfer += $output->writeString($this->command);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->commandOrder !== null) {
+ $xfer += $output->writeFieldBegin('commandOrder', TType::I32, 2);
+ $xfer += $output->writeI32($this->commandOrder);
+ $xfer += $output->writeFieldEnd();
+ }
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
@@ -370,7 +503,7 @@ class ApplicationDeploymentDescription {
*/
public $appDeploymentDescription = null;
/**
- * @var string[]
+ * @var \Airavata\Model\AppCatalog\AppDeployment\CommandObject[]
*/
public $moduleLoadCmds = null;
/**
@@ -386,11 +519,11 @@ class ApplicationDeploymentDescription {
*/
public $setEnvironment = null;
/**
- * @var string[]
+ * @var \Airavata\Model\AppCatalog\AppDeployment\CommandObject[]
*/
public $preJobCommands = null;
/**
- * @var string[]
+ * @var \Airavata\Model\AppCatalog\AppDeployment\CommandObject[]
*/
public $postJobCommands = null;
@@ -424,9 +557,10 @@ class ApplicationDeploymentDescription {
7 => array(
'var' => 'moduleLoadCmds',
'type' => TType::LST,
- 'etype' => TType::STRING,
+ 'etype' => TType::STRUCT,
'elem' => array(
- 'type' => TType::STRING,
+ 'type' => TType::STRUCT,
+ 'class' => '\Airavata\Model\AppCatalog\AppDeployment\CommandObject',
),
),
8 => array(
@@ -459,17 +593,19 @@ class ApplicationDeploymentDescription {
11 => array(
'var' => 'preJobCommands',
'type' => TType::LST,
- 'etype' => TType::STRING,
+ 'etype' => TType::STRUCT,
'elem' => array(
- 'type' => TType::STRING,
+ 'type' => TType::STRUCT,
+ 'class' => '\Airavata\Model\AppCatalog\AppDeployment\CommandObject',
),
),
12 => array(
'var' => 'postJobCommands',
'type' => TType::LST,
- 'etype' => TType::STRING,
+ 'etype' => TType::STRUCT,
'elem' => array(
- 'type' => TType::STRING,
+ 'type' => TType::STRUCT,
+ 'class' => '\Airavata\Model\AppCatalog\AppDeployment\CommandObject',
),
),
);
@@ -584,7 +720,8 @@ class ApplicationDeploymentDescription {
for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
{
$elem5 = null;
- $xfer += $input->readString($elem5);
+ $elem5 = new \Airavata\Model\AppCatalog\AppDeployment\CommandObject();
+ $xfer += $elem5->read($input);
$this->moduleLoadCmds []= $elem5;
}
$xfer += $input->readListEnd();
@@ -655,7 +792,8 @@ class ApplicationDeploymentDescription {
for ($_i28 = 0; $_i28 < $_size24; ++$_i28)
{
$elem29 = null;
- $xfer += $input->readString($elem29);
+ $elem29 = new \Airavata\Model\AppCatalog\AppDeployment\CommandObject();
+ $xfer += $elem29->read($input);
$this->preJobCommands []= $elem29;
}
$xfer += $input->readListEnd();
@@ -672,7 +810,8 @@ class ApplicationDeploymentDescription {
for ($_i34 = 0; $_i34 < $_size30; ++$_i34)
{
$elem35 = null;
- $xfer += $input->readString($elem35);
+ $elem35 = new \Airavata\Model\AppCatalog\AppDeployment\CommandObject();
+ $xfer += $elem35->read($input);
$this->postJobCommands []= $elem35;
}
$xfer += $input->readListEnd();
@@ -729,11 +868,11 @@ class ApplicationDeploymentDescription {
}
$xfer += $output->writeFieldBegin('moduleLoadCmds', TType::LST, 7);
{
- $output->writeListBegin(TType::STRING, count($this->moduleLoadCmds));
+ $output->writeListBegin(TType::STRUCT, count($this->moduleLoadCmds));
{
foreach ($this->moduleLoadCmds as $iter36)
{
- $xfer += $output->writeString($iter36);
+ $xfer += $iter36->write($output);
}
}
$output->writeListEnd();
@@ -797,11 +936,11 @@ class ApplicationDeploymentDescription {
}
$xfer += $output->writeFieldBegin('preJobCommands', TType::LST, 11);
{
- $output->writeListBegin(TType::STRING, count($this->preJobCommands));
+ $output->writeListBegin(TType::STRUCT, count($this->preJobCommands));
{
foreach ($this->preJobCommands as $iter40)
{
- $xfer += $output->writeString($iter40);
+ $xfer += $iter40->write($output);
}
}
$output->writeListEnd();
@@ -814,11 +953,11 @@ class ApplicationDeploymentDescription {
}
$xfer += $output->writeFieldBegin('postJobCommands', TType::LST, 12);
{
- $output->writeListBegin(TType::STRING, count($this->postJobCommands));
+ $output->writeListBegin(TType::STRUCT, count($this->postJobCommands));
{
foreach ($this->postJobCommands as $iter41)
{
- $xfer += $output->writeString($iter41);
+ $xfer += $iter41->write($output);
}
}
$output->writeListEnd();
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9315f3cd/app/libraries/AppUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/AppUtilities.php b/app/libraries/AppUtilities.php
index 3dff384..b239280 100644
--- a/app/libraries/AppUtilities.php
+++ b/app/libraries/AppUtilities.php
@@ -9,6 +9,7 @@ use Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription;
use Airavata\Model\Application\Io\DataType;
use Airavata\Model\Application\Io\InputDataObjectType;
use Airavata\Model\Application\Io\OutputDataObjectType;
+use Airavata\Model\AppCatalog\AppDeployment\CommandObject;
class AppUtilities
@@ -139,11 +140,19 @@ class AppUtilities
public static function create_or_update_appDeployment($inputs, $update = false)
{
-
$appDeploymentValues = $inputs;
- if (isset($appDeploymentValues["moduleLoadCmds"]))
- $appDeploymentValues["moduleLoadCmds"] = array_unique(array_filter($appDeploymentValues["moduleLoadCmds"]));
+ if (isset($appDeploymentValues["moduleLoadCmds"])) {
+ $moduleLoadCmds = array_unique(array_filter($appDeploymentValues["moduleLoadCmds"], "trim"));
+ $processedModuleLoadCommands = array();
+ foreach ($moduleLoadCmds as $index => $loadCmd) {
+ $cmdObject = new CommandObject();
+ $cmdObject->command = $loadCmd;
+ $cmdObject->commandOrder = $index;
+ $processedModuleLoadCommands[] = $cmdObject;
+ }
+ $appDeploymentValues["moduleLoadCmds"] = $processedModuleLoadCommands;
+ }
if (isset($appDeploymentValues["libraryPrependPathName"])) {
$libPrependPathNames = array_unique(array_filter($appDeploymentValues["libraryPrependPathName"], "trim"));
@@ -175,16 +184,29 @@ class AppUtilities
"name" => $envName,
"value" => $appDeploymentValues["environmentValue"][$index]
));
+ $envPath->envPathOrder = $index;
$appDeploymentValues["setEnvironment"][] = $envPath;
}
}
if (isset($appDeploymentValues["preJobCommand"])) {
- $appDeploymentValues["preJobCommands"] = array_unique(array_filter($appDeploymentValues["preJobCommand"], "trim"));
+ $preJobCmds = array_unique(array_filter($appDeploymentValues["preJobCommand"], "trim"));
+ foreach ($preJobCmds as $index => $preJobCmd) {
+ $cmdObject = new CommandObject();
+ $cmdObject->command = $preJobCmd;
+ $cmdObject->commandOrder = $index;
+ $appDeploymentValues["preJobCommands"][] = $cmdObject;
+ }
}
if (isset($appDeploymentValues["postJobCommand"])) {
- $appDeploymentValues["postJobCommands"] = array_unique(array_filter($appDeploymentValues["postJobCommand"], "trim"));
+ $postJobCmds = array_unique(array_filter($appDeploymentValues["postJobCommand"], "trim"));
+ foreach ($postJobCmds as $index => $postJobCmd) {
+ $cmdObject = new CommandObject();
+ $cmdObject->command = $postJobCmd;
+ $cmdObject->commandOrder = $index;
+ $appDeploymentValues["postJobCommands"][] = $cmdObject;
+ }
}
if (isset($appDeploymentValues["parallelism"])) {
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/9315f3cd/app/views/partials/deployment-block.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/deployment-block.blade.php b/app/views/partials/deployment-block.blade.php
index 649cf07..5dcf5ff 100644
--- a/app/views/partials/deployment-block.blade.php
+++ b/app/views/partials/deployment-block.blade.php
@@ -54,7 +54,7 @@
@if( isset( $deploymentObject))
@foreach( (array)$deploymentObject->moduleLoadCmds as $index => $cmd)
<input name="moduleLoadCmds[]" type="text" class="form-control" placeholder="Module Load Command"
- value="{{$cmd}}" readonly/>
+ value="{{$cmd->command}}" readonly/>
@endforeach
@endif
</div>
@@ -121,7 +121,7 @@
@foreach( (array)$deploymentObject->preJobCommands as $preJobCommand)
<div class="col-md-12 well">
<input name="preJobCommand[]" type="text" class="col-md-12" placeholder="Pre Job Command"
- value="{{ htmlentities( $preJobCommand)}}" readonly/>
+ value="{{ htmlentities( $preJobCommand->command)}}" readonly/>
</div>
@endforeach
@endif
@@ -136,7 +136,7 @@
@foreach( (array)$deploymentObject->postJobCommands as $postJobCommand)
<div class="col-md-12 well">
<input name="postJobCommand[]" type="text" class="col-md-12" placeholder="Post Job Command"
- value="{{htmlentities( $postJobCommand )}}" readonly/>
+ value="{{htmlentities( $postJobCommand->command )}}" readonly/>
</div>
@endforeach
@endif