fix(container): replace container using correct node name EE-7066 (#11847)

pull/11869/head
cmeng 2024-05-23 09:13:49 +12:00 committed by GitHub
parent d283c63a33
commit d7b412eccc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 6 deletions

View File

@ -161,7 +161,7 @@ async function replace({
); );
await removeContainer(environment.Id, oldContainer.Id, { await removeContainer(environment.Id, oldContainer.Id, {
nodeName: values.nodeName, nodeName: oldContainer.NodeName,
}); });
} }
@ -178,13 +178,17 @@ async function renameAndCreate(
) { ) {
let renamed = false; let renamed = false;
try { try {
await stopContainerIfNeeded(environmentId, oldContainer, nodeName); await stopContainerIfNeeded(
environmentId,
oldContainer,
oldContainer.NodeName
);
await renameContainer( await renameContainer(
environmentId, environmentId,
oldContainer.Id, oldContainer.Id,
`${oldContainer.Names[0]}-old`, `${oldContainer.Names[0]}-old`,
{ nodeName } { nodeName: oldContainer.NodeName }
); );
renamed = true; renamed = true;
@ -192,7 +196,7 @@ async function renameAndCreate(
} catch (e) { } catch (e) {
if (renamed) { if (renamed) {
await renameContainer(environmentId, oldContainer.Id, name, { await renameContainer(environmentId, oldContainer.Id, name, {
nodeName, nodeName: oldContainer.NodeName,
}); });
} }
throw e; throw e;

View File

@ -10,7 +10,10 @@ import {
import { RawAxiosRequestHeaders } from 'axios'; import { RawAxiosRequestHeaders } from 'axios';
import { PortainerResponse } from '@/react/docker/types'; import { PortainerResponse } from '@/react/docker/types';
import axios, { parseAxiosError } from '@/portainer/services/axios'; import axios, {
agentTargetHeader,
parseAxiosError,
} from '@/portainer/services/axios';
import { ContainerId } from '@/react/docker/containers/types'; import { ContainerId } from '@/react/docker/containers/types';
import { EnvironmentId } from '@/react/portainer/environments/types'; import { EnvironmentId } from '@/react/portainer/environments/types';
import { queryClient } from '@/react-tools/react-query'; import { queryClient } from '@/react-tools/react-query';
@ -115,7 +118,7 @@ async function getContainer(
const headers: RawAxiosRequestHeaders = {}; const headers: RawAxiosRequestHeaders = {};
if (nodeName) { if (nodeName) {
headers['X-PortainerAgent-Target'] = nodeName; headers[agentTargetHeader] = nodeName;
} }
const { data } = await axios.get<ContainerResponse>( const { data } = await axios.get<ContainerResponse>(