Merge pull request #166 from harvester/mergify/bp/release-harvester-v1.5/pr-164

Add refreshIntervalInSeconds in backup targe edit page (backport #164)
This commit is contained in:
Andy Lee 2025-02-26 16:19:19 +08:00 committed by GitHub
commit 2ef8e2e0aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 29 additions and 5 deletions

View File

@ -6,6 +6,7 @@ import CreateEditView from '@shell/mixins/create-edit-view';
import { LabeledInput } from '@components/Form/LabeledInput'; import { LabeledInput } from '@components/Form/LabeledInput';
import LabeledSelect from '@shell/components/form/LabeledSelect'; import LabeledSelect from '@shell/components/form/LabeledSelect';
import { HCI_SETTING } from '../../config/settings'; import { HCI_SETTING } from '../../config/settings';
import UnitInput from '@shell/components/form/UnitInput';
const DEFAULT_TYPE = 's3'; const DEFAULT_TYPE = 's3';
@ -13,7 +14,7 @@ export default {
name: 'HarvesterEditBackupTarget', name: 'HarvesterEditBackupTarget',
components: { components: {
LabeledInput, LabeledSelect, Tip, Password, MessageLink LabeledInput, LabeledSelect, Tip, Password, MessageLink, UnitInput
}, },
mixins: [CreateEditView], mixins: [CreateEditView],
@ -24,7 +25,9 @@ export default {
try { try {
parseDefaultValue = JSON.parse(this.value.value); parseDefaultValue = JSON.parse(this.value.value);
} catch (error) { } catch (error) {
parseDefaultValue = { type: '', endpoint: '' }; parseDefaultValue = {
type: '', endpoint: '', refreshIntervalInSeconds: 0
};
} }
// set default type to s3 // set default type to s3
@ -83,7 +86,9 @@ export default {
try { try {
parseDefaultValue = JSON.parse(neu.value); parseDefaultValue = JSON.parse(neu.value);
} catch (err) { } catch (err) {
parseDefaultValue = { type: '', endpoint: '' }; parseDefaultValue = {
type: '', endpoint: '', refreshIntervalInSeconds: 0
};
} }
this['parseDefaultValue'] = parseDefaultValue; this['parseDefaultValue'] = parseDefaultValue;
@ -111,7 +116,6 @@ export default {
if (this.isS3 && !this.parseDefaultValue.virtualHostedStyle) { if (this.isS3 && !this.parseDefaultValue.virtualHostedStyle) {
this.parseDefaultValue.virtualHostedStyle = false; this.parseDefaultValue.virtualHostedStyle = false;
} }
if (!this.parseDefaultValue.type) { if (!this.parseDefaultValue.type) {
delete this.value['value']; delete this.value['value'];
} else { } else {
@ -120,7 +124,9 @@ export default {
}, },
useDefault() { useDefault() {
this['parseDefaultValue'] = { type: '', endpoint: '' }; this['parseDefaultValue'] = {
type: '', endpoint: '', refreshIntervalInSeconds: 0
};
} }
} }
}; };
@ -139,6 +145,21 @@ export default {
:options="typeOption" :options="typeOption"
@update:value="update" @update:value="update"
/> />
<UnitInput
v-model:value="parseDefaultValue.refreshIntervalInSeconds"
:suffix="parseDefaultValue.refreshIntervalInSeconds <= 1 ? 'Second' : 'Seconds'"
:label="t('harvester.backup.refreshInterval.label')"
:mode="mode"
:positive="true"
class="mb-5"
required
@update:value="update"
/>
<Tip
class="mb-20"
icon="icon icon-info"
:text="t('harvester.backup.refreshInterval.tip')"
/>
<LabeledInput <LabeledInput
v-model:value="parseDefaultValue.endpoint" v-model:value="parseDefaultValue.endpoint"
class="mb-5" class="mb-5"

View File

@ -925,6 +925,9 @@ harvester:
label: Virtual Machine Backups label: Virtual Machine Backups
createText: Restore Backup createText: Restore Backup
title: Restore Virtual Machine title: Restore Virtual Machine
refreshInterval:
label: Refresh Interval
tip: The interval for the backup target to sync data to harvester cluster. Set to 0 to disable refresh mechanism.
backupTargetTip: The endpoint used to access the backupstore. NFS and S3 are supported. backupTargetTip: The endpoint used to access the backupstore. NFS and S3 are supported.
message: message:
noSetting: noSetting: