1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-30 18:59:41 +02:00

fix issue on editing app with persisted folder (#6646)

Co-authored-by: Richard Wei <dgui.wei@gmail.com>
This commit is contained in:
Richard Wei 2022-04-06 05:42:01 +12:00 committed by GitHub
parent 2059a9e064
commit 7e28b3ca3f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 74 additions and 69 deletions

View file

@ -237,37 +237,39 @@ function getVolumeClaimUpdateResourceSummary(oldPVC, newPVC) {
// getServiceUpdateResourceSummary replicates KubernetesServiceService.patch
function getServiceUpdateResourceSummary(oldServices, newServices) {
let summary = [];
newServices.forEach((newService) => {
const oldServiceMatched = _.find(oldServices, { Name: newService.Name });
if (oldServiceMatched) {
const payload = KubernetesServiceConverter.patchPayload(oldServiceMatched, newService);
if (payload.length) {
const serviceUpdate = {
action: UPDATE,
kind: KubernetesResourceTypes.SERVICE,
name: oldServiceMatched.Name,
type: oldServiceMatched.Type || KubernetesServiceTypes.CLUSTER_IP,
};
summary.push(serviceUpdate);
// skip update summary when service is headless service
if (!oldServices.Headless) {
newServices.forEach((newService) => {
const oldServiceMatched = _.find(oldServices, { Name: newService.Name });
if (oldServiceMatched) {
const payload = KubernetesServiceConverter.patchPayload(oldServiceMatched, newService);
if (payload.length) {
const serviceUpdate = {
action: UPDATE,
kind: KubernetesResourceTypes.SERVICE,
name: oldServiceMatched.Name,
type: oldServiceMatched.Type || KubernetesServiceTypes.CLUSTER_IP,
};
summary.push(serviceUpdate);
}
} else {
const emptyService = new KubernetesService();
const payload = KubernetesServiceConverter.patchPayload(emptyService, newService);
if (payload.length) {
const serviceCreate = { action: CREATE, kind: KubernetesResourceTypes.SERVICE, name: newService.Name, type: newService.Type || KubernetesServiceTypes.CLUSTER_IP };
summary.push(serviceCreate);
}
}
} else {
const emptyService = new KubernetesService();
const payload = KubernetesServiceConverter.patchPayload(emptyService, newService);
if (payload.length) {
const serviceCreate = { action: CREATE, kind: KubernetesResourceTypes.SERVICE, name: newService.Name, type: newService.Type || KubernetesServiceTypes.CLUSTER_IP };
summary.push(serviceCreate);
});
oldServices.forEach((oldService) => {
const newServiceMatched = _.find(newServices, { Name: oldService.Name });
if (!newServiceMatched) {
const serviceDelete = { action: DELETE, kind: KubernetesResourceTypes.SERVICE, name: oldService.Name, type: oldService.Type || KubernetesServiceTypes.CLUSTER_IP };
summary.push(serviceDelete);
}
}
});
oldServices.forEach((oldService) => {
const newServiceMatched = _.find(newServices, { Name: oldService.Name });
if (!newServiceMatched) {
const serviceDelete = { action: DELETE, kind: KubernetesResourceTypes.SERVICE, name: oldService.Name, type: oldService.Type || KubernetesServiceTypes.CLUSTER_IP };
summary.push(serviceDelete);
}
});
});
}
if (summary.length !== 0) {
return summary;
}