diff --git a/pkg/harvester/components/settings/storage-network.vue b/pkg/harvester/components/settings/storage-network.vue index 57ffc017..ae3bb837 100644 --- a/pkg/harvester/components/settings/storage-network.vue +++ b/pkg/harvester/components/settings/storage-network.vue @@ -64,6 +64,9 @@ export default { try { parsedDefaultValue = JSON.parse(this.value.value); + if (typeof parsedDefaultValue.exclusiveVlan !== 'boolean') { + parsedDefaultValue.exclusiveVlan = false; + } networkType = 'vlan' in parsedDefaultValue ? L2VLAN : UNTAGGED; // backend doesn't provide networkType, so we check if vlan is provided instead openVlan = true; } catch (error) { @@ -72,7 +75,8 @@ export default { vlan: '', clusterNetwork: '', range: '', - exclude: [] + exclude: [], + exclusiveVlan: false }; } const exclude = parsedDefaultValue?.exclude?.toString().split(',') || []; @@ -94,6 +98,10 @@ export default { }, computed: { + showExclusiveVlan() { + return this.networkType === L2VLAN && + Number(this.parsedDefaultValue.vlan) !== 1; + }, showVlan() { return this.networkType === L2VLAN; }, @@ -132,6 +140,18 @@ export default { }; }); }, + exclusiveVlanOptions() { + return [ + { + label: this.t('generic.enabled'), + value: true + }, + { + label: this.t('generic.disabled'), + value: false + } + ]; + }, }, watch: { @@ -174,7 +194,8 @@ export default { vlan: '', clusterNetwork: '', range: '', - exclude: [] + exclude: [], + exclusiveVlan: false }; }, @@ -280,7 +301,15 @@ export default { label-key="harvester.setting.storageNetwork.vlan" @update:value="inputVlan" /> - +