blob: 103993943a7d0b90560c005f96652f13579f5903 [file] [log] [blame]
@extends('layout.basic')
@section('page-header')
@parent
{{ HTML::style('css/admin.css')}}
{{ HTML::style('css/datetimepicker.css')}}
@stop
@section('content')
<div id="wrapper">
<!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
@include( 'partials/dashboard-block')
<div id="page-wrapper">
<div class="container-fluid">
<div class="col-md-offset-2 col-md-8 storage-resource-properties">
<input type="hidden" class="base-url" value="{{URL::to('/')}}"/>
<ol class="breadcrumb">
<li><a href="{{URL::to('/')}}/sr/browse">Storage Resources</a></li>
<li class="active">{{ $storageResource->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>
</ul>
</div>
<div class="tab-content">
<div class="tab-pane active" id="tab-desc">
<form role="form" method="POST" action="{{ URL::to('/') }}/sr/edit">
<input type="hidden" name="srId" value="{{Input::get('srId') }}"/>
<input type="hidden" name="sr-edit" value="resDesc"/>
<div class="form-group required">
<label class="control-label">Host Name</label>
<input class="form-control hostName" value="{{ $storageResource->hostName }}" maxlength="100"
name="hostname" required="required"/>
</div>
<div class="form-group">
<label class="control-label">Resource Description</label>
<textarea class="form-control" maxlength="255" name="description">{{ $storageResource->storageResourceDescription
}}</textarea>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" name="step1" value="Save changes"/>
</div>
</form>
</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>
@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('/') }}/sr/edit">
<input type="hidden" name="srId" class="srId" value="{{Input::get('srId') }}"/>
<input type="hidden" name="sr-edit" value="edit-dmi"/>
<input type="hidden" name="dmiId" value="{{ $DMI->dataMovementInterfaceId }}"/>
<?php $selectedDMIIndex = $storageResource->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
</div>
@endif
<div class="select-data-movement hide">
<form role="form" method="POST" action="{{ URL::to('/') }}/sr/edit">
<input type="hidden" name="srId" class="srId" value="{{Input::get('srId') }}"/>
<input type="hidden" name="sr-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>
</div>
</div>
</div>
</div>
<div class="resource-manager-block hide">
<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 }}">{{ $rJmT }}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label class="control-label">Push Monitoring End Point</label>
<input type="text" class="form-control" name="pushMonitoringEndpoint"/>
</div>
<div class="form-group">
<label class="control-label">Job Manager Bin Path</label>
<input type="text" class="form-control" name="jobManagerBinPath"/>
</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 }}"/>
@endforeach
</select>
</div>
</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>
<!-- modals -->
<div class="modal fade" id="confirm-delete-dmi" tabindex="-1" role="dialog" aria-labelledby="delete-modal"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<form action="{{ URL::to('sr/delete-jsi') }}" method="POST">
<input type="hidden" name="srId" value="{{Input::get('srId') }}"/>
<input type="hidden" name="dmiId" value="" class="delete-dmi-confirm"/>
<div class="modal-header">
Confirmation
</div>
<div class="modal-body">
Do you really want to delete this Data Movement Interface ?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger danger">Delete</button>
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="add-dmi" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
Add a Data Model Interface
</div>
<div class="modal-body add-dmi-body row">
</div>
</div>
</div>
</div>
@if( count( $dataMovementInterfaces ) > 1)
<div class="modal fade" id="update-dmi-priority" tabindex="-1" role="dialog" aria-labelledby="add-modal"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
Update the Priority Order
</div>
<div class="modal-body">
<form action="{{URL::to('/')}}/sr/edit" method="POST" id="dmi-priority-form">
<input type="hidden" name="srId" value="{{Input::get('srId') }}"/>
<input type="hidden" name="sr-edit" value="dmi-priority"/>
@foreach( $storageResource->dataMovementInterfaces as $index => $DMI )
<div class="row">
<div class="col-md-offset-1 col-md-5">
<label>
{{ $dataMovementProtocols[ $DMI->dataMovementProtocol] }}
</label>
</div>
<input type="hidden" name="dmi-id[]" maxlength="2" value="{{ $DMI->dataMovementInterfaceId }}"/>
<div class="col-md-4">
<input type="number" min="0" name="dmi-priority[]" value="{{ $DMI->priorityOrder }}"
required/>
</div>
</div>
@endforeach
<button type="submit" class="btn btn-update">Update</button>
<div class='priority-updated alert alert-success hide'>
The Data Movement Interface Priority has been updated.
</div>
</form>
</div>
</div>
</div>
</div>
@endif
@stop
@section('scripts')
@parent
{{ HTML::script('js/script.js') }}
@if(! Session::has('super-admin'))
<script>
disableInputs( $(".storage-resource-properties"));
</script>
@endif
@stop