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
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:
parent
4ba16f1b04
commit
6a8e6734f3
212 changed files with 4439 additions and 3281 deletions
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
})
|
||||
|
|
|
@ -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();
|
||||
})
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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', {});
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue