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/03/12 04:55:13 UTC
[41/51] [partial] airavata-php-gateway git commit: importing PGA into
new repo - details are discussed at AIRAVATA-1627
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/libraries/Airavata/Model/Workspace/Types.php
----------------------------------------------------------------------
diff --git a/app/libraries/Airavata/Model/Workspace/Types.php b/app/libraries/Airavata/Model/Workspace/Types.php
new file mode 100644
index 0000000..7ccd55c
--- /dev/null
+++ b/app/libraries/Airavata/Model/Workspace/Types.php
@@ -0,0 +1,608 @@
+<?php
+namespace Airavata\Model\Workspace;
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.1)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
+
+
+class Group {
+ static $_TSPEC;
+
+ public $groupName = null;
+ public $description = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'groupName',
+ 'type' => TType::STRING,
+ ),
+ 2 => array(
+ 'var' => 'description',
+ 'type' => TType::STRING,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['groupName'])) {
+ $this->groupName = $vals['groupName'];
+ }
+ if (isset($vals['description'])) {
+ $this->description = $vals['description'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'Group';
+ }
+
+ 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->groupName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->description);
+ } 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('Group');
+ if ($this->groupName !== null) {
+ $xfer += $output->writeFieldBegin('groupName', TType::STRING, 1);
+ $xfer += $output->writeString($this->groupName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->description !== null) {
+ $xfer += $output->writeFieldBegin('description', TType::STRING, 2);
+ $xfer += $output->writeString($this->description);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class Project {
+ static $_TSPEC;
+
+ public $projectID = "DEFAULT";
+ public $owner = null;
+ public $name = null;
+ public $description = null;
+ public $creationTime = null;
+ public $sharedUsers = null;
+ public $sharedGroups = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'projectID',
+ 'type' => TType::STRING,
+ ),
+ 2 => array(
+ 'var' => 'owner',
+ 'type' => TType::STRING,
+ ),
+ 3 => array(
+ 'var' => 'name',
+ 'type' => TType::STRING,
+ ),
+ 4 => array(
+ 'var' => 'description',
+ 'type' => TType::STRING,
+ ),
+ 5 => array(
+ 'var' => 'creationTime',
+ 'type' => TType::I64,
+ ),
+ 6 => array(
+ 'var' => 'sharedUsers',
+ 'type' => TType::LST,
+ 'etype' => TType::STRING,
+ 'elem' => array(
+ 'type' => TType::STRING,
+ ),
+ ),
+ 7 => array(
+ 'var' => 'sharedGroups',
+ 'type' => TType::LST,
+ 'etype' => TType::STRING,
+ 'elem' => array(
+ 'type' => TType::STRING,
+ ),
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['projectID'])) {
+ $this->projectID = $vals['projectID'];
+ }
+ if (isset($vals['owner'])) {
+ $this->owner = $vals['owner'];
+ }
+ if (isset($vals['name'])) {
+ $this->name = $vals['name'];
+ }
+ if (isset($vals['description'])) {
+ $this->description = $vals['description'];
+ }
+ if (isset($vals['creationTime'])) {
+ $this->creationTime = $vals['creationTime'];
+ }
+ if (isset($vals['sharedUsers'])) {
+ $this->sharedUsers = $vals['sharedUsers'];
+ }
+ if (isset($vals['sharedGroups'])) {
+ $this->sharedGroups = $vals['sharedGroups'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'Project';
+ }
+
+ 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->projectID);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->owner);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 3:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->name);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 4:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->description);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 5:
+ if ($ftype == TType::I64) {
+ $xfer += $input->readI64($this->creationTime);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 6:
+ if ($ftype == TType::LST) {
+ $this->sharedUsers = array();
+ $_size0 = 0;
+ $_etype3 = 0;
+ $xfer += $input->readListBegin($_etype3, $_size0);
+ for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+ {
+ $elem5 = null;
+ $xfer += $input->readString($elem5);
+ $this->sharedUsers []= $elem5;
+ }
+ $xfer += $input->readListEnd();
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 7:
+ if ($ftype == TType::LST) {
+ $this->sharedGroups = array();
+ $_size6 = 0;
+ $_etype9 = 0;
+ $xfer += $input->readListBegin($_etype9, $_size6);
+ for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
+ {
+ $elem11 = null;
+ $xfer += $input->readString($elem11);
+ $this->sharedGroups []= $elem11;
+ }
+ $xfer += $input->readListEnd();
+ } 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('Project');
+ if ($this->projectID !== null) {
+ $xfer += $output->writeFieldBegin('projectID', TType::STRING, 1);
+ $xfer += $output->writeString($this->projectID);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->owner !== null) {
+ $xfer += $output->writeFieldBegin('owner', TType::STRING, 2);
+ $xfer += $output->writeString($this->owner);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->name !== null) {
+ $xfer += $output->writeFieldBegin('name', TType::STRING, 3);
+ $xfer += $output->writeString($this->name);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->description !== null) {
+ $xfer += $output->writeFieldBegin('description', TType::STRING, 4);
+ $xfer += $output->writeString($this->description);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->creationTime !== null) {
+ $xfer += $output->writeFieldBegin('creationTime', TType::I64, 5);
+ $xfer += $output->writeI64($this->creationTime);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->sharedUsers !== null) {
+ if (!is_array($this->sharedUsers)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('sharedUsers', TType::LST, 6);
+ {
+ $output->writeListBegin(TType::STRING, count($this->sharedUsers));
+ {
+ foreach ($this->sharedUsers as $iter12)
+ {
+ $xfer += $output->writeString($iter12);
+ }
+ }
+ $output->writeListEnd();
+ }
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->sharedGroups !== null) {
+ if (!is_array($this->sharedGroups)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('sharedGroups', TType::LST, 7);
+ {
+ $output->writeListBegin(TType::STRING, count($this->sharedGroups));
+ {
+ foreach ($this->sharedGroups as $iter13)
+ {
+ $xfer += $output->writeString($iter13);
+ }
+ }
+ $output->writeListEnd();
+ }
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class User {
+ static $_TSPEC;
+
+ public $userName = null;
+ public $groupList = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'userName',
+ 'type' => TType::STRING,
+ ),
+ 2 => array(
+ 'var' => 'groupList',
+ 'type' => TType::LST,
+ 'etype' => TType::STRUCT,
+ 'elem' => array(
+ 'type' => TType::STRUCT,
+ 'class' => '\Airavata\Model\Workspace\Group',
+ ),
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['userName'])) {
+ $this->userName = $vals['userName'];
+ }
+ if (isset($vals['groupList'])) {
+ $this->groupList = $vals['groupList'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'User';
+ }
+
+ 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->userName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::LST) {
+ $this->groupList = array();
+ $_size14 = 0;
+ $_etype17 = 0;
+ $xfer += $input->readListBegin($_etype17, $_size14);
+ for ($_i18 = 0; $_i18 < $_size14; ++$_i18)
+ {
+ $elem19 = null;
+ $elem19 = new \Airavata\Model\Workspace\Group();
+ $xfer += $elem19->read($input);
+ $this->groupList []= $elem19;
+ }
+ $xfer += $input->readListEnd();
+ } 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('User');
+ if ($this->userName !== null) {
+ $xfer += $output->writeFieldBegin('userName', TType::STRING, 1);
+ $xfer += $output->writeString($this->userName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->groupList !== null) {
+ if (!is_array($this->groupList)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('groupList', TType::LST, 2);
+ {
+ $output->writeListBegin(TType::STRUCT, count($this->groupList));
+ {
+ foreach ($this->groupList as $iter20)
+ {
+ $xfer += $iter20->write($output);
+ }
+ }
+ $output->writeListEnd();
+ }
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class Gateway {
+ static $_TSPEC;
+
+ public $gatewayId = null;
+ public $gatewayName = null;
+ public $domain = null;
+ public $emailAddress = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'gatewayId',
+ 'type' => TType::STRING,
+ ),
+ 2 => array(
+ 'var' => 'gatewayName',
+ 'type' => TType::STRING,
+ ),
+ 3 => array(
+ 'var' => 'domain',
+ 'type' => TType::STRING,
+ ),
+ 4 => array(
+ 'var' => 'emailAddress',
+ 'type' => TType::STRING,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['gatewayId'])) {
+ $this->gatewayId = $vals['gatewayId'];
+ }
+ if (isset($vals['gatewayName'])) {
+ $this->gatewayName = $vals['gatewayName'];
+ }
+ if (isset($vals['domain'])) {
+ $this->domain = $vals['domain'];
+ }
+ if (isset($vals['emailAddress'])) {
+ $this->emailAddress = $vals['emailAddress'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'Gateway';
+ }
+
+ 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->gatewayId);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->gatewayName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 3:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->domain);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 4:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->emailAddress);
+ } 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('Gateway');
+ if ($this->gatewayId !== null) {
+ $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 1);
+ $xfer += $output->writeString($this->gatewayId);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->gatewayName !== null) {
+ $xfer += $output->writeFieldBegin('gatewayName', TType::STRING, 2);
+ $xfer += $output->writeString($this->gatewayName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->domain !== null) {
+ $xfer += $output->writeFieldBegin('domain', TType::STRING, 3);
+ $xfer += $output->writeString($this->domain);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->emailAddress !== null) {
+ $xfer += $output->writeFieldBegin('emailAddress', TType::STRING, 4);
+ $xfer += $output->writeString($this->emailAddress);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/libraries/AiravataClientFactory.php
----------------------------------------------------------------------
diff --git a/app/libraries/AiravataClientFactory.php b/app/libraries/AiravataClientFactory.php
new file mode 100755
index 0000000..c55a359
--- /dev/null
+++ b/app/libraries/AiravataClientFactory.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Airavata\Client;
+
+$GLOBALS['THRIFT_ROOT'] = 'Thrift/';
+//require_once $GLOBALS['THRIFT_ROOT'] . 'Thrift.php';
+/*
+require_once $GLOBALS['THRIFT_ROOT'] . 'Transport/TTransport.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Transport/TSocket.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Protocol/TProtocol.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Protocol/TBinaryProtocol.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Exception/TException.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Exception/TTransportException.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Type/TType.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Type/TMessageType.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Factory/TStringFuncFactory.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'StringFunc/TStringFunc.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'StringFunc/Core.php';
+
+$GLOBALS['AIRAVATA_ROOT'] = 'Airavata/';
+require_once $GLOBALS['AIRAVATA_ROOT'] . 'API/Airavata.php';
+*/
+
+use Thrift\Protocol\TBinaryProtocol;
+use Thrift\Transport\TSocket;
+use Airavata\API\AiravataClient;
+
+class AiravataClientFactory
+{
+
+ private $airavataServerHost;
+ private $airavataServerPort;
+
+ public function __construct($options)
+ {
+ $this->airavataServerHost = isset($options['airavataServerHost']) ? $options['airavataServerHost'] : null;
+ $this->airavataServerPort = isset($options['airavataServerPort']) ? $options['airavataServerPort'] : null;
+ }
+
+ public function getAiravataClient()
+ {
+ $transport = new TSocket($this->airavataServerHost, $this->airavataServerPort);
+ $protocol = new TBinaryProtocol($transport);
+ $transport->open();
+ return new AiravataClient($protocol);
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/libraries/AppUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/AppUtilities.php b/app/libraries/AppUtilities.php
new file mode 100644
index 0000000..6e034c4
--- /dev/null
+++ b/app/libraries/AppUtilities.php
@@ -0,0 +1,230 @@
+<?php
+
+//Airavata classes - loaded from app/libraries/Airavata
+use Airavata\API\AiravataClient;
+
+use Airavata\Model\AppCatalog\AppInterface\DataType;
+use Airavata\Model\AppCatalog\AppInterface\InputDataObjectType;
+use Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType;
+use Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription;
+
+use Airavata\Model\Workspace\Project;
+
+use Airavata\Model\AppCatalog\AppDeployment\ApplicationModule;
+use Airavata\Model\AppCatalog\AppDeployment\ApplicationParallelismType;
+use Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription;
+use Airavata\Model\AppCatalog\AppDeployment\SetEnvPaths;
+
+//use Airavata\Model\AppCatalog\ComputeResource
+
+
+class AppUtilities{
+
+ public static function create_or_update_appModule( $inputs, $update = false){
+
+ $airavataclient = Session::get("airavataClient");
+
+ $appModule = new ApplicationModule( array(
+ "appModuleName" => $inputs["appModuleName"],
+ "appModuleVersion" => $inputs["appModuleVersion"],
+ "appModuleDescription" => $inputs["appModuleDescription"]
+ ));
+
+ if( $update)
+ return $airavataclient->updateApplicationModule( $inputs["appModuleId"], $appModule);
+ else
+ return $airavataclient->registerApplicationModule( Session::get("gateway_id"), $appModule);
+ }
+
+ public static function deleteAppModule( $appModuleId){
+
+ $airavataclient = Session::get("airavataClient");
+
+ return $airavataclient->deleteApplicationModule( $appModuleId);
+ }
+
+ public static function getAppInterfaceData(){
+
+ $airavataclient = Session::get("airavataClient");
+
+ $dataType = new DataType();
+ $modules = AppUtilities::getAllModules();
+ $appInterfaces = $airavataclient->getAllApplicationInterfaces( Session::get("gateway_id"));
+
+
+ $InputDataObjectType = new InputDataObjectType();
+
+ return array(
+ "appInterfaces" => $appInterfaces,
+ "dataTypes" => $dataType::$__names,
+ "modules" => $modules
+ );
+ }
+
+ public static function create_or_update_appInterface( $appInterfaceValues, $update = false){
+
+ $airavataclient = Session::get("airavataClient");
+ //var_dump( $appInterfaceValues); exit;
+ $appInterface = new ApplicationInterfaceDescription( array(
+ "applicationName" => $appInterfaceValues["applicationName"],
+ "applicationDescription" => $appInterfaceValues["applicationDescription"],
+ "applicationModules" => $appInterfaceValues["applicationModules"]
+ ) );
+
+ if( isset( $appInterfaceValues["inputName"]))
+ {
+ foreach ($appInterfaceValues["inputName"] as $index => $name) {
+ $inputDataObjectType = new InputDataObjectType( array(
+ "name" => $name,
+ "value" => $appInterfaceValues["inputValue"][ $index],
+ "type" => $appInterfaceValues["inputType"][ $index],
+ "applicationArgument" => $appInterfaceValues["applicationArgumentInput"][$index],
+ "standardInput" => $appInterfaceValues["standardInput"][ $index],
+ "userFriendlyDescription" => $appInterfaceValues["userFriendlyDescription"][ $index],
+ "metaData" => $appInterfaceValues["metaData"][ $index],
+ "inputOrder" => intval( $appInterfaceValues["inputOrder"][ $index]),
+ "dataStaged" => intval( $appInterfaceValues["dataStaged"][ $index]),
+ "isRequired" => $appInterfaceValues["isRequiredInput"][ $index],
+ "requiredToAddedToCommandLine" => $appInterfaceValues["requiredToAddedToCommandLineInput"][$index]
+ ) );
+ $appInterface->applicationInputs[] = $inputDataObjectType;
+ }
+ }
+
+ if( isset( $appInterfaceValues["outputName"]))
+ {
+ foreach ( $appInterfaceValues["outputName"] as $index => $name) {
+ $outputDataObjectType = new OutputDataObjectType( array(
+ "name" => $name,
+ "value" => $appInterfaceValues["outputValue"][ $index],
+ "type" => $appInterfaceValues["outputType"][ $index],
+ "applicationArgument" => $appInterfaceValues["applicationArgumentOutput"][$index],
+ "dataMovement" => intval( $appInterfaceValues["dataMovement"][ $index]),
+ "location" => $appInterfaceValues["location"][ $index],
+ "isRequired" => $appInterfaceValues["isRequiredOutput"][ $index],
+ "requiredToAddedToCommandLine" => $appInterfaceValues["requiredToAddedToCommandLineOutput"][$index],
+ "searchQuery" => $appInterfaceValues["searchQuery"][$index]
+ ));
+ $appInterface->applicationOutputs[] = $outputDataObjectType;
+ }
+ }
+
+ //var_dump( $appInterface); exit;
+
+ if( $update)
+ $airavataclient->updateApplicationInterface( $appInterfaceValues["app-interface-id"], $appInterface);
+ else
+ $airavataclient->getApplicationInterface($airavataclient->registerApplicationInterface( $appInterface) );
+
+ //print_r( "App interface has been created.");
+ }
+
+ public static function deleteAppInterface( $appInterfaceId){
+
+ $airavataclient = Session::get("airavataClient");
+
+ return $airavataclient->deleteApplicationInterface( $appInterfaceId);
+ }
+
+
+ public static function getAppDeploymentData(){
+
+ $airavataclient = Session::get("airavataClient");
+
+ $appDeployments = $airavataclient->getAllApplicationDeployments( Session::get("gateway_id"));
+ //var_dump( $appDeployments); exit;
+ $computeResources = $airavataclient->getAllComputeResourceNames();
+ $modules = AppUtilities::getAllModules();
+ $apt = new ApplicationParallelismType();
+
+ return array(
+ "appDeployments" => $appDeployments,
+ "applicationParallelismTypes" => $apt::$__names,
+ "computeResources" => $computeResources,
+ "modules" => $modules
+ );
+ }
+
+ public static function create_or_update_appDeployment( $inputs, $update = false){
+
+ $appDeploymentValues = $inputs;
+
+ $airavataclient = Session::get("airavataClient");
+
+ if( isset( $appDeploymentValues["moduleLoadCmds"]))
+ $appDeploymentValues["moduleLoadCmds"] = array_unique( array_filter( $appDeploymentValues["moduleLoadCmds"]));
+
+ if( isset( $appDeploymentValues["libraryPrependPathName"] ))
+ {
+ $libPrependPathNames = array_unique( array_filter( $appDeploymentValues["libraryPrependPathName"],"trim" ));
+
+ foreach( $libPrependPathNames as $index => $prependName)
+ {
+ $envPath = new SetEnvPaths(array(
+ "name" => $prependName,
+ "value" => $appDeploymentValues["libraryPrependPathValue"][ $index]
+ ));
+ $appDeploymentValues["libPrependPaths"][] = $envPath;
+ }
+ }
+
+ if( isset( $appDeploymentValues["libraryAppendPathName"] ))
+ {
+ $libAppendPathNames = array_unique( array_filter( $appDeploymentValues["libraryAppendPathName"],"trim" ));
+ foreach( $libAppendPathNames as $index => $appendName)
+ {
+ $envPath = new SetEnvPaths(array(
+ "name" => $appendName,
+ "value" => $appDeploymentValues["libraryAppendPathValue"][ $index]
+ ));
+ $appDeploymentValues["libAppendPaths"][] = $envPath;
+ }
+ }
+
+ if( isset( $appDeploymentValues["environmentName"] ))
+ {
+ $environmentNames = array_unique( array_filter( $appDeploymentValues["environmentName"], "trim"));
+ foreach( $environmentNames as $index => $envName)
+ {
+ $envPath = new SetEnvPaths(array(
+ "name" => $envName,
+ "value" => $appDeploymentValues["environmentValue"][$index]
+ ));
+ $appDeploymentValues["setEnvironment"][] = $envPath;
+ }
+ }
+
+ if( isset( $appDeploymentValues["preJobCommand"] ))
+ {
+ $appDeploymentValues["preJobCommands"] = array_unique( array_filter( $appDeploymentValues["preJobCommand"], "trim"));
+ }
+
+ if( isset( $appDeploymentValues["postJobCommand"] ))
+ {
+ $appDeploymentValues["postJobCommands"] = array_unique( array_filter( $appDeploymentValues["postJobCommand"], "trim"));
+ }
+
+ //var_dump( $appDeploymentValues); exit;
+ $appDeployment = new ApplicationDeploymentDescription( $appDeploymentValues);
+ if( $update)
+ $airavataclient->updateApplicationDeployment( $inputs["app-deployment-id"], $appDeployment);
+ else
+ $appDeploymentId = $airavataclient->registerApplicationDeployment( Session::get("gateway_id"), $appDeployment);
+
+ return;
+
+ }
+
+ public static function deleteAppDeployment( $appDeploymentId )
+ {
+
+ $airavataclient = Session::get("airavataClient");
+
+ return $airavataclient->deleteApplicationDeployment( $appDeploymentId);
+ }
+
+ public static function getAllModules(){
+ $airavataclient = Session::get("airavataClient");
+ return $airavataclient->getAllAppModules( Session::get("gateway_id"));
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/libraries/CRUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/CRUtilities.php b/app/libraries/CRUtilities.php
new file mode 100644
index 0000000..c24ce25
--- /dev/null
+++ b/app/libraries/CRUtilities.php
@@ -0,0 +1,445 @@
+<?php
+
+
+//Airavata classes - loaded from app/libraries/Airavata
+use Airavata\API\AiravataClient;
+
+//Compute Resource classes
+
+use Airavata\Model\AppCatalog\ComputeResource\FileSystems;
+use Airavata\Model\AppCatalog\ComputeResource\JobSubmissionInterface;
+use Airavata\Model\AppCatalog\ComputeResource\JobSubmissionProtocol;
+use Airavata\Model\AppCatalog\ComputeResource\SecurityProtocol;
+use Airavata\Model\AppCatalog\ComputeResource\ResourceJobManager;
+use Airavata\Model\AppCatalog\ComputeResource\ResourceJobManagerType;
+use Airavata\Model\AppCatalog\ComputeResource\JobManagerCommand;
+use Airavata\Model\AppCatalog\ComputeResource\DataMovementProtocol;
+use Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription;
+use Airavata\Model\AppCatalog\ComputeResource\SSHJobSubmission;
+use Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission;
+use Airavata\Model\AppCatalog\ComputeResource\UnicoreJobSubmission;
+use Airavata\Model\AppCatalog\ComputeResource\BatchQueue;
+use Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement;
+use Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement;
+use Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement;
+use Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement;
+
+
+//Gateway Classes
+
+use Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile;
+use Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference;
+
+
+
+
+class CRUtilities{
+/**
+ * Basic utility functions
+ */
+
+//define('ROOT_DIR', __DIR__);
+
+/**
+ * Define configuration constants
+ */
+public static function register_or_update_compute_resource( $computeDescription, $update = false)
+{
+ $airavataclient = Session::get("airavataClient");
+ if( $update)
+ {
+ $computeResourceId = $computeDescription->computeResourceId;
+
+ if( $airavataclient->updateComputeResource( $computeResourceId, $computeDescription) )
+ {
+ $computeResource = $airavataclient->getComputeResource( $computeResourceId);
+ return $computeResource;
+ }
+ else
+ print_r( "Something went wrong while updating!"); exit;
+ }
+ else
+ {
+ /*
+ $fileSystems = new FileSystems();
+ foreach( $fileSystems as $fileSystem)
+ $computeDescription["fileSystems"][$fileSystem] = "";
+ */
+ $cd = new ComputeResourceDescription( $computeDescription);
+ $computeResourceId = $airavataclient->registerComputeResource( $cd);
+ }
+
+ $computeResource = $airavataclient->getComputeResource( $computeResourceId);
+ return $computeResource;
+
+}
+
+/*
+ * Getting data for Compute resource inputs
+*/
+
+public static function getEditCRData(){
+ $files = new FileSystems();
+ $jsp = new JobSubmissionProtocol();
+ $rjmt = new ResourceJobManagerType();
+ $sp = new SecurityProtocol();
+ $dmp = new DataMovementProtocol();
+ $jmc = new JobManagerCommand();
+ return array(
+ "fileSystemsObject" => $files,
+ "fileSystems" => $files::$__names,
+ "jobSubmissionProtocolsObject" => $jsp,
+ "jobSubmissionProtocols" => $jsp::$__names,
+ "resourceJobManagerTypesObject" => $rjmt,
+ "resourceJobManagerTypes" => $rjmt::$__names,
+ "securityProtocolsObject" => $sp,
+ "securityProtocols" => $sp::$__names,
+ "dataMovementProtocolsObject" => $dmp,
+ "dataMovementProtocols" => $dmp::$__names,
+ "jobManagerCommands" => $jmc::$__names
+ );
+}
+
+
+public static function createQueueObject( $queue){
+ $queueObject = new BatchQueue( $queue);
+ return $queueObject;
+}
+
+public static function deleteQueue( $computeResourceId, $queueName)
+{
+ $airavataclient = Session::get("airavataClient");
+ $airavataclient->deleteBatchQueue( $computeResourceId, $queueName);
+}
+
+
+/*
+ * Creating Job Submission Interface.
+*/
+
+public static function create_or_update_JSIObject( $inputs, $update = false){
+
+ $airavataclient = Session::get("airavataClient");
+ $computeResource = Utilities::get_compute_resource( $inputs["crId"]);
+
+
+ $jsiId = null;
+ if( isset( $inputs["jsiId"]))
+ $jsiId = $inputs["jsiId"];
+
+ if( $inputs["jobSubmissionProtocol"] == JobSubmissionProtocol::LOCAL)
+ {
+
+ //print_r( $jsiObject->resourceJobManager->resourceJobManagerId);
+ $resourceManager = new ResourceJobManager(array(
+ "resourceJobManagerType" => $inputs["resourceJobManagerType"],
+ "pushMonitoringEndpoint" => $inputs["pushMonitoringEndpoint"],
+ "jobManagerBinPath" => $inputs["jobManagerBinPath"],
+ "jobManagerCommands" => $inputs["jobManagerCommands"]
+ ));
+
+ //$rmId = $jsiObject->resourceJobManager->resourceJobManagerId;
+ //$rm = $airavataclient->updateResourceJobManager($rmId, $resourceManager);
+ //print_r( $rm); exit;
+ $localJobSubmission = new LOCALSubmission( array(
+ "resourceJobManager" => $resourceManager
+ )
+ );
+
+ if( $update) //update Local JSP
+ {
+ $jsiObject = $airavataclient->getLocalJobSubmission( $jsiId);
+ $localSub = $airavataclient->updateResourceJobManager( $jsiObject->resourceJobManager->resourceJobManagerId, $resourceManager);
+ //$localSub = $airavataclient->updateLocalSubmissionDetails( $jsiId, $localJobSubmission);
+ }
+ else // create Local JSP
+ {
+ $localSub = $airavataclient->addLocalSubmissionDetails( $computeResource->computeResourceId, 0, $localJobSubmission);
+ return $localSub;
+ }
+
+ }
+ else if( $inputs["jobSubmissionProtocol"] == JobSubmissionProtocol::SSH) /* SSH */
+ {
+ $resourceManager = new ResourceJobManager(array(
+ "resourceJobManagerType" => $inputs["resourceJobManagerType"],
+ "pushMonitoringEndpoint" => $inputs["pushMonitoringEndpoint"],
+ "jobManagerBinPath" => $inputs["jobManagerBinPath"],
+ "jobManagerCommands" => $inputs["jobManagerCommands"]
+ ));
+ $sshJobSubmission = new SSHJobSubmission( array
+ (
+ "securityProtocol" => intval( $inputs["securityProtocol"]),
+ "resourceJobManager" => $resourceManager,
+ "alternativeSSHHostName" => $inputs["alternativeSSHHostName"],
+ "sshPort" => intval( $inputs["sshPort"] )
+ )
+ );
+ if( $update) //update Local JSP
+ {
+ $jsiObject = $airavataclient->getSSHJobSubmission( $jsiId);
+
+ //first update resource job manager
+ $rmjId = $jsiObject->resourceJobManager->resourceJobManagerId;
+ $airavataclient->updateResourceJobManager( $rmjId, $resourceManager);
+ $jsiObject = $airavataclient->getSSHJobSubmission( $jsiId);
+
+ $jsiObject->securityProtocol = intval( $inputs["securityProtocol"] );
+ $jsiObject->alternativeSSHHostName = $inputs["alternativeSSHHostName"];
+ $jsiObject->sshPort = intval( $inputs["sshPort"] );
+ $jsiObject->resourceJobManager = $airavataclient->getresourceJobManager( $rmjId);
+ //var_dump( $jsiObject); exit;
+ //add updated resource job manager to ssh job submission object.
+ //$sshJobSubmission->resourceJobManager->resourceJobManagerId = $rmjId;
+ $localSub = $airavataclient->updateSSHJobSubmissionDetails( $jsiId, $jsiObject);
+ }
+ else
+ {
+ $sshSub = $airavataclient->addSSHJobSubmissionDetails( $computeResource->computeResourceId, 0, $sshJobSubmission);
+ }
+ return;
+ }
+ else if( $inputs["jobSubmissionProtocol"] == JobSubmissionProtocol::UNICORE)
+ {
+ $unicoreJobSubmission = new UnicoreJobSubmission( array
+ (
+ "securityProtocol" => intval( $inputs["securityProtocol"]),
+ "unicoreEndPointURL" => $inputs["unicoreEndPointURL"]
+ )
+ );
+ if( $update)
+ {
+ $jsiObject = $airavataclient->getUnicoreJobSubmission( $jsiId);
+ $jsiObject->securityProtocol = intval( $inputs["securityProtocol"] );
+ $jsiObject->unicoreEndPointURL = $inputs["unicoreEndPointURL"];
+
+ $unicoreSub = $airavataclient->updateUnicoreJobSubmissionDetails( $jsiId, $jsiObject);
+ }
+ else
+ {
+ $unicoreSub = $airavataclient->addUNICOREJobSubmissionDetails( $computeResource->computeResourceId, 0, $unicoreJobSubmission);
+ }
+ }
+ else /* Globus does not work currently */
+ {
+ print_r( "Whoops! We haven't coded for this Job Submission Protocol yet. Still working on it. Please click <a href='" . URL::to('/') . "/cr/edit'>here</a> to go back to edit page for compute resource.");
+ }
+}
+
+/*
+ * Creating Data Movement Interface Object.
+*/
+public static function create_or_update_DMIObject( $inputs, $update = false){
+ $airavataclient = Session::get("airavataClient");
+
+ $computeResource = Utilities::get_compute_resource( $inputs["crId"] );
+ if( $inputs["dataMovementProtocol"] == DataMovementProtocol::LOCAL) /* LOCAL */
+ {
+ $localDataMovement = new LOCALDataMovement();
+ $localdmp = $airavataclient->addLocalDataMovementDetails( $computeResource->computeResourceId, 0, $localDataMovement);
+
+ if( $localdmp)
+ print_r( "The Local Data Movement has been added. Edit UI for the Local Data Movement Interface is yet to be made.
+ Please click <a href='" . URL::to('/') . "/cr/edit'>here</a> to go back to edit page for compute resource.");
+ }
+ else if( $inputs["dataMovementProtocol"] == DataMovementProtocol::SCP) /* SCP */
+ {
+ //var_dump( $inputs); exit;
+ $scpDataMovement = new SCPDataMovement( array(
+ "securityProtocol" => intval( $inputs["securityProtocol"] ),
+ "alternativeSCPHostName" => $inputs["alternativeSSHHostName"],
+ "sshPort" => intval( $inputs["sshPort"] )
+ )
+
+ );
+
+ if( $update)
+ $scpdmp = $airavataclient->updateSCPDataMovementDetails( $inputs["dmiId"], $scpDataMovement);
+ else
+ $scpdmp = $airavataclient->addSCPDataMovementDetails( $computeResource->computeResourceId, 0, $scpDataMovement);
+ }
+ else if( $inputs["dataMovementProtocol"] == DataMovementProtocol::GridFTP) /* GridFTP */
+ {
+ $gridFTPDataMovement = new GridFTPDataMovement( array(
+ "securityProtocol" => $inputs["securityProtocol"],
+ "gridFTPEndPoints" => $inputs["gridFTPEndPoints"]
+ ));
+ if( $update)
+ $gridftpdmp = $airavataclient->updateGridFTPDataMovementDetails( $inputs["dmiId"], $gridFTPDataMovement);
+ else
+ $gridftpdmp = $airavataclient->addGridFTPDataMovementDetails( $computeResource->computeResourceId, 0, $gridFTPDataMovement);
+ }
+ else if( $inputs["dataMovementProtocol"] == DataMovementProtocol::UNICORE_STORAGE_SERVICE) /* Unicore Storage Service */
+ {
+ $unicoreDataMovement = new UnicoreDataMovement( array
+ (
+ "securityProtocol" => intval( $inputs["securityProtocol"]),
+ "unicoreEndPointURL" => $inputs["unicoreEndPointURL"]
+ )
+ );
+ if( $update)
+ $unicoredmp = $airavataclient->updateUnicoreDataMovementDetails( $inputs["dmiId"], $unicoreDataMovement);
+ else
+ $unicoredmp = $airavataclient->addUnicoreDataMovementDetails( $computeResource->computeResourceId, 0, $unicoreDataMovement);
+ }
+ else /* other data movement protocols */
+ {
+ print_r( "Whoops! We haven't coded for this Data Movement Protocol yet. Still working on it. Please click <a href='" . URL::to('/') . "/cr/edit'>here</a> to go back to edit page for compute resource.");
+ }
+}
+
+public static function getAllCRObjects( $onlyName = false){
+ $airavataclient = Session::get("airavataClient");
+ $crNames = $airavataclient->getAllComputeResourceNames();
+ if( $onlyName)
+ return $crNames;
+ else
+ {
+ $crObjects = array();
+ foreach( $crNames as $id => $crName)
+ {
+ $crObjects[] = $airavataclient->getComputeResource( $id);
+ }
+ return $crObjects;
+ }
+
+}
+
+public static function getBrowseCRData(){
+ $airavataclient = Session::get("airavataClient");
+ $appDeployments = $airavataclient->getAllApplicationDeployments( Session::get("gateway_id"));
+
+ return array( 'crObjects' => CRUtilities::getAllCRObjects(true),
+ 'appDeployments' => $appDeployments
+ );
+}
+
+public static function getJobSubmissionDetails( $jobSubmissionInterfaceId, $jsp){
+ //jsp = job submission protocol type
+ $airavataclient = Session::get("airavataClient");
+ if( $jsp == JobSubmissionProtocol::LOCAL)
+ return $airavataclient->getLocalJobSubmission( $jobSubmissionInterfaceId);
+ else if( $jsp == JobSubmissionProtocol::SSH)
+ return $airavataclient->getSSHJobSubmission( $jobSubmissionInterfaceId);
+ else if( $jsp == JobSubmissionProtocol::UNICORE)
+ return $airavataclient->getUnicoreJobSubmission( $jobSubmissionInterfaceId);
+ else if( $jsp == JobSubmissionProtocol::CLOUD)
+ return $airavataclient->getCloudJobSubmission( $jobSubmissionInterfaceId);
+
+ //globus get function not present ??
+}
+
+public static function getDataMovementDetails( $dataMovementInterfaceId, $dmi){
+ //jsp = job submission protocol type
+ $airavataclient = Session::get("airavataClient");
+ if( $dmi == DataMovementProtocol::LOCAL)
+ return $airavataclient->getLocalDataMovement( $dataMovementInterfaceId);
+ else if( $dmi == DataMovementProtocol::SCP)
+ return $airavataclient->getSCPDataMovement( $dataMovementInterfaceId);
+ else if( $dmi == DataMovementProtocol::GridFTP)
+ return $airavataclient->getGridFTPDataMovement( $dataMovementInterfaceId);
+ else if( $dmi == DataMovementProtocol::UNICORE_STORAGE_SERVICE)
+ return $airavataclient->getUnicoreDataMovement( $dataMovementInterfaceId);
+ /*
+ else if( $dmi == JobSubmissionProtocol::CLOUD)
+ return $airavataclient->getCloudJobSubmission( $dataMovementInterfaceId);
+ */
+
+ //globus get function not present ??
+}
+
+public static function deleteActions( $inputs){
+ $airavataclient = Session::get("airavataClient");
+ if( isset( $inputs["jsiId"]) )
+ if( $airavataclient->deleteJobSubmissionInterface( $inputs["crId"], $inputs["jsiId"]) )
+ return 1;
+ else
+ return 0;
+ else if( isset( $inputs["dmiId"]) )
+ if( $airavataclient->deleteDataMovementInterface( $inputs["crId"], $inputs["dmiId"]) )
+ return 1;
+ else
+ return 0;
+ elseif( isset( $inputs["del-crId"]))
+ if( $airavataclient->deleteComputeResource( $inputs["del-crId"] ) )
+ return 1;
+ else
+ return 0;
+}
+
+public static function create_or_update_gateway_profile( $inputs, $update = false){
+ $airavataclient = Session::get("airavataClient");
+
+ $computeResourcePreferences = array();
+ if( isset( $input["crPreferences"]) )
+ $computeResourcePreferences = $input["crPreferences"];
+
+ $gatewayProfile = new GatewayResourceProfile( array(
+ "gatewayName" => $inputs["gatewayName"],
+ "gatewayDescription" => $inputs["gatewayDescription"],
+ "computeResourcePreferences" => $computeResourcePreferences
+ )
+ );
+
+ if( $update){
+ $gatewayProfile = new GatewayResourceProfile( array(
+ "gatewayName" => $inputs["gatewayName"],
+ "gatewayDescription" => $inputs["gatewayDescription"]
+ )
+ );
+ $gatewayProfileId = $airavataclient->updateGatewayResourceProfile( $inputs["edit-gpId"], $gatewayProfile);
+ }
+ else
+ $gatewayProfileId = $airavataclient->registerGatewayResourceProfile( $gatewayProfile);
+}
+
+public static function getAllGatewayProfilesData(){
+ $airavataclient = Session::get("airavataClient");
+
+ $gateways = $airavataclient->getAllGateways();
+ $gatewayProfiles = $airavataclient->getAllGatewayComputeResources();
+ //$gatewayProfileIds = array("GatewayTest3_57726e98-313f-4e7c-87a5-18e69928afb5", "GatewayTest4_4fd9fb28-4ced-4149-bdbd-1f276077dad8");
+ foreach( $gateways as $key => $gw)
+ {
+ foreach( (array)$gatewayProfiles as $index => $gp)
+ {
+
+ if( $gw->gatewayId == $gp->gatewayID)
+ {
+ foreach( (array)$gp->computeResourcePreferences as $i => $crp)
+ {
+ $gatewayProfiles[$index]->computeResourcePreferences[$i]->crDetails = $airavataclient->getComputeResource( $crp->computeResourceId);
+ }
+ $gateways[$key]->profile = $gatewayProfiles[$index];
+ }
+ }
+ }
+ //var_dump( $gatewayProfiles[0]->computeResourcePreferences[0]->crDetails); exit;
+
+ return $gateways;
+}
+
+public static function add_or_update_CRP( $inputs){
+ $airavataclient = Session::get("airavataClient");
+
+ $computeResourcePreferences = new computeResourcePreference( $inputs);
+
+ //var_dump( $inputs); exit;
+ return $airavataclient->addGatewayComputeResourcePreference( $inputs["gatewayId"], $inputs["computeResourceId"], $computeResourcePreferences);
+
+}
+
+public static function deleteGP( $gpId){
+ $airavataclient = Session::get("airavataClient");
+
+ return $airavataclient->deleteGatewayResourceProfile( $gpId);
+}
+
+public static function deleteCR( $inputs){
+ $airavataclient = Session::get("airavataClient");
+
+ return $airavataclient->deleteGatewayComputeResourcePreference( $inputs["gpId"], $inputs["rem-crId"]);
+}
+
+}
+?>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a325e292/app/libraries/UserStoreManager/UserStoreManager.php
----------------------------------------------------------------------
diff --git a/app/libraries/UserStoreManager/UserStoreManager.php b/app/libraries/UserStoreManager/UserStoreManager.php
new file mode 100755
index 0000000..9b8f9d8
--- /dev/null
+++ b/app/libraries/UserStoreManager/UserStoreManager.php
@@ -0,0 +1,202 @@
+<?php
+
+require_once 'UserStoreManager.stub.php';
+
+/**
+ * UsersStoreManager class
+ *
+ * This class provide an easy to use interface for
+ * WSO2 IS 4.6.0 RemoteUserStoreManager service.
+ */
+class UserStoreManager {
+ /**
+ * @var RemoteUserManagerStub $serviceStub
+ * @access private
+ */
+ private $serviceStub;
+
+ public function __construct($server_url, $options) {
+ $this->serviceStub = new UserStoreManagerStub(
+ $server_url . "RemoteUserStoreManagerService?wsdl", $options
+ );
+ }
+
+ /**
+ * Function to get the soap client
+ *
+ * @return SoapClient
+ */
+ public function getSoapClient(){
+ return $this->serviceStub;
+ }
+
+ /**
+ * Function to authenticate the user with RemoteUserStoreManager Service
+ * @param type $username
+ * @param type $password
+ */
+ public function authenticate($username, $password){
+ $parameters = new Authenticate();
+ $parameters->userName = $username;
+ $parameters->credential = $password;
+ return $this->serviceStub->authenticate($parameters)->return;
+ }
+
+ /**
+ * Function to add new user by providing username and password
+ *
+ * @param type $userName
+ * @param type $password
+ */
+ public function addUser($userName, $password, $fullName){
+ $parameters = new AddUser();
+ $parameters->userName = $userName;
+ $parameters->credential = $password;
+ $parameters->claims = null;
+ $parameters->profileName = $fullName;
+ $parameters->requirePasswordChange = false;
+ $parameters->roleList = null;
+ $this->serviceStub->addUser($parameters);
+ }
+ /**
+ * Function to delete existing user by providing the username.
+ *
+ * @param string $username
+ */
+ public function deleteUser($username){
+ $parameters = new DeleteUser();
+ $parameters->userName = $username;
+ $this->serviceStub->deleteUser($parameters);
+ }
+
+ /**
+ * Function to check whether a role is existing
+ *
+ * @param string $roleName
+ * @return IsExistingRoleResponse
+ */
+ public function isExistingRole( $roleName) {
+ $parameters = new IsExistingRole();
+ $parameters->roleName = $roleName;
+ $this->serviceStub->isExistingRole( $parameters)->return;
+ }
+ /**
+ * Function to add new role by providing the role name.
+ *
+ * @param string $roleName
+ */
+ public function addRole($roleName){
+ $paramerters = new AddRole();
+ $paramerters->roleName=$roleName;
+ $paramerters->userList=null;
+ $paramerters->permissions=null;
+ $this->serviceStub->addRole($paramerters);
+ }
+
+ /**
+ * Function to delete an existing role
+ *
+ * @param string $roleName
+ */
+ public function deleteRole($roleName){
+ $parameters = new DeleteRole();
+ $parameters->roleName = $roleName;
+ $this->serviceStub->deleteRole($parameters);
+ }
+
+ /**
+ * Function to get a list of users
+ *
+ * @return username list
+ */
+ public function listUsers(){
+ $parameters = new ListUsers();
+ $parameters->filter = "*";
+ $parameters->maxItemLimit = -1;
+
+ return $this->serviceStub->listUsers($parameters)->return;
+ }
+
+ /**
+ * Function get user list
+ *
+ * @param GetUserList $parameters
+ * @return GetUserListResponse
+ */
+ public function getUserList(){
+ $parameters = new GetUserList();
+ }
+
+
+ /**
+ * Function to check whether the given username already exists
+ *
+ * @param string $username
+ * @return boolean
+ */
+ public function isExistingUser($username) {
+ $parameters = new IsExistingUser();
+ $parameters->userName = $username;
+
+ return $this->serviceStub->isExistingUser($parameters)->return;
+ }
+
+ /**
+ * Function to get the list of all existing roles
+ *
+ * @return roles list
+ */
+ public function getRoleNames( $parameters = null){
+ $parameters = new GetRoleNames();
+ return $this->serviceStub->getRoleNames( $parameters)->return;
+ }
+
+ /**
+ * Function to get role of a user
+ *
+ * @return User Role
+ */
+ public function getRoleListOfUser( $username){
+ $parameters = new GetRoleListOfUser();
+ $parameters->userName = $username;
+ return $this->serviceStub->GetRoleListOfUser( $parameters)->return;
+ }
+
+ /**
+ * Function to get the user list of role
+ *
+ * @param GetUserListOfRole $parameters
+ * @return GetUserListOfRoleResponse
+ */
+ public function getUserListOfRole( $role){
+ $parameters = new GetUserListOfRole();
+ $paramerters->roleName = $role;
+ return $this->serviceStub->getUserListOfRole( $paramerters)->return;
+ }
+
+ /**
+ * Function to update role list of user
+ *
+ * @param UpdateRoleListOfUser $parameters
+ * @return void
+ */
+ public function updateRoleListOfUser( $username, $roles){
+ $parameters = new UpdateRoleListOfUser();
+ $parameters->userName = $username;
+ $parameters->deletedRoles = $roles["deleted"];
+ $parameters->newRoles = $roles["new"];
+ return $this->serviceStub->updateRoleListOfUser( $parameters);
+ }
+
+ /**
+ * Function to get the tenant id
+ *
+ * @param GetTenantId $parameters
+ * @return GetTenantIdResponse
+ */
+ public function getTenantId(){
+ $parameters = new GetTenantId();
+
+ return $this->serviceStub->getTenantId( $parameters);
+ }
+}