ui for cpu shares

This commit is contained in:
Girish Ramakrishnan
2020-01-28 22:05:06 -08:00
parent 4a29fa93c5
commit 2a4d9c0ba6
2 changed files with 48 additions and 0 deletions

View File

@@ -562,6 +562,31 @@
</div>
</div>
<hr/>
<div class="row">
<div class="col-md-12">
<fieldset>
<form role="form" name="resourcesForm" ng-submit="resources.submitCpuShares()" autocomplete="off">
<div class="form-group">
<label class="control-label" for="cpuShares">CPU Shares <sup><a ng-href="{{ config.webServerOrigin }}/documentation/apps/#cpu-shares" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup> : <b>{{ (resources.cpuShares * 100 / 1024 | number:0) + ' %' }}</b></label>
<p>Percent of CPU time when system is under heavy load.</p>
<div style="padding: 0 10px;">
<slider id="cpuShares" ng-model="resources.cpuShares" min="1" max="1024" tooltip="hide"></slider>
</div>
</div>
<input class="ng-hide" type="submit" ng-disabled="resources.cpuShares === resources.currentCpuShares || resourcesForm.$invalid || resources.busyCpuShares"/>
</form>
</fieldset>
</div>
</div>
<div class="row">
<div class="col-md-12 text-right">
<button class="btn btn-outline btn-primary pull-right" ng-click="resources.submitCpuShares()" ng-disabled="resources.cpuShares === resources.currentCpuShares || resourcesForm.$invalid || resources.busyCpuShares || app.error" tooltip-enable="app.error" uib-tooltip="App is in error state">
<i class="fa fa-circle-notch fa-spin" ng-show="resources.busyCpuShares"></i> Set
</button>
</div>
</div>
<hr/>
<div class="row">
<div class="col-md-12">
<label class="control-label" for="resourcesEnableDataDir">Custom Data Directory <sup><a ng-href="{{ config.webServerOrigin }}/documentation/storage/#app-data-directory" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>

View File

@@ -354,12 +354,17 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
$scope.resources = {
busy: false,
busyCpuShares: false,
busyDataDir: false,
error: {},
currentMemoryLimit: 0,
memoryLimit: 0,
memoryTicks: [],
currentCpuShares: 0,
cpuShares: 0,
dataDir: null,
show: function () {
@@ -368,6 +373,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
$scope.resources.error = {};
$scope.resources.currentMemoryLimit = app.memoryLimit || app.manifest.memoryLimit || (256 * 1024 * 1024);
$scope.resources.memoryLimit = $scope.resources.currentMemoryLimit;
$scope.resources.currentCpuShares = $scope.resources.cpuShares = app.cpuShares;
$scope.resources.dataDir = app.dataDir;
Client.memory(function (error, memory) {
@@ -404,6 +410,23 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
});
},
submitCpuShares: function () {
$scope.resources.busyCpuShares = true;
$scope.resources.error = {};
Client.configureApp($scope.app.id, 'cpu_shares', { cpuShares: $scope.resources.cpuShares }, function (error) {
if (error) return Client.error(error);
$scope.resources.currentCpuShares = $scope.resources.cpuShares;
refreshApp($scope.app.id, function (error) {
if (error) return Client.error(error);
$timeout(function () { $scope.resources.busyCpuShares = false; }, 1000);
});
});
},
submitDataDir: function () {
$scope.resources.busyDataDir = true;
$scope.resources.error = {};