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"
/>
-
+