Compare commits

...

4 Commits

Author SHA1 Message Date
sam@gemibook
ca26799a2e updateLimits: ui pretty 2021-11-09 23:30:01 +08:00
sam
8727e1a3c4 Limits: MemorySwap: -1 2021-10-20 12:08:40 +08:00
sam
4278aebef9 Limits: fix words 2021-10-20 11:04:37 +08:00
sam
4d250a63b5 feat(docker): update realtime-limits with cpu, mem, mem-reservation
---
fix create2 > update
2021-10-15 11:24:11 +08:00
3 changed files with 47 additions and 0 deletions

View File

@@ -90,11 +90,22 @@ angular.module('portainer.docker').factory('ContainerService', [
};
service.updateRestartPolicy = updateRestartPolicy;
service.updateLimits = updateLimits;
function updateRestartPolicy(id, restartPolicy, maximumRetryCounts) {
return Container.update({ id: id }, { RestartPolicy: { Name: restartPolicy, MaximumRetryCount: maximumRetryCounts } }).$promise;
}
function updateLimits(id, config) {
return Container.update({ id: id },
{
//MemorySwap: must be set, -1: non limits, 0: treated as unset(cause update error).
MemoryReservation: config.HostConfig.MemoryReservation, "Memory": config.HostConfig.Memory, "MemorySwap": -1,
NanoCpus: config.HostConfig.NanoCpus
}
).$promise;
}
service.createContainer = function (configuration) {
var deferred = $q.defer();
Container.create(configuration)

View File

@@ -61,6 +61,7 @@ angular.module('portainer.docker').controller('CreateContainerController', [
endpoint
) {
$scope.create = create;
$scope.update = update;
$scope.endpoint = endpoint;
$scope.formValues = {
@@ -758,6 +759,26 @@ angular.module('portainer.docker').controller('CreateContainerController', [
return true;
}
function updateLimits(config) {
return ContainerService.updateLimits($transition$.params().from, config).then(onUpdateSuccess).catch(notifyOnError);
function onUpdateSuccess() {
Notifications.success('Limits updated');
}
function notifyOnError(err) {
Notifications.error('Failure', err, 'Update Limits fail');
return $q.reject(err);
}
}
function update() {
var config = angular.copy($scope.config);
prepareResources(config);
updateLimits(config);
return
}
function create() {
var oldContainer = null;
HttpRequestHelper.setPortainerAgentTargetHeader($scope.formValues.NodeName);

View File

@@ -762,6 +762,21 @@
</div>
</div>
<!-- !cpu-limit-input -->
<!-- update-limit-btn -->
<div class="form-group" ng-if="state.mode == 'duplicate'">
<button
type="button"
class="btn btn-primary btn-sm"
ng-disabled="state.actionInProgress || !formValues.RegistryModel.Image || (!formValues.RegistryModel.Registry && fromContainer)"
ng-click="update()"
button-spinner="state.actionInProgress"
>
<span ng-hide="state.actionInProgress">Update Limits</span>
<span ng-show="state.actionInProgress">Update in progress...</span>
</button>
</div>
<!-- !update-limit-btn -->
</form>
</div>
<!-- !tab-runtime-resources -->