Repository: airavata-php-gateway Updated Branches: refs/heads/develop 5ea6293c7 -> 7a7e2f93f
auto updating node/cpu/walltimes in experiment create and edit 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/7a7e2f93 Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/7a7e2f93 Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/7a7e2f93 Branch: refs/heads/develop Commit: 7a7e2f93f521c1044ca35c81f843a93f3fc64a90 Parents: 5ea6293 Author: scnakandala <[email protected]> Authored: Tue May 16 11:49:52 2017 -0400 Committer: scnakandala <[email protected]> Committed: Tue May 16 11:49:52 2017 -0400 ---------------------------------------------------------------------- app/controllers/ExperimentController.php | 8 +- app/views/experiment/edit.blade.php | 2 +- app/views/partials/experiment-inputs.blade.php | 3 +- .../partials/experiment-queue-block.blade.php | 127 +++++++++++-------- 4 files changed, 82 insertions(+), 58 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7a7e2f93/app/controllers/ExperimentController.php ---------------------------------------------------------------------- diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php index 19f929c..03e4e9c 100755 --- a/app/controllers/ExperimentController.php +++ b/app/controllers/ExperimentController.php @@ -293,6 +293,7 @@ class ExperimentController extends BaseController $computeResourceId = $experiment->userConfigurationData->computationalResourceScheduling->resourceHostId; $crResource = CRUtilities::get_compute_resource($computeResourceId); + $cpusPerNode = $crResource->cpusPerNode; if($crResource->defaultNodeCount > 0){ $nodeCount = $crResource->defaultNodeCount; } @@ -381,7 +382,8 @@ class ExperimentController extends BaseController "users" => json_encode($users), "owner" => json_encode($owner), "canEditSharing" => $canEditSharing, "projectOwner" => json_encode($projectOwner), - "updateSharingViaAjax" => false + "updateSharingViaAjax" => false, + "cpusPerNode" => $cpusPerNode )); } else { @@ -461,6 +463,7 @@ class ExperimentController extends BaseController $wallTimeLimit = Config::get('pga_config.airavata')["wall-time-limit"]; $crResource = CRUtilities::get_compute_resource($computeResourceId); + $cpusPerNode = $crResource->cpusPerNode; if($crResource->defaultNodeCount > 0){ $nodeCount = $crResource->defaultNodeCount; } @@ -506,7 +509,8 @@ class ExperimentController extends BaseController } return View::make("partials/experiment-queue-block", array("queues" => $queues, "queueDefaults" => $queueDefaults, "useUserCRPref" => $userHasComputeResourcePreference, - "userHasComputeResourcePreference" => $userHasComputeResourcePreference)); + "userHasComputeResourcePreference" => $userHasComputeResourcePreference, + "cpusPerNode" => $cpusPerNode)); } public function browseView() http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7a7e2f93/app/views/experiment/edit.blade.php ---------------------------------------------------------------------- diff --git a/app/views/experiment/edit.blade.php b/app/views/experiment/edit.blade.php index db21068..fe5fdc9 100755 --- a/app/views/experiment/edit.blade.php +++ b/app/views/experiment/edit.blade.php @@ -29,7 +29,7 @@ <form action="{{URL::to('/')}}/experiment/edit" method="POST" role="form" enctype="multipart/form-data"> <input type="hidden" name="expId" value="{{{ Input::get('expId') }}}"/> - @include('partials/experiment-inputs', array( "expInputs", $expInputs)) + @include('partials/experiment-inputs', array( "expInputs" => $expInputs, "cpusPerNode"=>$cpusPerNode)) @if( count( $expInputs['computeResources']) > 0) <div class="btn-toolbar"> http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7a7e2f93/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 956e99d..1318961 100644 --- a/app/views/partials/experiment-inputs.blade.php +++ b/app/views/partials/experiment-inputs.blade.php @@ -85,7 +85,8 @@ @include( 'partials/experiment-queue-block', array('queues'=> $expInputs['expVal']['computeResource']->batchQueues, 'expVal' => $expInputs['expVal'], 'useUserCRPref' => $expInputs['useUserCRPref'], - 'userHasComputeResourcePreference' => $expInputs['userHasComputeResourcePreference'] )) + 'userHasComputeResourcePreference' => $expInputs['userHasComputeResourcePreference'], + 'cpusPerNode' => $cpusPerNode)) @endif </div> </div> http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/7a7e2f93/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 4f94e14..5bee34c 100644 --- a/app/views/partials/experiment-queue-block.blade.php +++ b/app/views/partials/experiment-queue-block.blade.php @@ -86,7 +86,64 @@ </div> +@section('scripts') +@parent <script> + //To work with experiment edit (Not Ajax) + $( document ).ready(function() { + var selectedQueue = $("#select-queue").val(); + getQueueData(selectedQueue); + $("#select-queue").change(function () { + var selectedQueue = $("#select-queue").val(); + getQueueData(selectedQueue); + }); + }); + + $("#enable-auto-scheduling").change(function () { + var selectedQueue = $("#select-queue").val(); + getQueueData(selectedQueue); + }); + + //Setting the file input view JS code + $( document ).ready(function() { + function readBlob(opt_startByte, opt_stopByte, fileId) { + + var files = document.getElementById(fileId).files; + if (!files.length) { + alert('Please select a file!'); + return; + } + + var file = files[0]; + var start = 0; + var stop = Math.min(512*1024,file.size - 1); + + var reader = new FileReader(); + + // If we use onloadend, we need to check the readyState. + reader.onloadend = function(evt) { + if (evt.target.readyState == FileReader.DONE) { // DONE == 2 + $('#byte_content').html(evt.target.result.replace(/(?:\r\n|\r|\n)/g, '<br />')); + $('#byte_range').html( + ['Read bytes: ', start + 1, ' - ', stop + 1, + ' of ', file.size, ' byte file'].join('')); + } + }; + + var blob = file.slice(start, stop + 1); + reader.readAsBinaryString(blob); + + $('#input-file-view').modal('show'); + } + + $( ".readBytesButtons" ).click(function() { + var startByte = $(this).data('startbyte'); + var endByte = $(this).data('endbyte'); + var fileId = $(this).data('file-id'); + readBlob(startByte, endByte, fileId); + }); + }); + //To work work with experiment create (Ajax) var selectedQueue = $("#select-queue").val(); getQueueData(selectedQueue); @@ -162,65 +219,27 @@ } $(".queue-data").removeClass("hide"); } -</script> - - -@section('scripts') -@parent -<script> - //To work with experiment edit (Not Ajax) - $( document ).ready(function() { - var selectedQueue = $("#select-queue").val(); - getQueueData(selectedQueue); - $("#select-queue").change(function () { - var selectedQueue = $("#select-queue").val(); - getQueueData(selectedQueue); - }); - }); - - $("#enable-auto-scheduling").change(function () { - var selectedQueue = $("#select-queue").val(); - getQueueData(selectedQueue); - }); - - //Setting the file input view JS code - $( document ).ready(function() { - function readBlob(opt_startByte, opt_stopByte, fileId) { - - var files = document.getElementById(fileId).files; - if (!files.length) { - alert('Please select a file!'); - return; - } - - var file = files[0]; - var start = 0; - var stop = Math.min(512*1024,file.size - 1); - var reader = new FileReader(); + $(document).ready(function(){ + var cpusPerNode = {{$cpusPerNode}}; + var nodeCount=$("#node-count"); + var cpuCount=$("#cpu-count"); - // If we use onloadend, we need to check the readyState. - reader.onloadend = function(evt) { - if (evt.target.readyState == FileReader.DONE) { // DONE == 2 - $('#byte_content').html(evt.target.result.replace(/(?:\r\n|\r|\n)/g, '<br />')); - $('#byte_range').html( - ['Read bytes: ', start + 1, ' - ', stop + 1, - ' of ', file.size, ' byte file'].join('')); + if(cpusPerNode > 0){ + nodeCount.keyup(function(){ + var nodeCountVal = parseInt(nodeCount.val()); + if(nodeCountVal > 0){ + cpuCount.val(nodeCountVal*cpusPerNode); } - }; + }); - var blob = file.slice(start, stop + 1); - reader.readAsBinaryString(blob); - - $('#input-file-view').modal('show'); + cpuCount.keyup(function(){ + var cpuCountVal = parseInt(cpuCount.val()); + if(cpuCountVal > 0){ + nodeCount.val(Math.ceil(cpuCountVal/cpusPerNode)); + } + }); } - - $( ".readBytesButtons" ).click(function() { - var startByte = $(this).data('startbyte'); - var endByte = $(this).data('endbyte'); - var fileId = $(this).data('file-id'); - readBlob(startByte, endByte, fileId); - }); }); </script> @stop \ No newline at end of file
