Fixes for Resource Job Manager object getting picked for every Job Submission Interface
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/f1d354f5 Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/f1d354f5 Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/f1d354f5 Branch: refs/heads/master Commit: f1d354f5842d2efacddcb105ed5b23fc78cbac3b Parents: 24345b7 Author: Nipurn Doshi <[email protected]> Authored: Tue Mar 22 11:56:32 2016 -0400 Committer: Nipurn Doshi <[email protected]> Committed: Tue Mar 22 11:56:32 2016 -0400 ---------------------------------------------------------------------- app/libraries/CRUtilities.php | 1 + .../partials/resource-job-manager.blade.php | 91 +- app/views/resource/edit.blade.php | 993 ++++++++++--------- public/js/script.js | 2 +- 4 files changed, 543 insertions(+), 544 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f1d354f5/app/libraries/CRUtilities.php ---------------------------------------------------------------------- diff --git a/app/libraries/CRUtilities.php b/app/libraries/CRUtilities.php index 2aa0fd6..2c2416d 100755 --- a/app/libraries/CRUtilities.php +++ b/app/libraries/CRUtilities.php @@ -264,6 +264,7 @@ class CRUtilities } else { $unicoreSub = Airavata::addUNICOREJobSubmissionDetails(Session::get('authz-token'), $computeResource->computeResourceId, 0, $unicoreJobSubmission); } + return; } 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."); } http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f1d354f5/app/views/partials/resource-job-manager.blade.php ---------------------------------------------------------------------- diff --git a/app/views/partials/resource-job-manager.blade.php b/app/views/partials/resource-job-manager.blade.php index 8780c24..81453a9 100644 --- a/app/views/partials/resource-job-manager.blade.php +++ b/app/views/partials/resource-job-manager.blade.php @@ -1,49 +1,46 @@ -@if( isset( $JSI) ) - @if( isset( $JSI->resourceJobManager)) - <div class="select-resource-manager-type"> - <div class="form-group required"> - <label class="control-label">Select resource manager type</label> - <select name="resourceJobManagerType" class="form-control selected-resource-manager" - required="required"> - @foreach( $resourceJobManagerTypes as $index => $rJmT) - <option value="{{ $index }}" - @if( isset( $JSI) ) - @if( $JSI->resourceJobManager->resourceJobManagerType == $index ) selected @endif - @endif > - {{ $rJmT }}</option> - @endforeach - </select> - </div> - <div class="form-group"> - <label class="control-label">Push Monitoring End Point</label> - <input type="text" class="form-control" name="pushMonitoringEndpoint" - @if( isset( $JSI) ) - value="{{ $JSI->resourceJobManager->pushMonitoringEndpoint }}"/> - @endif - </div> - <div class="form-group"> - <label class="control-label">Job Manager Bin Path</label> - <input type="text" class="form-control" name="jobManagerBinPath" - @if( isset( $JSI) ) - value="{{ $JSI->resourceJobManager->jobManagerBinPath }}"/> - @endif - </div> - <div class="form-group"> - <h3>Job Manager Commands</h3> - @foreach( $jobManagerCommands as $index => $jmc) - <label class="control-label">{{ $jmc }}</label> - <input class="form-control" name="jobManagerCommands[{{ $index }}]" placeholder="{{ $jmc }}" - value="@if( isset( $JSI->resourceJobManager->jobManagerCommands[$index] ) ){{$JSI->resourceJobManager->jobManagerCommands[$index]}}@endif"/> + +<div class="select-resource-manager-type"> + <div class="form-group required"> + <label class="control-label">Select resource manager type</label> + <select name="resourceJobManagerType" class="form-control selected-resource-manager" + required="required"> + @foreach( $resourceJobManagerTypes as $index => $rJmT) + <option value="{{ $index }}" + @if( isset( $JSInterface) ) + @if( $JSInterface->resourceJobManager->resourceJobManagerType == $index ) selected @endif + @endif > + {{ $rJmT }}</option> @endforeach - </div> - <div class="form-group"> - <h3>Parallelism Prefixes</h3> - @foreach( $parallelismTypes as $index => $pt) - <label class="control-label">{{ $pt }}</label> - <input class="form-control" name="parallelismPrefix[{{ $index }}]" placeholder="{{ $pt }}" - value="@if( isset( $JSI->resourceJobManager->parallelismPrefix[$index] ) ){{$JSI->resourceJobManager->parallelismPrefix[$index]}}@endif"/> - @endforeach - </div> + </select> + </div> + <div class="form-group"> + <label class="control-label">Push Monitoring End Point</label> + <input type="text" class="form-control" name="pushMonitoringEndpoint" + @if( isset( $JSInterface) ) + value="{{ $JSInterface->resourceJobManager->pushMonitoringEndpoint }}" + @endif /> + </div> + <div class="form-group"> + <label class="control-label">Job Manager Bin Path</label> + <input type="text" class="form-control" name="jobManagerBinPath" + @if( isset( $JSInterface) ) + value="{{ $JSInterface->resourceJobManager->jobManagerBinPath }}" + @endif /> + </div> + <div class="form-group"> + <h3>Job Manager Commands</h3> + @foreach( $jobManagerCommands as $index => $jmc) + <label class="control-label">{{ $jmc }}</label> + <input class="form-control" name="jobManagerCommands[{{ $index }}]" placeholder="{{ $jmc }}" + value="@if( isset( $JSInterface->resourceJobManager->jobManagerCommands[$index] ) ){{$JSInterface->resourceJobManager->jobManagerCommands[$index]}}@endif"/> + @endforeach + </div> + <div class="form-group"> + <h3>Parallelism Prefixes</h3> + @foreach( $parallelismTypes as $index => $pt) + <label class="control-label">{{ $pt }}</label> + <input class="form-control" name="parallelismPrefix[{{ $index }}]" placeholder="{{ $pt }}" + value="@if( isset( $JSInterface->resourceJobManager->parallelismPrefix[$index] ) ){{$JSInterface->resourceJobManager->parallelismPrefix[$index]}}@endif"/> + @endforeach </div> - @endif -@endif \ No newline at end of file +</div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f1d354f5/app/views/resource/edit.blade.php ---------------------------------------------------------------------- diff --git a/app/views/resource/edit.blade.php b/app/views/resource/edit.blade.php index dbc33fe..f55fddb 100644 --- a/app/views/resource/edit.blade.php +++ b/app/views/resource/edit.blade.php @@ -13,562 +13,562 @@ @include( 'partials/dashboard-block') <div id="page-wrapper"> -<div class="container-fluid"> -<div class="col-md-offset-1 col-md-10 compute-resource-properties"> - -<input type="hidden" class="base-url" value="{{URL::to('/')}}"/> - -<ol class="breadcrumb"> - <li><a href="{{URL::to('/')}}/cr/browse">Compute Resources</a></li> - <li class="active">{{ $computeResource->hostName }}</li> -</ol> -@if( Session::has("message")) -<span class="alert alert-success col-md-12">{{Session::get("message")}}</span> -{{Session::forget("message") }} -@endif + <div class="container-fluid"> + <div class="col-md-offset-1 col-md-10 compute-resource-properties"> + + <input type="hidden" class="base-url" value="{{URL::to('/')}}"/> + + <ol class="breadcrumb"> + <li><a href="{{URL::to('/')}}/cr/browse">Compute Resources</a></li> + <li class="active">{{ $computeResource->hostName }}</li> + </ol> + @if( Session::has("message")) + <span class="alert alert-success col-md-12">{{Session::get("message")}}</span> + {{Session::forget("message") }} + @endif -<div class="col-md-12"> - <ul class="nav nav-tabs nav-justified" id="tabs" role="tablist"> - <li class="active"><a href="#tab-desc" data-toggle="tab">Description</a></li> - <li><a href="#tab-queues" data-toggle="tab">Queues</a></a></li> - <li><a href="#tab-filesystem" data-toggle="tab">FileSystem</a></li> - <li><a href="#tab-jobSubmission" data-toggle="tab">Job Submission Interfaces</a></li> - <li><a href="#tab-dataMovement" data-toggle="tab">Data Movement Interfaces</a></li> - <li><a href="#tab-reporting" data-toggle="tab">Reporting</a></li> - </ul> -</div> + <div class="col-md-12"> + <ul class="nav nav-tabs nav-justified" id="tabs" role="tablist"> + <li class="active"><a href="#tab-desc" data-toggle="tab">Description</a></li> + <li><a href="#tab-queues" data-toggle="tab">Queues</a></li> + <li><a href="#tab-filesystem" data-toggle="tab">FileSystem</a></li> + <li><a href="#tab-jobSubmission" data-toggle="tab">Job Submission Interfaces</a></li> + <li><a href="#tab-dataMovement" data-toggle="tab">Data Movement Interfaces</a></li> + <li><a href="#tab-reporting" data-toggle="tab">Reporting</a></li> + </ul> + </div> -<div class="tab-content col-md-12"> + <div class="tab-content col-md-12"> -<div class="tab-pane active" id="tab-desc"> + <div class="tab-pane active" id="tab-desc"> - <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> - <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> - <input type="hidden" name="cr-edit" value="resDesc"/> + <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> + <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> + <input type="hidden" name="cr-edit" value="resDesc"/> - <div class="form-group required"> - <label class="control-label">Host Name</label> - <input class="form-control hostName" value="{{ $computeResource->hostName }}" maxlength="100" - name="hostname" required="required"/> - </div> - <div class="form-group"> - <label class="control-label">Host Aliases</label> - @if( count( $computeResource->hostAliases) ) - @foreach( $computeResource->hostAliases as $hostAlias ) - <input class="form-control" value="{{$hostAlias}}" maxlength="30" name="hostaliases[]"/> - @endforeach - @else - <input class="form-control" value="" maxlength="30" name="hostaliases[]"/> - @endif - <button type="button" class="btn btn-sm btn-default add-alias">Add Aliases</button> - </div> - <div class="form-group"> - <label class="control-label">IP Addresses</label> - @if( count( $computeResource->ipAddresses)) - @foreach( $computeResource->ipAddresses as $ip ) - <input class="form-control" value="{{ $ip }}" maxlength="30" name="ips[]"/> - @endforeach - @else - <input class="form-control" value="" maxlength="30" name="ips[]"/> - @endif - <button type="button" class="btn btn-sm btn-default add-ip">Add IP Addresses</button> - </div> - <div class="form-group"> - <label class="control-label">Resource Description</label> - <textarea class="form-control" maxlength="255" name="description">{{ $computeResource->resourceDescription - }}</textarea> - </div> - <div class="form-group"> - <label class="control-label">Maximum Memory Per Node ( In MB )</label> - <input type="number" min="0" class="form-control" value="{{ $computeResource->maxMemoryPerNode }}" - maxlength="30" name="maxMemoryPerNode"/> - </div> - <div class="form-group"> - <input type="submit" class="btn btn-primary" name="step1" value="Save changes"/> - </div> + <div class="form-group required"> + <label class="control-label">Host Name</label> + <input class="form-control hostName" value="{{ $computeResource->hostName }}" maxlength="100" + name="hostname" required="required"/> + </div> + <div class="form-group"> + <label class="control-label">Host Aliases</label> + @if( count( $computeResource->hostAliases) ) + @foreach( $computeResource->hostAliases as $hostAlias ) + <input class="form-control" value="{{$hostAlias}}" maxlength="30" name="hostaliases[]"/> + @endforeach + @else + <input class="form-control" value="" maxlength="30" name="hostaliases[]"/> + @endif + <button type="button" class="btn btn-sm btn-default add-alias">Add Aliases</button> + </div> + <div class="form-group"> + <label class="control-label">IP Addresses</label> + @if( count( $computeResource->ipAddresses)) + @foreach( $computeResource->ipAddresses as $ip ) + <input class="form-control" value="{{ $ip }}" maxlength="30" name="ips[]"/> + @endforeach + @else + <input class="form-control" value="" maxlength="30" name="ips[]"/> + @endif + <button type="button" class="btn btn-sm btn-default add-ip">Add IP Addresses</button> + </div> + <div class="form-group"> + <label class="control-label">Resource Description</label> + <textarea class="form-control" maxlength="255" name="description">{{ $computeResource->resourceDescription + }}</textarea> + </div> + <div class="form-group"> + <label class="control-label">Maximum Memory Per Node ( In MB )</label> + <input type="number" min="0" class="form-control" value="{{ $computeResource->maxMemoryPerNode }}" + maxlength="30" name="maxMemoryPerNode"/> + </div> + <div class="form-group"> + <input type="submit" class="btn btn-primary" name="step1" value="Save changes"/> + </div> - </form> + </form> -</div> + </div> -<div class="tab-pane" id="tab-queues"> + <div class="tab-pane" id="tab-queues"> - @if( is_array( $computeResource->batchQueues) ) - <h3>Existing Queues :</h3> + @if( is_array( $computeResource->batchQueues) ) + <h3>Existing Queues :</h3> - <div class="panel-group" id="accordion"> - @foreach( $computeResource->batchQueues as $index => $queue) - <div class="panel panel-default"> - <div class="panel-heading"> - <h4 class="panel-title"> - <a class="accordion-toggle collapsed existing-queue-name" data-toggle="collapse" - data-parent="#accordion" href="#collapse-{{$index}}">{{ $queue->queueName }}</a> + <div class="panel-group" id="accordion"> + @foreach( $computeResource->batchQueues as $index => $queue) + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"> + <a class="accordion-toggle collapsed existing-queue-name" data-toggle="collapse" + data-parent="#accordion" href="#collapse-{{$index}}">{{ $queue->queueName }}</a> - <div class="pull-right col-md-1"> - <span class="glyphicon glyphicon-trash delete-queue" style="cursor:pointer;" data-toggle="modal" - data-target="#delete-queue" data-queue-name="{{ $queue->queueName }}"></span> + <div class="pull-right col-md-1"> + <span class="glyphicon glyphicon-trash delete-queue" style="cursor:pointer;" data-toggle="modal" + data-target="#delete-queue" data-queue-name="{{ $queue->queueName }}"></span> + </div> + </h4> + </div> + <div id="collapse-{{$index}}" class="panel-collapse collapse"> + <div class="panel-body"> + <form role="form" method="POST" action="{{ URL::to('/')}}/cr/edit"> + <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> + + <div class="queue"> + <input type="hidden" name="cr-edit" value="queue"/> + + <div class="form-group required"> + <label class="control-label">Queue Name + <small> ( cannot be changed.)</small> + </label> + <input class="form-control" value="{{ $queue->queueName }}" maxlength="30" name="qname" + placeholder="Queue Name" readonly/> + </div> + @include('partials/queue-block', array('queueData'=>$queue)) + <div class="form-group"> + <input type="submit" min="0" class="btn" name="step1" value="Update"/> + </div> + </div> + </form> + </div> + </div> + </div> + @endforeach + </div> + @endif + <div class="queue-block hide"> + <form role="form" method="POST" action="{{ URL::to('/')}}/cr/edit"> + <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> + + <div class="queue"> + <div class="queue"> + <input type="hidden" name="cr-edit" value="queue"/> + + <div class="form-group required"> + <label class="control-label">Queue Name + <small> ( A queue name is unique and cannot be changed later.)</small> + </label> + <input class="form-control create-queue-name" maxlength="30" name="qname" + placeholder="Queue Name" required="required"/> + </div> + @include('partials/queue-block') + + </div> + <div class="form-group"> + <input type="button" class="btn create-queue-form btn-primary" name="step1" value="Create"/> + <input type="reset" class="btn btn-success" value="Reset"/> + </div> + </div> + </form> + </div> + <div class="form-group well add-queue-block"> + <button type="button" class="btn btn-sm btn-default add-queue">Add a Queue</button> </div> - </h4> - </div> - <div id="collapse-{{$index}}" class="panel-collapse collapse"> - <div class="panel-body"> - <form role="form" method="POST" action="{{ URL::to('/')}}/cr/edit"> - <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> - <div class="queue"> - <input type="hidden" name="cr-edit" value="queue"/> + </div> - <div class="form-group required"> - <label class="control-label">Queue Name - <small> ( cannot be changed.)</small> - </label> - <input class="form-control" value="{{ $queue->queueName }}" maxlength="30" name="qname" - placeholder="Queue Name" readonly/> - </div> - @include('partials/queue-block', array('queueData'=>$queue)) - <div class="form-group"> - <input type="submit" min="0" class="btn" name="step1" value="Update"/> - </div> + <div class="tab-pane" id="tab-filesystem"> + + <form role="form" method="POST" action="{{URL::to('/')}}/cr/edit"> + <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> + <input type="hidden" name="cr-edit" value="fileSystems"/> + + <div class="form-group"> + <h3>FileSystem</h3> + @foreach( $fileSystems as $index => $fileSystem) + <label class="control-label">{{ $fileSystem }}</label> + <input class="form-control" name="fileSystems[{{ $index }}]" placeholder="{{ $fileSystem }}" + value="@if( isset( $computeResource->fileSystems[ $index]) ){{ $computeResource->fileSystems[ $index] }} @endif"/> + @endforeach + </div> + <div class="form-group"> + <button class="btn btn-prim">Update</button> </div> </form> + </div> - </div> - </div> - @endforeach - </div> - @endif - <div class="queue-block hide"> - <form role="form" method="POST" action="{{ URL::to('/')}}/cr/edit"> - <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> - <div class="queue"> - <div class="queue"> - <input type="hidden" name="cr-edit" value="queue"/> + <div class="tab-pane" id="tab-jobSubmission"> - <div class="form-group required"> - <label class="control-label">Queue Name - <small> ( A queue name is unique and cannot be changed later.)</small> - </label> - <input class="form-control create-queue-name" maxlength="30" name="qname" - placeholder="Queue Name" required="required"/> + <div class="form-group"> + <div class="job-submission-info row hide"></div> + <button type="button" class="btn btn-sm btn-default add-job-submission">Add a new Job Submission Interface + </button> + @if( count( $jobSubmissionInterfaces ) > 1) + <button type="button" class="btn btn-sm btn-default update-priority" data-type="jsi" data-toggle="modal" + data-target="#update-jsi-priority">Update Priority + </button> + @endif </div> - @include('partials/queue-block') - </div> - <div class="form-group"> - <input type="button" class="btn create-queue-form btn-primary" name="step1" value="Create"/> - <input type="reset" class="btn btn-success" value="Reset"/> - </div> - </div> - </form> - </div> - <div class="form-group well add-queue-block"> - <button type="button" class="btn btn-sm btn-default add-queue">Add a Queue</button> - </div> + @if( count( $jobSubmissionInterfaces ) > 0) + <div class="job-edit-info"> + @foreach( $jobSubmissionInterfaces as $index => $JSI ) + <div class="job-protocol-block"> + <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> + <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> + <input type="hidden" name="cr-edit" value="edit-jsp"/> + <input type="hidden" name="jsiId" value="{{ $JSI->jobSubmissionInterfaceId }}"/> + <?php $selectedJspIndex = $computeResource->jobSubmissionInterfaces[$index]->jobSubmissionProtocol; ?> + + <h4>Job Submission Protocol : {{ $jobSubmissionProtocols[ $selectedJspIndex] }} + <button type='button' class='close delete-jsi' data-toggle="modal" data-target="#confirm-delete-jsi" + data-jsi-id="{{ $JSI->jobSubmissionInterfaceId }}"> + <span class="glyphicon glyphicon-trash delete-jsi" data-toggle="modal" + data-target="#confirm-delete-jsi" + data-jsi-id="{{ $JSI->jobSubmissionInterfaceId }}"></span> + </button> + </h4> + <input type="hidden" name="jobSubmissionProtocol" value="{{ $selectedJspIndex }}"/> + @if( $selectedJspIndex == $jobSubmissionProtocolsObject::LOCAL) + @include( 'partials/resource-job-manager', array( + "resourceJobManagerTypes" => $resourceJobManagerTypes, + "JSInterface" => $JSI, + "jobManagerCommands" => $jobManagerCommands, + "parallelismTypes" => $parallelismTypes + ) + ) + @elseif( $selectedJspIndex == $jobSubmissionProtocolsObject::SSH || $selectedJspIndex == $jobSubmissionProtocolsObject::SSH_FORK) + <div class="form-group required"> + <label class="control-label">Select Security Protocol</label> + <select name="securityProtocol" required="required"> + @foreach( $securityProtocols as $index => $sp) + <option value="{{ $index }}" + @if( $JSI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> + @endforeach + </select> + </div> + + <div class="form-group"> + <label class="control-label">Alternate SSH Host Name</label> + <input class='form-control' name='alternativeSSHHostName' + value="{{ $JSI->alternativeSSHHostName}}"/> + </div> + <div class="form-group"> + <label class="control-label">SSH Port</label> + <input class='form-control' name='sshPort' value="{{ $JSI->sshPort }}"/> + </div> + + <div class="form-group required"> + <label class="control-label">Select Monitoring Mode</label> + <select name="monitorMode" required> + @foreach( $monitorModes as $index => $mode) + <option value="{{ $index }}" + @if( $JSI->monitorMode == $index ) selected @endif>{{ $mode}}</option> + @endforeach + </select> + </div> + + <div class="form-group"> + @include( 'partials/resource-job-manager', array( + "resourceJobManagerTypes" => $resourceJobManagerTypes, + "JSInterface" => $JSI, + "jobManagerCommands" => $jobManagerCommands, + "parallelismTypes" => $parallelismTypes + ) + ) + + </div> + + @elseif( $selectedJspIndex == $jobSubmissionProtocolsObject::UNICORE) + <div class="form-group required"> + <label class="control-label">Select Security Protocol</label> + <select name="securityProtocol" required="required"> + @foreach( $securityProtocols as $index => $sp) + <option value="{{ $index }}" + @if( $JSI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> + @endforeach + </select> + </div> + <div class="form-group"> + <label class="form-label">Unicore End Point URL</label> + <input class='form-control' name='unicoreEndPointURL' value="{{ $JSI->unicoreEndPointURL }}"/> + </div> + @endif + + <div class="form-group"> + <button type="submit" class="btn">Update</button> + </div> + </form> -</div> + </div> + @endforeach + </div> + @endif -<div class="tab-pane" id="tab-filesystem"> + <div class="select-job-protocol hide"> + <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> + <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> + <input type="hidden" name="cr-edit" value="jsp"/> - <form role="form" method="POST" action="{{URL::to('/')}}/cr/edit"> - <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> - <input type="hidden" name="cr-edit" value="fileSystems"/> + <div class="form-group"> + <label class="control-label">Job Submission Protocol:</label> + <select name="jobSubmissionProtocol" class="form-control selected-job-protocol" required="required"> + <option></option> + @foreach( $jobSubmissionProtocols as $index => $jobSubmissionProtocol) + @if( ! in_array( $index, $addedJSP)) + <option value="{{ $index }}">{{ $jobSubmissionProtocol }}</option> + @endif + @endforeach + </select> + </div> - <div class="form-group"> - <h3>FileSystem</h3> - @foreach( $fileSystems as $index => $fileSystem) - <label class="control-label">{{ $fileSystem }}</label> - <input class="form-control" name="fileSystems[{{ $index }}]" placeholder="{{ $fileSystem }}" - value="@if( isset( $computeResource->fileSystems[ $index]) ){{ $computeResource->fileSystems[ $index] }} @endif"/> - @endforeach - </select> - </div> - <div class="form-group"> - <button class="btn btn-prim">Update</button> - </div> - </form> + <div class="form-group"> + <button type="submit" class="btn btn-primary jspSubmit hide">Add Job Submission Protocol</button> + </div> + </form> + </div> -</div> + </div> -<div class="tab-pane" id="tab-jobSubmission"> - - <div class="form-group"> - <div class="job-submission-info row hide"></div> - <button type="button" class="btn btn-sm btn-default add-job-submission">Add a new Job Submission Interface - </button> - @if( count( $jobSubmissionInterfaces ) > 1) - <button type="button" class="btn btn-sm btn-default update-priority" data-type="jsi" data-toggle="modal" - data-target="#update-jsi-priority">Update Priority - </button> - @endif - </div> + <div class="tab-pane" id="tab-dataMovement"> - @if( count( $jobSubmissionInterfaces ) > 0) - <div class="job-edit-info"> - @foreach( $jobSubmissionInterfaces as $index => $JSI ) - <div class="job-protocol-block"> - <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> - <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> - <input type="hidden" name="cr-edit" value="edit-jsp"/> - <input type="hidden" name="jsiId" value="{{ $JSI->jobSubmissionInterfaceId }}"/> - <?php $selectedJspIndex = $computeResource->jobSubmissionInterfaces[$index]->jobSubmissionProtocol; ?> - - <h4>Job Submission Protocol : {{ $jobSubmissionProtocols[ $selectedJspIndex] }} - <button type='button' class='close delete-jsi' data-toggle="modal" data-target="#confirm-delete-jsi" - data-jsi-id="{{ $JSI->jobSubmissionInterfaceId }}"> - <span class="glyphicon glyphicon-trash delete-jsi" data-toggle="modal" - data-target="#confirm-delete-jsi" - data-jsi-id="{{ $JSI->jobSubmissionInterfaceId }}"></span> - </button> - </h4> - <input type="hidden" name="jobSubmissionProtocol" value="{{ $selectedJspIndex }}"/> - @if( $selectedJspIndex == $jobSubmissionProtocolsObject::LOCAL) - @include( 'partials/resource-job-manager', array( - "resourceJobManagerTypes" => $resourceJobManagerTypes, - "JSI" => $JSI, - "jobManagerCommands" => $jobManagerCommands, - "parallelismTypes" => $parallelismTypes - ) - ) - @elseif( $selectedJspIndex == $jobSubmissionProtocolsObject::SSH || $selectedJspIndex == $jobSubmissionProtocolsObject::SSH_FORK) - <div class="form-group required"> - <label class="control-label">Select Security Protocol</label> - <select name="securityProtocol" required="required"> - @foreach( $securityProtocols as $index => $sp) - <option value="{{ $index }}" - @if( $JSI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> + <div class="form-group"> + <div class="data-movement-info row hide"></div> + <button type="button" class="btn btn-sm btn-default add-data-movement">Add a new Data Movement Interface + </button> + @if( count( $dataMovementInterfaces ) > 1) + <button type="button" class="btn btn-sm btn-default update-priority" data-type="dmi" data-toggle="modal" + data-target="#update-dmi-priority">Update Priority + </button> + @endif + </div> + + @if( count( $dataMovementInterfaces ) ) + <div class="job-edit-info"> + @foreach( $dataMovementInterfaces as $index => $DMI ) + <div class="data-movement-block"> + <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> + <input type="hidden" name="crId" class="crId" value="{{Input::get('crId') }}"/> + <input type="hidden" name="cr-edit" value="edit-dmi"/> + <input type="hidden" name="dmiId" value="{{ $DMI->dataMovementInterfaceId }}"/> + + <?php $selectedDMIIndex = $computeResource->dataMovementInterfaces[$index]->dataMovementProtocol; ?> + + <h4>Data Movement Protocol : {{ $dataMovementProtocols[ $selectedDMIIndex] }} + <button type='button' class='close delete-dmi' data-toggle="modal" data-target="#confirm-delete-dmi" + data-dmi-id="{{ $DMI->dataMovementInterfaceId }}"> + <span class="glyphicon glyphicon-trash delete-dmi" data-toggle="modal" + data-target="#confirm-delete-dmi" + data-dmi-id="{{ $DMI->dataMovementInterfaceId }}"></span> + </button> + </h4> + <input type="hidden" name="dataMovementProtocol" value="{{ $selectedDMIIndex }}"/> + @if( $selectedDMIIndex == $dataMovementProtocolsObject::LOCAL) + <!-- Nothing here on local UI --> + @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::SCP) + <div class="form-group"> + <label class="control-label">Select Security Protocol</label> + <select name="securityProtocol"> + @foreach( $securityProtocols as $index => $sp) + <option value="{{ $index }}" + @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> + @endforeach + </select> + </div> + + <div class="form-group"> + <label class="control-label">Alternate SSH Host Name</label> + <input class='form-control' name='alternativeSSHHostName' + value="{{ $DMI->alternativeSCPHostName }}"/> + </div> + <div class="form-group"> + <label class="control-label">SSH Port</label> + <input class='form-control' name='sshPort' value="{{ $DMI->sshPort }}"/> + </div> + <div class="form-group"> + <button type="submit" class="btn">Update</button> + </div> + @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::GridFTP) + <div class="form-group"> + <label class="control-label">Select Security Protocol</label> + <select name="securityProtocol"> + @foreach( $securityProtocols as $index => $sp) + <option value="{{ $index }}" + @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> + @endforeach + </select> + </div> + + <div> + <div class="form-group required"> + <label class="control-label">Grid FTP End Points</label> + @foreach( $DMI->gridFTPEndPoints as $endPoint) + <input class="form-control" maxlength="30" name="gridFTPEndPoints[]" required="required" + value="{{$endPoint}}"/> + @endforeach + <button type="button" class="btn btn-sm btn-default add-gridFTPEndPoint">Add More Grid FTP + End Points + </button> + </div> + </div> + <div class="form-group"> + <button type="submit" class="btn">Update</button> + </div> + @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::UNICORE_STORAGE_SERVICE) + <div class="form-group"> + <label class="control-label">Select Security Protocol</label> + <select name="securityProtocol"> + @foreach( $securityProtocols as $index => $sp) + <option value="{{ $index }}" + @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> + @endforeach + </select> + </div> + + <div> + <div class="form-group required"> + <label class="control-label">Unicore End Point URL</label> + <input class="form-control" maxlength="30" name="unicoreEndPointURL" required="required" + value="{{ $DMI->unicoreEndPointURL }}"/> + </div> + </div> + <div class="form-group"> + <button type="submit" class="btn">Update</button> + </div> + @endif + </form> + </div> @endforeach - </select> - </div> + </div> + @endif + <div class="select-data-movement hide"> + + <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> + <input type="hidden" name="crId" class="crId" value="{{Input::get('crId') }}"/> + <input type="hidden" name="cr-edit" value="dmp"/> + <h4> + Select the Data Movement Protocol + </h4> + + <select name="dataMovementProtocol" class="form-control selected-data-movement-protocol"> + <option></option> + @foreach( $dataMovementProtocols as $index => $dmp) + //GridFTP and SFTP not supported in Airavata backend. Therefore commenting out from UI + @if( ! in_array( $index, $addedDMI) && $dmp!="GridFTP" && $dmp!="SFTP") + <option value="{{ $index }}">{{ $dmp }}</option> + @endif + @endforeach + </select> - <div class="form-group"> - <label class="control-label">Alternate SSH Host Name</label> - <input class='form-control' name='alternativeSSHHostName' - value="{{ $JSI->alternativeSSHHostName}}"/> - </div> - <div class="form-group"> - <label class="control-label">SSH Port</label> - <input class='form-control' name='sshPort' value="{{ $JSI->sshPort }}"/> - </div> + <div class="form-group"> + <button type="submit" class="btn btn-primary dmpSubmit hide">Add Data Movement Protocol</button> + </div> - <div class="form-group required"> - <label class="control-label">Select Monitoring Mode</label> - <select name="monitorMode" required> - @foreach( $monitorModes as $index => $mode) - <option value="{{ $index }}" - @if( $JSI->monitorMode == $index ) selected @endif>{{ $mode}}</option> - @endforeach - </select> - </div> + </form> - <div class="form-group"> - @include( 'partials/resource-job-manager', array( - "resourceJobManagerTypes" => $resourceJobManagerTypes, - "JSI" => $JSI, - "jobManagerCommands" => $jobManagerCommands, - "parallelismTypes" => $parallelismTypes - ) - ) - - </div> + </div> - @elseif( $selectedJspIndex == $jobSubmissionProtocolsObject::UNICORE) - <div class="form-group required"> - <label class="control-label">Select Security Protocol</label> - <select name="securityProtocol" required="required"> - @foreach( $securityProtocols as $index => $sp) - <option value="{{ $index }}" - @if( $JSI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> - @endforeach - </select> - </div> - <div class="form-group"> - <label class="form-label">Unicore End Point URL</label> - <input class='form-control' name='unicoreEndPointURL' value="{{ $JSI->unicoreEndPointURL }}"/> </div> - @endif - <div class="form-group"> - <button type="submit" class="btn">Update</button> - </div> - </form> - </div> - @endforeach - </div> - @endif - <div class="select-job-protocol hide"> - <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> - <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> - <input type="hidden" name="cr-edit" value="jsp"/> - - <div class="form-group"> - <label class="control-label">Job Submission Protocol:</label> - <select name="jobSubmissionProtocol" class="form-control selected-job-protocol" required="required"> - <option></option> - @foreach( $jobSubmissionProtocols as $index => $jobSubmissionProtocol) - @if( ! in_array( $index, $addedJSP)) - <option value="{{ $index }}">{{ $jobSubmissionProtocol }}</option> - @endif - @endforeach - </select> - </div> + <div class="tab-pane" id="tab-reporting"> + + <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> + <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> + <input type="hidden" name="cr-edit" value="enableReporting"/> + + <div class="form-group required"> + <div class="checkbox"> + <input type="checkbox" name="gatewayUsageReporting" class="enable-gateway-check" @if( $computeResource->gatewayUsageReporting == true) checked value="1" @else value="0" @endif> + <label class="control-label">Enable Gateway Usage Reporting</label> + </div> + + </div> + + <div class="gateway-commands"> + <div class="form-group required"> + <label class="control-label">Gateway Module Load Command</label> + <input class="form-control hostName" name="gatewayUsageModuleLoadCommand" value="{{ $computeResource->gatewayUsageModuleLoadCommand }}" maxlength="100" + name="hostname" required="required" @if( $computeResource->gatewayUsageReporting != true) disabled @endif/> + </div> + <div class="form-group required"> + <label class="control-label">Gateway Usage Executable</label> + <input class="form-control hostName" name="gatewayUsageExecutable" value="{{ $computeResource->gatewayUsageExecutable }}" maxlength="100" + name="hostname" required="required" @if( $computeResource->gatewayUsageReporting != true) disabled @endif/> + </div> + </div> + <div class="form-group"> + <input type="submit" class="btn btn-primary" value="Save changes"/> + </div> + + </form> + + </div> + - <div class="form-group"> - <button type="submit" class="btn btn-primary jspSubmit hide">Add Job Submission Protocol</button> </div> - </form> - </div> -</div> -<div class="tab-pane" id="tab-dataMovement"> - - <div class="form-group"> - <div class="data-movement-info row hide"></div> - <button type="button" class="btn btn-sm btn-default add-data-movement">Add a new Data Movement Interface - </button> - @if( count( $dataMovementInterfaces ) > 1) - <button type="button" class="btn btn-sm btn-default update-priority" data-type="dmi" data-toggle="modal" - data-target="#update-dmi-priority">Update Priority - </button> - @endif - </div> + <div class="resource-manager-block hide"> + @include( 'partials/resource-job-manager', array( + "resourceJobManagerTypes" => $resourceJobManagerTypes, + "jobManagerCommands" => $jobManagerCommands, + "parallelismTypes" => $parallelismTypes + ) + ) + </div> - @if( count( $dataMovementInterfaces ) ) - <div class="job-edit-info"> - @foreach( $dataMovementInterfaces as $index => $DMI ) - <div class="data-movement-block"> - <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> - <input type="hidden" name="crId" class="crId" value="{{Input::get('crId') }}"/> - <input type="hidden" name="cr-edit" value="edit-dmi"/> - <input type="hidden" name="dmiId" value="{{ $DMI->dataMovementInterfaceId }}"/> - - <?php $selectedDMIIndex = $computeResource->dataMovementInterfaces[$index]->dataMovementProtocol; ?> - - <h4>Data Movement Protocol : {{ $dataMovementProtocols[ $selectedDMIIndex] }} - <button type='button' class='close delete-dmi' data-toggle="modal" data-target="#confirm-delete-dmi" - data-dmi-id="{{ $DMI->dataMovementInterfaceId }}"> - <span class="glyphicon glyphicon-trash delete-dmi" data-toggle="modal" - data-target="#confirm-delete-dmi" - data-dmi-id="{{ $DMI->dataMovementInterfaceId }}"></span> - </button> - </h4> - <input type="hidden" name="dataMovementProtocol" value="{{ $selectedDMIIndex }}"/> - @if( $selectedDMIIndex == $dataMovementProtocolsObject::LOCAL) - <!-- Nothing here on local UI --> - @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::SCP) - <div class="form-group"> - <label class="control-label">Select Security Protocol</label> - <select name="securityProtocol"> + <div class="ssh-block hide"> + <div class="form-group required"> + <label class="control-label">Select Security Protocol </label> + <select name="securityProtocol" required> @foreach( $securityProtocols as $index => $sp) - <option value="{{ $index }}" - @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> + <option value="{{ $index }}">{{ $sp }}</option> @endforeach </select> </div> - <div class="form-group"> + <!-- <div class="form-group required">--> + <!-- <label class="control-label">Select Monitoring Mode </label>--> + <!-- <select name="monitorMode" required>--> + <!-- @foreach( $monitorModes as $index => $mode)--> + <!-- <option value="{{ $index }}">{{ $mode}}</option>--> + <!-- @endforeach--> + <!-- </select>--> + <!-- </div>--> + + <div class="form-group addedScpValue hide"> <label class="control-label">Alternate SSH Host Name</label> - <input class='form-control' name='alternativeSSHHostName' - value="{{ $DMI->alternativeSCPHostName }}"/> + <input class='form-control' name='alternativeSSHHostName'/> </div> - <div class="form-group"> + <div class="form-group addedScpValue hide"> <label class="control-label">SSH Port</label> - <input class='form-control' name='sshPort' value="{{ $DMI->sshPort }}"/> + <input class='form-control' name='sshPort'/> </div> + </div> + + <div class="cloud-block hide"> <div class="form-group"> - <button type="submit" class="btn">Update</button> + <label class="control-label">Node Id</label> + <input class="form-control" name="nodeId" placeholder="nodId"/> </div> - @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::GridFTP) <div class="form-group"> - <label class="control-label">Select Security Protocol</label> - <select name="securityProtocol"> - @foreach( $securityProtocols as $index => $sp) - <option value="{{ $index }}" - @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> - @endforeach - </select> - </div> - - <div> - <div class="form-group required"> - <label class="control-label">Grid FTP End Points</label> - @foreach( $DMI->gridFTPEndPoints as $endPoint) - <input class="form-control" maxlength="30" name="gridFTPEndPoints[]" required="required" - value="{{$endPoint}}"/> - @endforeach - <button type="button" class="btn btn-sm btn-default add-gridFTPEndPoint">Add More Grid FTP - End Points - </button> - </div> + <label class="control-label">Node Id</label> + <input class="form-control" name="nodeId" placeholder="nodId"/> </div> <div class="form-group"> - <button type="submit" class="btn">Update</button> + <label class="control-label">Executable Type</label> + <input class="form-control" name="nodeId" placeholder="executableType"/> </div> - @elseif( $selectedDMIIndex == $dataMovementProtocolsObject::UNICORE_STORAGE_SERVICE) <div class="form-group"> - <label class="control-label">Select Security Protocol</label> - <select name="securityProtocol"> - @foreach( $securityProtocols as $index => $sp) - <option value="{{ $index }}" - @if( $DMI->securityProtocol == $index ) selected @endif>{{ $sp }}</option> - @endforeach + <label class="control-label">Select Provider Name</label> + <select class="form-control"> + <option name="EC2">EC2</option> + <option name="AWSEC2">AWEC2</option> + <option name="RACKSPACE">RACKSPACE</option> </select> </div> - - <div> - <div class="form-group required"> - <label class="control-label">Unicore End Point URL</label> - <input class="form-control" maxlength="30" name="unicoreEndPointURL" required="required" - value="{{ $DMI->unicoreEndPointURL }}"/> - </div> - </div> - <div class="form-group"> - <button type="submit" class="btn">Update</button> - </div> - @endif - </form> - </div> - @endforeach - </div> - @endif - <div class="select-data-movement hide"> - - <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> - <input type="hidden" name="crId" class="crId" value="{{Input::get('crId') }}"/> - <input type="hidden" name="cr-edit" value="dmp"/> - <h4> - Select the Data Movement Protocol - </h4> - - <select name="dataMovementProtocol" class="form-control selected-data-movement-protocol"> - <option></option> - @foreach( $dataMovementProtocols as $index => $dmp) - //GridFTP and SFTP not supported in Airavata backend. Therefore commenting out from UI - @if( ! in_array( $index, $addedDMI) && $dmp!="GridFTP" && $dmp!="SFTP") - <option value="{{ $index }}">{{ $dmp }}</option> - @endif - @endforeach - </select> - - <div class="form-group"> - <button type="submit" class="btn btn-primary dmpSubmit hide">Add Data Movement Protocol</button> </div> - </form> - - </div> - -</div> - - -<div class="tab-pane" id="tab-reporting"> - - <form role="form" method="POST" action="{{ URL::to('/') }}/cr/edit"> - <input type="hidden" name="crId" value="{{Input::get('crId') }}"/> - <input type="hidden" name="cr-edit" value="enableReporting"/> - - <div class="form-group required"> - <div class="checkbox"> - <input type="checkbox" name="gatewayUsageReporting" class="enable-gateway-check" @if( $computeResource->gatewayUsageReporting == true) checked value="1" @else value="0" @endif> - <label class="control-label">Enable Gateway Usage Reporting</label> - </div> - - </div> - - <div class="gateway-commands"> - <div class="form-group required"> - <label class="control-label">Gateway Module Load Command</label> - <input class="form-control hostName" name="gatewayUsageModuleLoadCommand" value="{{ $computeResource->gatewayUsageModuleLoadCommand }}" maxlength="100" - name="hostname" required="required" @if( $computeResource->gatewayUsageReporting != true) disabled @endif/> - </div> - <div class="form-group required"> - <label class="control-label">Gateway Usage Executable</label> - <input class="form-control hostName" name="gatewayUsageExecutable" value="{{ $computeResource->gatewayUsageExecutable }}" maxlength="100" - name="hostname" required="required" @if( $computeResource->gatewayUsageReporting != true) disabled @endif/> + <div class="dm-gridftp hide"> + <div class="form-group required"> + <label class="control-label">Grid FTP End Points</label> + <input class="form-control" maxlength="30" name="gridFTPEndPoints[]" required/> + <button type="button" class="btn btn-sm btn-default add-gridFTPEndPoint">Add More Grid FTP End Points</button> + </div> </div> - </div> - <div class="form-group"> - <input type="submit" class="btn btn-primary" value="Save changes"/> - </div> - - </form> - -</div> - - -</div> - - -<div class="resource-manager-block hide"> -@include( 'partials/resource-job-manager', array( - "resourceJobManagerTypes" => $resourceJobManagerTypes, - "jobManagerCommands" => $jobManagerCommands, - "parallelismTypes" => $parallelismTypes - ) -) -</div> - -<div class="ssh-block hide"> - <div class="form-group required"> - <label class="control-label">Select Security Protocol </label> - <select name="securityProtocol" required> - @foreach( $securityProtocols as $index => $sp) - <option value="{{ $index }}">{{ $sp }}</option> - @endforeach - </select> - </div> - -<!-- <div class="form-group required">--> -<!-- <label class="control-label">Select Monitoring Mode </label>--> -<!-- <select name="monitorMode" required>--> -<!-- @foreach( $monitorModes as $index => $mode)--> -<!-- <option value="{{ $index }}">{{ $mode}}</option>--> -<!-- @endforeach--> -<!-- </select>--> -<!-- </div>--> - - <div class="form-group addedScpValue hide"> - <label class="control-label">Alternate SSH Host Name</label> - <input class='form-control' name='alternativeSSHHostName'/> - </div> - <div class="form-group addedScpValue hide"> - <label class="control-label">SSH Port</label> - <input class='form-control' name='sshPort'/> - </div> -</div> - -<div class="cloud-block hide"> - <div class="form-group"> - <label class="control-label">Node Id</label> - <input class="form-control" name="nodeId" placeholder="nodId"/> - </div> - <div class="form-group"> - <label class="control-label">Node Id</label> - <input class="form-control" name="nodeId" placeholder="nodId"/> - </div> - <div class="form-group"> - <label class="control-label">Executable Type</label> - <input class="form-control" name="nodeId" placeholder="executableType"/> - </div> - <div class="form-group"> - <label class="control-label">Select Provider Name</label> - <select class="form-control"> - <option name="EC2">EC2</option> - <option name="AWSEC2">AWEC2</option> - <option name="RACKSPACE">RACKSPACE</option> - </select> - </div> -</div> - -<div class="dm-gridftp hide"> - <div class="form-group required"> - <label class="control-label">Grid FTP End Points</label> - <input class="form-control" maxlength="30" name="gridFTPEndPoints[]" required/> - <button type="button" class="btn btn-sm btn-default add-gridFTPEndPoint">Add More Grid FTP End Points</button> - </div> -</div> <!-- <div class="form-group"> @@ -577,9 +577,10 @@ </div> --> + </div> + </div> </div> -</div> -</div> + </div> <!-- modals --> http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/f1d354f5/public/js/script.js ---------------------------------------------------------------------- diff --git a/public/js/script.js b/public/js/script.js index ae697c2..b3e6732 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -102,7 +102,7 @@ $(document).ready( function(){ } else if( selectedVal == "globus") { - alert("Globus Protool is not being setup right now. Please choose another option."); + alert("Globus Protocol is not being setup right now. Please choose another option."); /* $(this).parent().append( parentResDiv + $(".ssh-block").html()
