feat: Allow user to customize snapshot/backup deadline (#866)

* feat: Allow user to customize snapshot/backup deadline

Related to: https://github.com/harvester/harvester/issues/4098
Related to: https://github.com/harvester/harvester/pull/10545

Signed-off-by: Volker Theile <vtheile@suse.com>

* feat: Allow user to customize snapshot/backup deadline

Related to: https://github.com/harvester/harvester/issues/4098
Related to: https://github.com/harvester/harvester/pull/10545

Signed-off-by: Volker Theile <vtheile@suse.com>

---------

Signed-off-by: Volker Theile <vtheile@suse.com>
This commit is contained in:
Volker Theile
2026-07-09 08:44:47 +02:00
committed by GitHub
parent 531ed03796
commit d98db6ba49
5 changed files with 108 additions and 5 deletions
+26 -3
View File
@@ -5,6 +5,8 @@ import { Card } from '@components/Card';
import { Banner } from '@components/Banner';
import AsyncButton from '@shell/components/AsyncButton';
import { LabeledInput } from '@components/Form/LabeledInput';
import LabeledSelect from '@shell/components/form/LabeledSelect';
import { DEFAULT_FS_FREEZE_DEADLINE, getFsFreezeDeadlineOptions } from '../utils/backup';
export default {
name: 'HarvesterBackupModal',
@@ -15,6 +17,7 @@ export default {
AsyncButton,
Card,
LabeledInput,
LabeledSelect,
Banner
},
@@ -27,8 +30,9 @@ export default {
data() {
return {
backUpName: '',
errors: []
backUpName: '',
errors: [],
fsFreezeDeadline: DEFAULT_FS_FREEZE_DEADLINE
};
},
@@ -37,12 +41,22 @@ export default {
actionResource() {
return this.resources[0];
},
fsFreezeDeadlineEnabled() {
return this.$store.getters['harvester-common/getFeatureEnabled']('fsFreezeDeadline');
},
fsFreezeDeadlineOptions() {
return getFsFreezeDeadlineOptions(this.t);
}
},
methods: {
close() {
this.backUpName = '';
this.fsFreezeDeadline = DEFAULT_FS_FREEZE_DEADLINE;
this.errors = [];
this.$emit('close');
},
@@ -51,7 +65,7 @@ export default {
try {
const res = await this.actionResource.doAction(
'backup',
{ name: this.backUpName },
{ name: this.backUpName, fsFreezeDeadline: this.fsFreezeDeadline },
{},
false
);
@@ -100,9 +114,18 @@ export default {
<template #body>
<LabeledInput
v-model:value="backUpName"
class="mt-20"
:label="t('generic.name')"
required
/>
<LabeledSelect
v-if="fsFreezeDeadlineEnabled"
v-model:value="fsFreezeDeadline"
class="mt-20"
:options="fsFreezeDeadlineOptions"
:label="t('harvester.modal.backup.fileSystemFreezeDeadline.label')"
required
/>
<Banner
v-for="(err, i) in errors"
:key="i"