1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-05 13:55:21 +02:00

feat(app): limit the docker API version supported by the frontend (#11855)
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run

This commit is contained in:
LP B 2024-06-10 20:54:31 +02:00 committed by GitHub
parent 4ba16f1b04
commit 6a8e6734f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
212 changed files with 4439 additions and 3281 deletions

View file

@ -9,28 +9,12 @@ angular.module('portainer.docker').controller('ContainerConsoleController', [
'ContainerService',
'ImageService',
'Notifications',
'ContainerHelper',
'ExecService',
'HttpRequestHelper',
'LocalStorage',
'CONSOLE_COMMANDS_LABEL_PREFIX',
'SidebarService',
'endpoint',
function (
$scope,
$state,
$transition$,
ContainerService,
ImageService,
Notifications,
ContainerHelper,
ExecService,
HttpRequestHelper,
LocalStorage,
CONSOLE_COMMANDS_LABEL_PREFIX,
SidebarService,
endpoint
) {
function ($scope, $state, $transition$, ContainerService, ImageService, Notifications, ExecService, HttpRequestHelper, CONSOLE_COMMANDS_LABEL_PREFIX, SidebarService, endpoint) {
var socket, term;
let states = Object.freeze({
@ -97,7 +81,6 @@ angular.module('portainer.docker').controller('ContainerConsoleController', [
$scope.state = states.connecting;
var command = $scope.formValues.isCustomCommand ? $scope.formValues.customCommand : $scope.formValues.command;
var execConfig = {
id: $transition$.params().id,
AttachStdin: true,
AttachStdout: true,
AttachStderr: true,
@ -106,7 +89,7 @@ angular.module('portainer.docker').controller('ContainerConsoleController', [
Cmd: commandStringToArray(command),
};
ContainerService.createExec(endpoint.Id, execConfig)
ContainerService.createExec(endpoint.Id, $transition$.params().id, execConfig)
.then(function success(data) {
const params = {
endpointId: $state.params.endpointId,

View file

@ -5,6 +5,7 @@ import { confirmContainerDeletion } from '@/react/docker/containers/common/confi
import { FeatureId } from '@/react/portainer/feature-flags/enums';
import { ResourceControlType } from '@/react/portainer/access-control/types';
import { confirmContainerRecreation } from '@/react/docker/containers/ItemView/ConfirmRecreationModal';
import { commitContainer } from '@/react/docker/proxy/queries/useCommitContainerMutation';
angular.module('portainer.docker').controller('ContainerController', [
'$q',
@ -13,38 +14,14 @@ angular.module('portainer.docker').controller('ContainerController', [
'$transition$',
'$filter',
'$async',
'Commit',
'ContainerHelper',
'ContainerService',
'ImageHelper',
'NetworkService',
'Notifications',
'ResourceControlService',
'RegistryService',
'ImageService',
'HttpRequestHelper',
'Authentication',
'endpoint',
function (
$q,
$scope,
$state,
$transition$,
$filter,
$async,
Commit,
ContainerHelper,
ContainerService,
ImageHelper,
NetworkService,
Notifications,
ResourceControlService,
RegistryService,
ImageService,
HttpRequestHelper,
Authentication,
endpoint
) {
function ($q, $scope, $state, $transition$, $filter, $async, ContainerService, ImageHelper, NetworkService, Notifications, HttpRequestHelper, Authentication, endpoint) {
$scope.resourceType = ResourceControlType.Container;
$scope.endpoint = endpoint;
$scope.isAdmin = Authentication.isAdmin();
@ -227,7 +204,7 @@ angular.module('portainer.docker').controller('ContainerController', [
$scope.containerLeaveNetwork = function containerLeaveNetwork(container, networkId) {
$scope.state.leaveNetworkInProgress = true;
NetworkService.disconnectContainer(networkId, container.Id, false)
NetworkService.disconnectContainer(networkId, container.Id)
.then(function success() {
Notifications.success('Container left network', container.Id);
$state.reload();
@ -260,7 +237,7 @@ angular.module('portainer.docker').controller('ContainerController', [
const registryModel = $scope.config.RegistryModel;
const imageConfig = ImageHelper.createImageConfigForContainer(registryModel);
try {
await Commit.commitContainer({ environmentId: endpoint.Id }, { id: $transition$.params().id, repo: imageConfig.fromImage }).$promise;
await commitContainer(endpoint.Id, { container: $transition$.params().id, repo: imageConfig.fromImage });
Notifications.success('Image created', $transition$.params().id);
$state.reload();
} catch (err) {

View file

@ -6,10 +6,10 @@ angular.module('portainer.docker').controller('EventsController', [
'SystemService',
function ($scope, Notifications, SystemService) {
function initView() {
var from = moment().subtract(24, 'hour').unix();
var to = moment().unix();
const since = moment().subtract(24, 'hour').unix();
const until = moment().unix();
SystemService.events(from, to)
SystemService.events({ since, until })
.then(function success(data) {
$scope.events = data;
})

View file

@ -35,15 +35,10 @@ angular.module('portainer.docker').controller('ImagesController', [
const registryModel = $scope.formValues.RegistryModel;
var nodeName = $scope.formValues.NodeName;
HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);
$scope.state.actionInProgress = true;
ImageService.pullImage(registryModel, false)
.then(function success(data) {
var err = data[data.length - 1].errorDetail;
if (err) {
return Notifications.error('Failure', err, 'Unable to pull image');
}
ImageService.pullImage(registryModel, nodeName)
.then(function success() {
Notifications.success('Image successfully pulled', registryModel.Image);
$state.reload();
})

View file

@ -230,11 +230,8 @@ angular.module('portainer.docker').controller('CreateNetworkController', [
}
function createNetwork(context) {
HttpRequestHelper.setPortainerAgentTargetHeader(context.nodeName);
HttpRequestHelper.setPortainerAgentManagerOperation(context.managerOperation);
$scope.state.actionInProgress = true;
NetworkService.create(context.networkConfiguration)
NetworkService.create(context.networkConfiguration, { nodeName: context.nodeName, agentManagerOperation: context.managerOperation })
.then(function success(data) {
const userId = context.userDetails.ID;
const accessControlData = context.accessControlData;

View file

@ -14,7 +14,7 @@ angular.module('portainer.docker').controller('CreateServiceController', [
'$scope',
'$state',
'$timeout',
'Service',
'ServiceService',
'ServiceHelper',
'ConfigService',
'ConfigHelper',
@ -29,8 +29,6 @@ angular.module('portainer.docker').controller('CreateServiceController', [
'Notifications',
'FormValidator',
'PluginService',
'RegistryService',
'HttpRequestHelper',
'NodeService',
'WebhookService',
'endpoint',
@ -39,7 +37,7 @@ angular.module('portainer.docker').controller('CreateServiceController', [
$scope,
$state,
$timeout,
Service,
ServiceService,
ServiceHelper,
ConfigService,
ConfigHelper,
@ -54,8 +52,6 @@ angular.module('portainer.docker').controller('CreateServiceController', [
Notifications,
FormValidator,
PluginService,
RegistryService,
HttpRequestHelper,
NodeService,
WebhookService,
endpoint
@ -523,11 +519,9 @@ angular.module('portainer.docker').controller('CreateServiceController', [
function createNewService(config, accessControlData) {
const registryModel = $scope.formValues.RegistryModel;
var authenticationDetails = registryModel.Registry.Authentication ? RegistryService.encodedCredentials(registryModel.Registry) : '';
HttpRequestHelper.setRegistryAuthenticationHeader(authenticationDetails);
Service.create(config)
.$promise.then(function success(data) {
ServiceService.create(config, registryModel.Registry.Authentication ? registryModel.Registry.Id : 0)
.then(function success(data) {
const serviceId = data.ID;
const resourceControl = data.Portainer.ResourceControl;
const userId = Authentication.getUserDetails().ID;

View file

@ -3,7 +3,6 @@ import { VolumesNFSFormData } from '../../../components/volumesNFSForm/volumesNF
import { VolumesCIFSFormData } from '../../../components/volumesCIFSForm/volumesCifsFormModel';
angular.module('portainer.docker').controller('CreateVolumeController', [
'$q',
'$scope',
'$state',
'VolumeService',
@ -12,9 +11,8 @@ angular.module('portainer.docker').controller('CreateVolumeController', [
'Authentication',
'Notifications',
'FormValidator',
'HttpRequestHelper',
'endpoint',
function ($q, $scope, $state, VolumeService, PluginService, ResourceControlService, Authentication, Notifications, FormValidator, HttpRequestHelper, endpoint) {
function ($scope, $state, VolumeService, PluginService, ResourceControlService, Authentication, Notifications, FormValidator, endpoint) {
$scope.endpoint = endpoint;
$scope.formValues = {
@ -126,10 +124,9 @@ angular.module('portainer.docker').controller('CreateVolumeController', [
}
var nodeName = $scope.formValues.NodeName;
HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);
$scope.state.actionInProgress = true;
VolumeService.createVolume(volumeConfiguration)
VolumeService.createVolume(volumeConfiguration, nodeName)
.then(function success(data) {
const userId = userDetails.ID;
const resourceControl = data.ResourceControl;

View file

@ -21,7 +21,7 @@ angular.module('portainer.docker').controller('VolumeController', [
$scope.removeVolume = function removeVolume() {
confirmDelete('Do you want to remove this volume?').then((confirmed) => {
if (confirmed) {
VolumeService.remove($scope.volume)
VolumeService.remove($scope.volume.Id)
.then(function success() {
Notifications.success('Volume successfully removed', $transition$.params().id);
$state.go('docker.volumes', {});

View file

@ -8,14 +8,12 @@ angular.module('portainer.docker').controller('VolumesController', [
'ServiceService',
'VolumeHelper',
'Notifications',
'HttpRequestHelper',
'Authentication',
'endpoint',
function ($q, $scope, $state, VolumeService, ServiceService, VolumeHelper, Notifications, HttpRequestHelper, Authentication, endpoint) {
function ($q, $scope, $state, VolumeService, ServiceService, VolumeHelper, Notifications, Authentication, endpoint) {
$scope.removeAction = async function (selectedItems) {
async function doRemove(volume) {
HttpRequestHelper.setPortainerAgentTargetHeader(volume.NodeName);
return VolumeService.remove(volume)
return VolumeService.remove(volume.Id, volume.NodeName)
.then(function success() {
Notifications.success('Volume successfully removed', volume.Id);
var index = $scope.volumes.indexOf(volume);
@ -36,8 +34,8 @@ angular.module('portainer.docker').controller('VolumesController', [
var endpointRole = $scope.applicationState.endpoint.mode.role;
$q.all({
attached: VolumeService.volumes({ filters: { dangling: ['false'] } }),
dangling: VolumeService.volumes({ filters: { dangling: ['true'] } }),
attached: VolumeService.volumes({ dangling: ['false'] }),
dangling: VolumeService.volumes({ dangling: ['true'] }),
services: endpointProvider === 'DOCKER_SWARM_MODE' && endpointRole === 'MANAGER' ? ServiceService.services() : [],
})
.then(function success(data) {