mirror of
https://github.com/portainer/portainer.git
synced 2025-07-23 07:19:41 +02:00
refactor(containers): migrate create view to react [EE-2307] (#9175)
This commit is contained in:
parent
bc0050a7b4
commit
d970f0e2bc
71 changed files with 2612 additions and 1399 deletions
|
@ -1,89 +1,173 @@
|
|||
import { AxiosRequestHeaders } from 'axios';
|
||||
|
||||
import { EnvironmentId } from '@/react/portainer/environments/types';
|
||||
import PortainerError from '@/portainer/error';
|
||||
import axios from '@/portainer/services/axios';
|
||||
import axios, { parseAxiosError } from '@/portainer/services/axios';
|
||||
import { genericHandler } from '@/docker/rest/response/handlers';
|
||||
|
||||
import { ContainerId, DockerContainer } from './types';
|
||||
import { ContainerId } from './types';
|
||||
|
||||
export async function startContainer(
|
||||
endpointId: EnvironmentId,
|
||||
id: ContainerId
|
||||
environmentId: EnvironmentId,
|
||||
id: ContainerId,
|
||||
{ nodeName }: { nodeName?: string } = {}
|
||||
) {
|
||||
await axios.post<void>(
|
||||
urlBuilder(endpointId, id, 'start'),
|
||||
{},
|
||||
{ transformResponse: genericHandler }
|
||||
);
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
try {
|
||||
await axios.post<void>(
|
||||
urlBuilder(environmentId, id, 'start'),
|
||||
{},
|
||||
{ transformResponse: genericHandler, headers }
|
||||
);
|
||||
} catch (e) {
|
||||
throw parseAxiosError(e, 'Failed starting container');
|
||||
}
|
||||
}
|
||||
|
||||
export async function stopContainer(
|
||||
endpointId: EnvironmentId,
|
||||
id: ContainerId
|
||||
id: ContainerId,
|
||||
{ nodeName }: { nodeName?: string } = {}
|
||||
) {
|
||||
await axios.post<void>(urlBuilder(endpointId, id, 'stop'), {});
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
await axios.post<void>(urlBuilder(endpointId, id, 'stop'), {}, { headers });
|
||||
}
|
||||
|
||||
export async function recreateContainer(
|
||||
endpointId: EnvironmentId,
|
||||
id: ContainerId,
|
||||
pullImage: boolean
|
||||
pullImage: boolean,
|
||||
{ nodeName }: { nodeName?: string } = {}
|
||||
) {
|
||||
await axios.post<void>(`/docker/${endpointId}/containers/${id}/recreate`, {
|
||||
PullImage: pullImage,
|
||||
});
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
await axios.post<void>(
|
||||
`/docker/${endpointId}/containers/${id}/recreate`,
|
||||
{
|
||||
PullImage: pullImage,
|
||||
},
|
||||
{ headers }
|
||||
);
|
||||
}
|
||||
|
||||
export async function restartContainer(
|
||||
endpointId: EnvironmentId,
|
||||
id: ContainerId
|
||||
id: ContainerId,
|
||||
{ nodeName }: { nodeName?: string } = {}
|
||||
) {
|
||||
await axios.post<void>(urlBuilder(endpointId, id, 'restart'), {});
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
await axios.post<void>(
|
||||
urlBuilder(endpointId, id, 'restart'),
|
||||
{},
|
||||
{ headers }
|
||||
);
|
||||
}
|
||||
|
||||
export async function killContainer(
|
||||
endpointId: EnvironmentId,
|
||||
id: ContainerId
|
||||
id: ContainerId,
|
||||
{ nodeName }: { nodeName?: string } = {}
|
||||
) {
|
||||
await axios.post<void>(urlBuilder(endpointId, id, 'kill'), {});
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
await axios.post<void>(urlBuilder(endpointId, id, 'kill'), {}, { headers });
|
||||
}
|
||||
|
||||
export async function pauseContainer(
|
||||
endpointId: EnvironmentId,
|
||||
id: ContainerId
|
||||
id: ContainerId,
|
||||
{ nodeName }: { nodeName?: string } = {}
|
||||
) {
|
||||
await axios.post<void>(urlBuilder(endpointId, id, 'pause'), {});
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
await axios.post<void>(urlBuilder(endpointId, id, 'pause'), {}, { headers });
|
||||
}
|
||||
|
||||
export async function resumeContainer(
|
||||
endpointId: EnvironmentId,
|
||||
id: ContainerId
|
||||
id: ContainerId,
|
||||
{ nodeName }: { nodeName?: string } = {}
|
||||
) {
|
||||
await axios.post<void>(urlBuilder(endpointId, id, 'unpause'), {});
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
await axios.post<void>(
|
||||
urlBuilder(endpointId, id, 'unpause'),
|
||||
{},
|
||||
{ headers }
|
||||
);
|
||||
}
|
||||
|
||||
export async function renameContainer(
|
||||
endpointId: EnvironmentId,
|
||||
id: ContainerId,
|
||||
name: string
|
||||
name: string,
|
||||
{ nodeName }: { nodeName?: string } = {}
|
||||
) {
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
await axios.post<void>(
|
||||
urlBuilder(endpointId, id, 'rename'),
|
||||
{},
|
||||
{ params: { name }, transformResponse: genericHandler }
|
||||
{ params: { name }, transformResponse: genericHandler, headers }
|
||||
);
|
||||
}
|
||||
|
||||
export async function removeContainer(
|
||||
endpointId: EnvironmentId,
|
||||
container: DockerContainer,
|
||||
removeVolumes: boolean
|
||||
containerId: string,
|
||||
{
|
||||
nodeName,
|
||||
removeVolumes,
|
||||
}: { removeVolumes?: boolean; nodeName?: string } = {}
|
||||
) {
|
||||
try {
|
||||
const headers: AxiosRequestHeaders = {};
|
||||
|
||||
if (nodeName) {
|
||||
headers['X-PortainerAgent-Target'] = nodeName;
|
||||
}
|
||||
|
||||
const { data } = await axios.delete<null | { message: string }>(
|
||||
urlBuilder(endpointId, container.Id),
|
||||
urlBuilder(endpointId, containerId),
|
||||
{
|
||||
params: { v: removeVolumes ? 1 : 0, force: true },
|
||||
transformResponse: genericHandler,
|
||||
headers,
|
||||
}
|
||||
);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue