fix restore detail view and unset storagelocation when using existing baackup

remove ability to edit restore crs

change placement of deletetimeoutseconds
This commit is contained in:
Nancy Butler 2020-09-25 12:29:18 -07:00
parent 4c6643aa8e
commit b5b9c81f13
2 changed files with 25 additions and 13 deletions

View File

@ -52,10 +52,6 @@ export default {
this.allSecrets = hash.secrets; this.allSecrets = hash.secrets;
this.allBackups = hash.backups; this.allBackups = hash.backups;
this.apps = hash.apps; this.apps = hash.apps;
if (hash.backups.length) {
this.storageSource = 'useBackup';
}
}, },
data() { data() {
@ -73,6 +69,10 @@ export default {
}, },
computed: { computed: {
availableBackups() {
return this.allBackups.filter(backup => backup.state !== 'error');
},
chartNamespace() { chartNamespace() {
const BRORelease = this.apps.filter(release => get(release, 'spec.name') === 'rancher-backup')[0]; const BRORelease = this.apps.filter(release => get(release, 'spec.name') === 'rancher-backup')[0];
@ -91,7 +91,7 @@ export default {
const options = ['useDefault', 'configureS3']; const options = ['useDefault', 'configureS3'];
const labels = [this.t('backupRestoreOperator.restoreFrom.default'), this.t('backupRestoreOperator.restoreFrom.s3')]; const labels = [this.t('backupRestoreOperator.restoreFrom.default'), this.t('backupRestoreOperator.restoreFrom.s3')];
if (this.allBackups.length) { if (this.availableBackups.length) {
options.unshift('useBackup'); options.unshift('useBackup');
labels.unshift( this.t('backupRestoreOperator.restoreFrom.existing')); labels.unshift( this.t('backupRestoreOperator.restoreFrom.existing'));
} }
@ -106,11 +106,13 @@ export default {
storageSource(neu, old) { storageSource(neu, old) {
if (neu === 'useDefault') { if (neu === 'useDefault') {
delete this.value.spec.storageLocation; delete this.value.spec.storageLocation;
} else if (!this.value.spec.storageLocation) { } else if (!this.value.spec.storageLocation && neu === 'configureS3') {
this.$set(this.value.spec, 'storageLocation', { s3: {} }); this.$set(this.value.spec, 'storageLocation', { s3: {} });
this.s3 = this.value.spec.storageLocation.s3; this.s3 = this.value.spec.storageLocation.s3;
} }
if (neu === 'useBackup') { if (neu === 'useBackup') {
delete this.value.spec.storageLocation;
if (this.allBackups.length === 1) { if (this.allBackups.length === 1) {
this.updateTargetBackup(this.allBackups[0]); this.updateTargetBackup(this.allBackups[0]);
} }
@ -123,6 +125,12 @@ export default {
this.$set(this.value.spec, 'encryptionConfigSecretName', this.targetBackup.spec.encryptionConfigSecretName); this.$set(this.value.spec, 'encryptionConfigSecretName', this.targetBackup.spec.encryptionConfigSecretName);
} }
} }
},
availableBackups(neu, old) {
if (neu.length && !old.length) {
this.storageSource = 'useBackup';
}
} }
}, },
@ -131,7 +139,7 @@ export default {
if (get(neu, 'spec.storageLocation.s3')) { if (get(neu, 'spec.storageLocation.s3')) {
Object.assign(this.value.spec.storageLocation.s3, neu.spec.storageLocation.s3); Object.assign(this.value.spec.storageLocation.s3, neu.spec.storageLocation.s3);
} }
this.$set(this.value, 'spec', { ...this.value.spec, backupFilename: neu.status.filename }); this.$set(this.value, 'spec', { ...this.value.spec, backupFilename: neu?.status?.filename });
if (neu.spec.encryptionConfigSecretName) { if (neu.spec.encryptionConfigSecretName) {
this.$set(this.value, 'spec', { ...this.value.spec, encryptionConfigSecretName: neu.spec.encryptionConfigSecretName }); this.$set(this.value, 'spec', { ...this.value.spec, encryptionConfigSecretName: neu.spec.encryptionConfigSecretName });
@ -158,6 +166,7 @@ export default {
:label="t('backupRestoreOperator.s3.titles.backupLocation')" :label="t('backupRestoreOperator.s3.titles.backupLocation')"
:options="radioOptions.options" :options="radioOptions.options"
:labels="radioOptions.labels" :labels="radioOptions.labels"
:mode="mode"
/> />
</div> </div>
</div> </div>
@ -167,9 +176,9 @@ export default {
<div v-else-if="storageSource==='useBackup'" class="row mb-10"> <div v-else-if="storageSource==='useBackup'" class="row mb-10">
<div class="col span-6"> <div class="col span-6">
<LabeledSelect <LabeledSelect
:disabled="!allBackups.length" :disabled="!availableBackups.length"
:value="targetBackup" :value="targetBackup"
:options="allBackups" :options="availableBackups"
:mode="mode" :mode="mode"
option-label="metadata.name" option-label="metadata.name"
:label="t('backupRestoreOperator.targetBackup')" :label="t('backupRestoreOperator.targetBackup')"
@ -199,16 +208,14 @@ export default {
</div> </div>
<div :style="{'align-items':'center'}" class="row"> <div :style="{'align-items':'center'}" class="row">
<div class="col span-6"> <div class="col span-6">
<Checkbox v-model="value.spec.prune" :label="t('backupRestoreOperator.prune.label')" :mode="mode"> <Checkbox v-model="value.spec.prune" class="mb-5" :label="t('backupRestoreOperator.prune.label')" :mode="mode">
<template #label> <template #label>
<span v-tooltip="t('backupRestoreOperator.prune.tip')" class="text-label"> <span v-tooltip="t('backupRestoreOperator.prune.tip')" class="text-label">
{{ t('backupRestoreOperator.prune.label') }} <i class="icon icon-info" /> {{ t('backupRestoreOperator.prune.label') }} <i class="icon icon-info" />
</span> </span>
</template> </template>
</Checkbox> </Checkbox>
</div> <UnitInput v-if="value.spec.prune" v-model="value.spec.deleteTimeoutSeconds" :suffix="t('suffix.seconds')" :mode="mode" :label="t('backupRestoreOperator.deleteTimeout.label')">
<div v-if="value.spec.prune" class="col span-6">
<UnitInput v-model="value.spec.deleteTimeoutSeconds" :suffix="t('suffix.seconds')" :mode="mode" :label="t('backupRestoreOperator.deleteTimeout.label')">
<template #label> <template #label>
<label v-tooltip="t('backupRestoreOperator.deleteTimeout.tip')" class="has-tooltip"> <label v-tooltip="t('backupRestoreOperator.deleteTimeout.tip')" class="has-tooltip">
{{ t('backupRestoreOperator.deleteTimeout.label') }} <i class="icon icon-info" /> {{ t('backupRestoreOperator.deleteTimeout.label') }} <i class="icon icon-info" />

View File

@ -0,0 +1,5 @@
export default {
canUpdate() {
return false;
},
};