Repository: airavata-php-gateway Updated Branches: refs/heads/master 4308a8251 -> b70ad1326
Adding Gateway Monitoring capability for Super Admin 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/7527a6b2 Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/7527a6b2 Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/7527a6b2 Branch: refs/heads/master Commit: 7527a6b2173ed87b90603f832168aa44e7f7ba43 Parents: 71079c5 Author: nipunhere <[email protected]> Authored: Fri May 8 13:23:01 2015 -0400 Committer: nipunhere <[email protected]> Committed: Fri May 8 13:23:01 2015 -0400 ---------------------------------------------------------------------- app/controllers/AdminController.php | 21 ++++- app/controllers/ExperimentController.php | 1 + app/libraries/AdminUtilities.php | 12 +++ app/libraries/Utilities.php | 7 ++ app/routes.php | 10 ++- app/views/admin/manage-admin.blade.php | 2 +- app/views/admin/manage-gateway.blade.php | 81 ++++++++++++++------ app/views/partials/experiment-inputs.blade.php | 11 +-- .../partials/experiment-queue-block.blade.php | 26 ++++--- 9 files changed, 128 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/controllers/AdminController.php ---------------------------------------------------------------------- diff --git a/app/controllers/AdminController.php b/app/controllers/AdminController.php index c55718e..27a1d75 100644 --- a/app/controllers/AdminController.php +++ b/app/controllers/AdminController.php @@ -7,7 +7,7 @@ class AdminController extends BaseController { public function __construct() { $this->beforeFilter('verifyadmin'); - $idStore = new WSISUtilities(); + $idStore = new WSISUtilities(); try { $idStore->connect(); @@ -29,7 +29,7 @@ class AdminController extends BaseController { public function dashboard(){ //only for super admin - //Session::put("scigap_admin", true); + Session::put("scigap_admin", true); $idStore = $this->idStore; $crData = CRUtilities::getEditCRData(); @@ -124,4 +124,21 @@ class AdminController extends BaseController { return View::make("admin/manage-credentials", array("tokens" => array()) ); } + + + /* ---- Super Admin Functions ------- */ + + public function addGateway(){ + + $input = Input::all(); + + $idStore = $this->idStore; + + $tm = TenantManager::addTenant(1, $input["admin-username"], $input["admin-password"], $input["admin-email"], + $firstName, $lastName, $input["domain"]); + print_r( $tm); exit; + $gateway = AdminUtilities::addGateway(Input::all() ); + + + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/controllers/ExperimentController.php ---------------------------------------------------------------------- diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php index de79704..c630b7d 100755 --- a/app/controllers/ExperimentController.php +++ b/app/controllers/ExperimentController.php @@ -185,6 +185,7 @@ class ExperimentController extends BaseController { $project = Utilities::get_project($experiment->projectID); $expVal = Utilities::get_experiment_values( $experiment, $project); + //var_dump( $expVal); exit; $computeResources = Utilities::create_compute_resources_select($experiment->applicationId, $expVal['scheduling']->resourceHostId); $experimentInputs = array( http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/libraries/AdminUtilities.php ---------------------------------------------------------------------- diff --git a/app/libraries/AdminUtilities.php b/app/libraries/AdminUtilities.php new file mode 100644 index 0000000..b2bf9e1 --- /dev/null +++ b/app/libraries/AdminUtilities.php @@ -0,0 +1,12 @@ +<?php + +use Airavata\Model\Workspace\Gateway; + +public function addGateway( $input){ + $airavataClient = Session::get("airavataClient"); + $gateway = new Gateway(); + $gateway->domain = $input["domainName"]; + $gateway->gatewayName = $input["gatewayName"]; + $gateway->emailAddress = $input["admin-email"]; + return $airavataClient->addGateway( $gateway); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/libraries/Utilities.php ---------------------------------------------------------------------- diff --git a/app/libraries/Utilities.php b/app/libraries/Utilities.php index d9ac4a3..b3ccf64 100644 --- a/app/libraries/Utilities.php +++ b/app/libraries/Utilities.php @@ -760,7 +760,10 @@ public static function assemble_experiment() $userConfigData = new UserConfigurationData(); $userConfigData->computationalResourceScheduling = $scheduling; if( isset( $_POST["userDN"]) ) + { + $userConfigData->generateCert = 1; $userConfigData->userDN = $_POST["userDN"]; + } $applicationInputs = Utilities::get_application_inputs($_POST['application']); $experimentInputs = Utilities::process_inputs($applicationInputs, $experimentInputs); @@ -2023,7 +2026,11 @@ public static function apply_changes_to_experiment($experiment, $input) $userConfigDataUpdated->computationalResourceScheduling = $schedulingUpdated; if( isset( $input["userDN"]) ) + { + $userConfigDataUpdated->generateCert = 1; $userConfigDataUpdated->userDN = $input["userDN"]; + } + $experiment->userConfigurationData = $userConfigDataUpdated; http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/routes.php ---------------------------------------------------------------------- diff --git a/app/routes.php b/app/routes.php index ffcde73..cfc4526 100755 --- a/app/routes.php +++ b/app/routes.php @@ -171,11 +171,15 @@ Route::post("admin/adduser", "AdminController@addAdminSubmit"); Route::post("admin/addgatewayadmin", "AdminController@addGatewayAdminSubmit"); -Route::post("admin/addrole", "AdminController@addRole"); +Route::post("admin/add-role", "AdminController@addRole"); -Route::post("admin/checkroles", "AdminController@getRoles"); +Route::post("admin/check-roles", "AdminController@getRoles"); -Route::post("admin/deleterole", "AdminController@deleteRole"); +Route::post("admin/delete-role", "AdminController@deleteRole"); + +//Super Admin Specific calls + +Route::post("admin/add-gateway", "AdminController@addGateway"); //Airavata Server Check Route::get("airavata/down", function(){ http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/views/admin/manage-admin.blade.php ---------------------------------------------------------------------- diff --git a/app/views/admin/manage-admin.blade.php b/app/views/admin/manage-admin.blade.php index 35fbaee..05e317a 100644 --- a/app/views/admin/manage-admin.blade.php +++ b/app/views/admin/manage-admin.blade.php @@ -191,6 +191,6 @@ } else $("#role-form").submit(); - }) + }); </script> @stop \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/views/admin/manage-gateway.blade.php ---------------------------------------------------------------------- diff --git a/app/views/admin/manage-gateway.blade.php b/app/views/admin/manage-gateway.blade.php index f7261d1..7617466 100644 --- a/app/views/admin/manage-gateway.blade.php +++ b/app/views/admin/manage-gateway.blade.php @@ -120,30 +120,48 @@ @endforeach </div> @if( Session::has("scigap_admin")) - <div class="col-md-12"> - <button type="button" class="btn btn-default toggle-add-tenant"><span class="glyphicon glyphicon-plus"></span>Add a new gateway</button> - </div> - <div class="add-tenant col-md-6"> - <div class="form-group"> - <label>Enter Domain Name</label> - <input type="text" class="form-control"/> - </div> - <div class="form-group"> - <label>Enter Admin Username</label> - <input type="text" class="form-control"/> - </div> - <div class="form-group"> - <label>Enter Admin Password</label> - <input type="text" class="form-control"/> + <form type="POST" id="add-tenant-form"> + <div class="col-md-12"> + <button type="button" class="btn btn-default toggle-add-tenant"><span class="glyphicon glyphicon-plus"></span>Add a new gateway</button> </div> - <div class="form-group"> - <label>Re-enter Admin Password</label> - <input type="text" class="form-control"/> - </div> - <div class="form-group"> - <input type="submit" class="form-control btn btn-primary" value="Register" /> + <div class="add-tenant col-md-6"> + <div class="form-group required"> + <label class="control-label">Enter Domain Name</label> + <input type="url" name="gatewayName" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Desired Gateway Name</label> + <input type="text" name="gatewayName" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin Email Address</label> + <input type="text" name="admin-email" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin First Name</label> + <input type="text" name="admin-firstname" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin Last Name</label> + <input type="text" name="admin-username" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin Username</label> + <input type="text" name="admin-username" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Enter Admin Password</label> + <input type="password" name="admin-password" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <label class="control-label">Re-enter Admin Password</label> + <input type="password" name="admin-password-confirm" class="form-control" required="required"/> + </div> + <div class="form-group required"> + <input type="submit" class="form-control btn btn-primary" value="Register" /> + </div> </div> - </div> + </form> @endif </div> @@ -222,7 +240,26 @@ $(".add-tenant").slideUp(); $(".toggle-add-tenant").click( function(){ + $('html, body').animate({ + scrollTop: $(".toggle-add-tenant").offset().top + }, 500); $(".add-tenant").slideDown(); }); </script> + + @if( Session::has("scigap_admin")) + <script> + $(".add-tenant-form").submit( function( event){ + var formData = $(".add-tenant-form").serealize(); + $.ajax({ + type: "POST", + data: formData, + url: '"' + {{ URL::to('/') }} + '"' + '/admin/add-gateway', + success:function( data){ + console.log( data); + } + }); + }); + </script> + @endif @stop \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/views/partials/experiment-inputs.blade.php ---------------------------------------------------------------------- diff --git a/app/views/partials/experiment-inputs.blade.php b/app/views/partials/experiment-inputs.blade.php index fa07450..9f7fa94 100644 --- a/app/views/partials/experiment-inputs.blade.php +++ b/app/views/partials/experiment-inputs.blade.php @@ -40,10 +40,11 @@ @endif </div> - <div class="form-group"> - <label for="compute-resource">Compute Resource</label> + <div class="form-group required"> + <label class="control-label" for="compute-resource">Compute Resource</label> @if( count( $expInputs['computeResources']) > 0) - <select class="form-control" name="compute-resource" id="compute-resource"> + <select class="form-control" name="compute-resource" id="compute-resource" required="required"> + <option value="">Select a resource</option> @foreach ($expInputs['computeResources'] as $id => $name) <option value="{{$id}}" {{ ($expInputs['resourceHostId'] == $id)? ' selected' : '' }}>{{$name}}</option> @endforeach @@ -59,7 +60,7 @@ <input type="hidden" name="selected-queue" value="@if(isset($expInputs['expVal']) ){{ $expInputs['expVal']['scheduling']->queueName }} @endif"/> <div class="queue-view"> @if(isset($expInputs['expVal']) ) - @include( 'partials/experiment-queue-block', array('expVal' => $expVal) ) + @include( 'partials/experiment-queue-block', array('queues'=> $expInputs['expVal']['computeResource']->batchQueues, 'expVal' => $expInputs['expVal']) ) @endif </div> </div> @@ -67,7 +68,7 @@ <h3>Notifications</h3> <div class="form-group well"> <label for=""></label> - <input type="checkbox" id="enableEmail" name="enableEmailNotification" value="1">Do you want to receive email notifications for status changes in the experiment?<br/> + <input type="checkbox" id="enableEmail" name="enableEmailNotification" value="1"> Do you want to receive email notifications for status changes in the experiment?<br/> <div class="emailSection hide"> <h4>Enter Email Address here.</h4> <div class="emailAddresses"> http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7527a6b2/app/views/partials/experiment-queue-block.blade.php ---------------------------------------------------------------------- diff --git a/app/views/partials/experiment-queue-block.blade.php b/app/views/partials/experiment-queue-block.blade.php index 1edc1b8..a0453b0 100644 --- a/app/views/partials/experiment-queue-block.blade.php +++ b/app/views/partials/experiment-queue-block.blade.php @@ -1,9 +1,9 @@ <input type="hidden" id="queue-array" value="{{ htmlentities( json_encode( $queues ) ) }}"/> <div class="form-group required"> @if( count( $queues) > 0 ) - <label for="node-count">Select a Queue</label> + <label class="control-label" for="node-count">Select a Queue</label> <select name="queue-name" class="form-control" id="select-queue" @if(isset($expVal) ) @if(!$expVal['editable']){{ disabled }} @endif @endif required> - <option></option> + <option value=""></option> @foreach( $queues as $queue) <option value="{{$queue->queueName}}" @if(isset($expVal) ) @if( $expVal['scheduling']->queueName == $queue->queueName ) selected @endif @endif @@ -27,7 +27,7 @@ @if(isset($expVal) ) @if(!$expVal['editable']){{disabled}} @endif @endif> </div> <div class="form-group"> - <label for="cpu-count">Total Core Count <span>( Max Allowed Cores - <span class="core-count alert-warning"></span>)</span></label> + <label for="cpu-count">Total Core Count <span>( Max Allowed Cores - <span class="cpu-count alert-warning"></span>)</span></label> <input type="number" class="form-control" name="cpu-count" id="cpu-count" min="1" value="@if(isset($expVal) ){{ $expVal['scheduling']->totalCPUCount }}@else{{$queueDefaults['cpuCount']}}@endif" @if(isset($expVal)) @if(!$expVal['editable']){{disabled}} @endif @endif> @@ -55,6 +55,11 @@ <script> $("#select-queue").change( function(){ var selectedQueue = $(this).val(); + getQueueData( selectedQueue); +}); + +function getQueueData( selectedQueue) +{ var queues = $.parseJSON( $("#queue-array").val() ); console.log( queues); for( var i =0; i< queues.length; i++) @@ -62,7 +67,7 @@ $("#select-queue").change( function(){ if( queues[i]['queueName'] == selectedQueue) { //node-count - if( queues[i]['maxNodes'] != 0 || queues[i]['maxNodes'] != null ) + if( queues[i]['maxNodes'] != 0 && queues[i]['maxNodes'] != null ) { $("#node-count").attr("max", queues[i]['maxNodes']).val(1); $(".node-count").html( queues[i]['maxNodes']); @@ -73,7 +78,7 @@ $("#select-queue").change( function(){ //core-count - if( queues[i]['maxProcessors'] != 0 || queues[i]['maxProcessors'] != null ) + if( queues[i]['maxProcessors'] != 0 && queues[i]['maxProcessors'] != null ) { $("#cpu-count").attr("max", queues[i]['maxProcessors']).val(1); $(".cpu-count").html( queues[i]['maxProcessors']); @@ -83,17 +88,17 @@ $("#select-queue").change( function(){ $(".cpu-count").parent().addClass("hide"); //walltime-count - if( queues[i]['maxRunTime'] != 0 || queues[i]['maxRunTime'] != null ) + if( queues[i]['maxRunTime'] != 0 && queues[i]['maxRunTime'] != null ) { $("#wall-time").attr("max", queues[i]['maxRunTime']).val(0); - $(".wall-time").html( queues[i]['maxRunTime']); + $(".walltime-count").html( queues[i]['maxRunTime']); $(".walltime-count").parent().removeClass("hide"); } else - $(".core-count").parent().addClass("hide"); + $(".walltime-count").parent().addClass("hide"); //memory-count - if( queues[i]['maxMemory'] != 0 || queues[i]['maxMemory'] != null ) + if( queues[i]['maxMemory'] != 0 && queues[i]['maxMemory'] != null ) { $("#memory-count").attr("max", queues[i]['maxMemory']).val(0); $(".memory-count").html( queues[i]['maxMemory']); @@ -104,4 +109,5 @@ $("#select-queue").change( function(){ } } $(".queue-data").removeClass("hide"); -}); \ No newline at end of file +} +</script> \ No newline at end of file
