1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-24 07:49:41 +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

@ -1,6 +1,6 @@
import { Box } from 'lucide-react';
import type { DockerContainer } from '@/react/docker/containers/types';
import { ContainerListViewModel } from '@/react/docker/containers/types';
import { useShowGPUsColumn } from '@/react/docker/containers/utils';
import { Environment } from '@/react/portainer/environments/types';
@ -18,7 +18,7 @@ import { withColumnFilters } from '@@/datatables/extend-options/withColumnFilter
import { TableSettingsProvider } from '@@/datatables/useTableSettings';
import { useTableState } from '@@/datatables/useTableState';
import { useContainers } from '../../queries/containers';
import { useContainers } from '../../queries/useContainers';
import { ContainersDatatableActions } from './ContainersDatatableActions';
import { ContainersDatatableSettings } from './ContainersDatatableSettings';
@ -75,7 +75,7 @@ export function ContainersDatatable({
data-cy="docker-containers-datatable"
renderTableSettings={(tableInstance) => (
<>
<ColumnVisibilityMenu<DockerContainer>
<ColumnVisibilityMenu<ContainerListViewModel>
table={tableInstance}
onChange={(hiddenColumns) => {
tableState.setHiddenColumns(hiddenColumns);

View file

@ -8,7 +8,7 @@ import { setPortainerAgentTargetHeader } from '@/portainer/services/http-request
import {
ContainerId,
ContainerStatus,
DockerContainer,
ContainerListViewModel,
} from '@/react/docker/containers/types';
import {
killContainer,
@ -29,7 +29,7 @@ type ContainerServiceAction = (
) => Promise<void>;
interface Props {
selectedItems: DockerContainer[];
selectedItems: ContainerListViewModel[];
isAddActionVisible: boolean;
endpointId: EnvironmentId;
}
@ -175,7 +175,7 @@ export function ContainersDatatableActions({
</div>
);
function onStartClick(selectedItems: DockerContainer[]) {
function onStartClick(selectedItems: ContainerListViewModel[]) {
const successMessage = 'Container successfully started';
const errorMessage = 'Unable to start container';
executeActionOnContainerList(
@ -186,7 +186,7 @@ export function ContainersDatatableActions({
);
}
function onStopClick(selectedItems: DockerContainer[]) {
function onStopClick(selectedItems: ContainerListViewModel[]) {
const successMessage = 'Container successfully stopped';
const errorMessage = 'Unable to stop container';
executeActionOnContainerList(
@ -197,7 +197,7 @@ export function ContainersDatatableActions({
);
}
function onRestartClick(selectedItems: DockerContainer[]) {
function onRestartClick(selectedItems: ContainerListViewModel[]) {
const successMessage = 'Container successfully restarted';
const errorMessage = 'Unable to restart container';
executeActionOnContainerList(
@ -208,7 +208,7 @@ export function ContainersDatatableActions({
);
}
function onKillClick(selectedItems: DockerContainer[]) {
function onKillClick(selectedItems: ContainerListViewModel[]) {
const successMessage = 'Container successfully killed';
const errorMessage = 'Unable to kill container';
executeActionOnContainerList(
@ -219,7 +219,7 @@ export function ContainersDatatableActions({
);
}
function onPauseClick(selectedItems: DockerContainer[]) {
function onPauseClick(selectedItems: ContainerListViewModel[]) {
const successMessage = 'Container successfully paused';
const errorMessage = 'Unable to pause container';
executeActionOnContainerList(
@ -230,7 +230,7 @@ export function ContainersDatatableActions({
);
}
function onResumeClick(selectedItems: DockerContainer[]) {
function onResumeClick(selectedItems: ContainerListViewModel[]) {
const successMessage = 'Container successfully resumed';
const errorMessage = 'Unable to resume container';
executeActionOnContainerList(
@ -241,7 +241,7 @@ export function ContainersDatatableActions({
);
}
async function onRemoveClick(selectedItems: DockerContainer[]) {
async function onRemoveClick(selectedItems: ContainerListViewModel[]) {
const isOneContainerRunning = selectedItems.some(
(container) => container.State === 'running'
);
@ -259,7 +259,7 @@ export function ContainersDatatableActions({
}
async function executeActionOnContainerList(
containers: DockerContainer[],
containers: ContainerListViewModel[],
action: ContainerServiceAction,
successMessage: string,
errorMessage: string
@ -283,7 +283,7 @@ export function ContainersDatatableActions({
}
async function removeSelectedContainers(
containers: DockerContainer[],
containers: ContainerListViewModel[],
removeVolumes: boolean
) {
for (let i = 0; i < containers.length; i += 1) {

View file

@ -1,6 +1,6 @@
import { CellContext } from '@tanstack/react-table';
import type { DockerContainer } from '@/react/docker/containers/types';
import type { ContainerListViewModel } from '@/react/docker/containers/types';
import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';
import { useContainerGpus } from '@/react/docker/containers/queries/gpus';
@ -14,7 +14,7 @@ export const gpus = columnHelper.display({
function GpusCell({
row: { original: container },
}: CellContext<DockerContainer, unknown>) {
}: CellContext<ContainerListViewModel, unknown>) {
const containerId = container.Id;
const environmentId = useEnvironmentId();
const gpusQuery = useContainerGpus(environmentId, containerId);

View file

@ -1,5 +1,5 @@
import { createColumnHelper } from '@tanstack/react-table';
import { DockerContainer } from '../../../types';
import { ContainerListViewModel } from '../../../types';
export const columnHelper = createColumnHelper<DockerContainer>();
export const columnHelper = createColumnHelper<ContainerListViewModel>();

View file

@ -1,7 +1,7 @@
import { CellContext } from '@tanstack/react-table';
import { useSref } from '@uirouter/react';
import type { DockerContainer } from '@/react/docker/containers/types';
import type { ContainerListViewModel } from '@/react/docker/containers/types';
import { columnHelper } from './helper';
@ -11,7 +11,7 @@ export const image = columnHelper.accessor('Image', {
cell: ImageCell,
});
function ImageCell({ getValue }: CellContext<DockerContainer, string>) {
function ImageCell({ getValue }: CellContext<ContainerListViewModel, string>) {
const imageName = getValue();
const linkProps = useSref('docker.images.image', { id: imageName });
const shortImageName = trimSHASum(imageName);

View file

@ -2,7 +2,7 @@ import _ from 'lodash';
import { useMemo } from 'react';
import { createOwnershipColumn } from '@/react/docker/components/datatable/createOwnershipColumn';
import { DockerContainer } from '@/react/docker/containers/types';
import { ContainerListViewModel } from '@/react/docker/containers/types';
import { created } from './created';
import { host } from './host';
@ -32,7 +32,7 @@ export function useColumns(
isHostColumnVisible && host,
isGPUsColumnVisible && gpus,
ports,
createOwnershipColumn<DockerContainer>(),
createOwnershipColumn<ContainerListViewModel>(),
]),
[isHostColumnVisible, isGPUsColumnVisible]
);

View file

@ -2,7 +2,7 @@ import { CellContext } from '@tanstack/react-table';
import _ from 'lodash';
import { useSref } from '@uirouter/react';
import type { DockerContainer } from '@/react/docker/containers/types';
import type { ContainerListViewModel } from '@/react/docker/containers/types';
import { useTableSettings } from '@@/datatables/useTableSettings';
@ -19,7 +19,7 @@ export const name = columnHelper.accessor((row) => row.Names[0], {
export function NameCell({
getValue,
row: { original: container },
}: CellContext<DockerContainer, string>) {
}: CellContext<ContainerListViewModel, string>) {
const name = getValue();
const linkProps = useSref('.container', {

View file

@ -1,8 +1,8 @@
import _ from 'lodash';
import { CellContext } from '@tanstack/react-table';
import type { DockerContainer } from '@/react/docker/containers/types';
import { PublishedPortLink } from '@/react/docker/components/ImageStatus/PublishedPortLink';
import type { ContainerListViewModel } from '@/react/docker/containers/types';
import { useRowContext } from '../RowContext';
@ -20,7 +20,7 @@ export const ports = columnHelper.accessor(
}
);
function Cell({ row }: CellContext<DockerContainer, string>) {
function Cell({ row }: CellContext<ContainerListViewModel, string>) {
const ports = row.original.Ports;
const { environment } = useRowContext();

View file

@ -2,7 +2,7 @@ import { CellContext } from '@tanstack/react-table';
import { useAuthorizations } from '@/react/hooks/useUser';
import { ContainerQuickActions } from '@/react/docker/containers/components/ContainerQuickActions';
import { DockerContainer } from '@/react/docker/containers/types';
import { ContainerListViewModel } from '@/react/docker/containers/types';
import { useTableSettings } from '@@/datatables/useTableSettings';
@ -18,7 +18,7 @@ export const quickActions = columnHelper.display({
function QuickActionsCell({
row: { original: container },
}: CellContext<DockerContainer, unknown>) {
}: CellContext<ContainerListViewModel, unknown>) {
const settings = useTableSettings<TableSettings>();
const { hiddenQuickActions = [] } = settings;

View file

@ -2,7 +2,7 @@ import clsx from 'clsx';
import { CellContext } from '@tanstack/react-table';
import {
type DockerContainer,
type ContainerListViewModel,
ContainerStatus,
} from '@/react/docker/containers/types';
@ -25,7 +25,7 @@ export const state = columnHelper.accessor('Status', {
function StatusCell({
getValue,
row: { original: container },
}: CellContext<DockerContainer, ContainerStatus>) {
}: CellContext<ContainerListViewModel, ContainerStatus>) {
const status = getValue();
const hasHealthCheck = [