From 57ad445c51a3929c22ef118aed2a5bff47464adb Mon Sep 17 00:00:00 2001 From: Nancy Butler <42977925+mantis-toboggan-md@users.noreply.github.com> Date: Tue, 8 Sep 2020 11:29:36 -0700 Subject: [PATCH] backup/restore pr feedback --- edit/resources.cattle.io.restore.vue | 73 ++++++++++++---------------- 1 file changed, 31 insertions(+), 42 deletions(-) diff --git a/edit/resources.cattle.io.restore.vue b/edit/resources.cattle.io.restore.vue index c965a26229..fb043da462 100644 --- a/edit/resources.cattle.io.restore.vue +++ b/edit/resources.cattle.io.restore.vue @@ -9,10 +9,9 @@ import LabeledSelect from '@/components/form/LabeledSelect'; import Banner from '@/components/Banner'; import RadioGroup from '@/components/form/RadioGroup'; import { mapGetters } from 'vuex'; -import { SECRET, BACKUP_RESTORE, NAMESPACE } from '@/config/types'; +import { SECRET, BACKUP_RESTORE } from '@/config/types'; import { allHash } from '@/utils/promise'; import { get, isEmpty } from '@/utils/object'; -import { sortBy } from '@/utils/sort'; export default { components: { @@ -25,6 +24,7 @@ export default { Banner, RadioGroup }, + mixins: [createEditView], props: { @@ -51,11 +51,6 @@ export default { }, data() { - if (!this.value.metadata) { - const namespace = this.$store.getters['defaultNamespace']; - - this.$set(this.value, 'metadata', { namespace }); - } if (!this.value.spec) { this.$set(this.value, 'spec', { prune: true, deleteTimeoutSeconds: 10 }); } @@ -73,42 +68,35 @@ export default { }, computed: { - namespacedSecretNames() { - return this.allSecrets.filter(secret => secret.namespace === this.value?.metadata?.namespace).map(secret => secret.metadata.name); + credentialSecret: { + get() { + const { credentialSecretName, credentialSecretNamespace } = this.s3; + + return { metadata: { name: credentialSecretName, namespace: credentialSecretNamespace } }; + }, + + set(neu) { + const { name, namespace } = neu.metadata; + + this.$set(this.s3, 'credentialSecretName', name); + this.$set(this.s3, 'credentialSecretNamespace', namespace); + } + }, + + encryptionSecretNames() { + return this.allSecrets.filter(secret => !!secret.data['encryption-provider-config.yaml']).map(secret => secret.metadata.name); }, namespacedBackups() { return this.allBackups.filter(backup => backup.namespace === this.value?.metadata?.namespace); }, - namespaces() { - const choices = this.$store.getters['cluster/all'](NAMESPACE); - - const out = sortBy(choices.map((obj) => { - return { - label: obj.nameDisplay, - value: obj.id, - }; - }), 'label'); - - return out; - }, - showWarning() { - if (this.targetBackup) { - return this.targetBackup?.spec?.encryptionConfigName && this.targetBackup?.spec?.encryptionConfigName !== this.value.spec.encryptionConfigName; - } else { - return true; - } + return this.isEncrypted && !this.value.spec.encryptionConfigName; }, - // if there is a target backup selected and it doesn't have encryptionConfigName, assume its not encrypted - disableEncryptionInput() { - if (this.targetBackup) { - return !this.targetBackup?.spec?.encryptionConfigName; - } - - return false; + isEncrypted() { + return !!((this.value.spec.backupFilename || '').match(/.*\.enc$/)); }, radioOptions() { @@ -144,11 +132,6 @@ export default {