Implement schedulingVMBackup feature flag

Signed-off-by: Francesco Torchia <francesco.torchia@suse.com>
This commit is contained in:
Francesco Torchia 2024-11-11 11:46:54 +01:00
parent a694288162
commit 780106f32a
No known key found for this signature in database
GPG Key ID: E6D011B7415D4393
3 changed files with 43 additions and 10 deletions

View File

@ -124,12 +124,18 @@ export default {
align: 'left', align: 'left',
formatter: 'AttachVMWithName' formatter: 'AttachVMWithName'
}, },
{ ];
if (this.schedulingVMBackupFeatureEnabled) {
cols.push({
name: 'backupCreatedFrom', name: 'backupCreatedFrom',
labelKey: 'harvester.tableHeaders.vmSchedule', labelKey: 'harvester.tableHeaders.vmSchedule',
value: 'sourceSchedule', value: 'sourceSchedule',
formatter: 'BackupCreatedFrom', formatter: 'BackupCreatedFrom',
}, });
}
cols.push(...[
{ {
name: 'backupTarget', name: 'backupTarget',
labelKey: 'tableHeaders.backupTarget', labelKey: 'tableHeaders.backupTarget',
@ -144,7 +150,7 @@ export default {
align: 'center', align: 'center',
formatter: 'Checked', formatter: 'Checked',
}, },
]; ]);
if (this.hasBackupProgresses) { if (this.hasBackupProgresses) {
cols.push({ cols.push({
@ -155,11 +161,16 @@ export default {
formatter: 'HarvesterBackupProgressBar', formatter: 'HarvesterBackupProgressBar',
}); });
} }
cols.push(AGE); cols.push(AGE);
return cols; return cols;
}, },
schedulingVMBackupFeatureEnabled() {
return this.$store.getters['harvester-common/getFeatureEnabled']('schedulingVMBackup');
},
hasBackupProgresses() { hasBackupProgresses() {
return !!this.backups.find((r) => r.status?.progress !== undefined); return !!this.backups.find((r) => r.status?.progress !== undefined);
}, },
@ -244,7 +255,10 @@ export default {
key-field="_key" key-field="_key"
default-sort-by="age" default-sort-by="age"
> >
<template #more-header-middle> <template
v-if="schedulingVMBackupFeatureEnabled"
#more-header-middle
>
<FilterVMSchedule <FilterVMSchedule
:rows="getRawRows" :rows="getRawRows"
@change-rows="changeRows" @change-rows="changeRows"

View File

@ -58,7 +58,7 @@ export default {
computed: { computed: {
headers() { headers() {
return [ const cols = [
STATE, STATE,
NAME, NAME,
NAMESPACE, NAMESPACE,
@ -70,13 +70,19 @@ export default {
sort: 'attachVM', sort: 'attachVM',
formatter: 'AttachVMWithName' formatter: 'AttachVMWithName'
}, },
{ ];
if (this.schedulingVMBackupFeatureEnabled) {
cols.push({
name: 'backupCreatedFrom', name: 'backupCreatedFrom',
labelKey: 'harvester.tableHeaders.vmSchedule', labelKey: 'harvester.tableHeaders.vmSchedule',
value: 'sourceSchedule', value: 'sourceSchedule',
sort: 'sourceSchedule', sort: 'sourceSchedule',
formatter: 'BackupCreatedFrom', formatter: 'BackupCreatedFrom',
}, });
}
cols.push(...[
{ {
name: 'readyToUse', name: 'readyToUse',
labelKey: 'tableHeaders.readyToUse', labelKey: 'tableHeaders.readyToUse',
@ -86,7 +92,13 @@ export default {
formatter: 'Checked', formatter: 'Checked',
}, },
AGE AGE
]; ]);
return cols;
},
schedulingVMBackupFeatureEnabled() {
return this.$store.getters['harvester-common/getFeatureEnabled']('schedulingVMBackup');
}, },
getRawRows() { getRawRows() {
@ -142,7 +154,10 @@ export default {
key-field="_key" key-field="_key"
default-sort-by="age" default-sort-by="age"
> >
<template #more-header-middle> <template
v-if="schedulingVMBackupFeatureEnabled"
#more-header-middle
>
<FilterVMSchedule <FilterVMSchedule
:rows="getRawRows" :rows="getRawRows"
@change-rows="changeRows" @change-rows="changeRows"

View File

@ -168,7 +168,7 @@ export default class VirtVm extends HarvesterResource {
}, },
{ {
action: 'createSchedule', action: 'createSchedule',
enabled: true, enabled: this.schedulingVMBackupFeatureEnabled,
icon: 'icon icon-history', icon: 'icon icon-history',
label: this.t('harvester.action.createSchedule') label: this.t('harvester.action.createSchedule')
}, },
@ -1147,6 +1147,10 @@ export default class VirtVm extends HarvesterResource {
} }
} }
get schedulingVMBackupFeatureEnabled() {
return this.$rootGetters['harvester-common/getFeatureEnabled']('schedulingVMBackup');
}
setInstanceLabels(val) { setInstanceLabels(val) {
if ( !this.spec?.template?.metadata?.labels ) { if ( !this.spec?.template?.metadata?.labels ) {
set(this, 'spec.template.metadata.labels', {}); set(this, 'spec.template.metadata.labels', {});