From 20557ee788383387c1cdd69563f05c0936c0045f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 14 Aug 2026 22:49:01 +0800 Subject: [PATCH] fix: ACCESS_MODE undefined error in forklift mapping page (#1111) (#1113) (cherry picked from commit f63be73b11f32295ffcf66af44aeb8a2bfb33434) Signed-off-by: Andy Lee Co-authored-by: Andy Lee --- .../vm-migration/ConfigureMappingsStep.vue | 10 +++++----- .../vm-migration/StorageDefaultsModal.vue | 16 +++++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/pkg/harvester/components/vm-migration/ConfigureMappingsStep.vue b/pkg/harvester/components/vm-migration/ConfigureMappingsStep.vue index 561e4dd0..59423376 100644 --- a/pkg/harvester/components/vm-migration/ConfigureMappingsStep.vue +++ b/pkg/harvester/components/vm-migration/ConfigureMappingsStep.vue @@ -15,7 +15,7 @@ import MappingColumn from './MappingColumn.vue'; import StorageDefaultsModal from './StorageDefaultsModal.vue'; const DEFAULT_VOLUME_MODE = VOLUME_MODE.FILE_SYSTEM; -const DEFAULT_ACCESS_MODES = [ACCESS_MODE.READ_WRITE_MANY]; +const DEFAULT_ACCESS_MODE = ACCESS_MODE?.READ_WRITE_MANY ?? 'ReadWriteMany'; const props = defineProps({ providerName: { type: String, default: '' }, @@ -268,9 +268,9 @@ const buildStorageEntries = () => { capacity: 0, target: '', volumeMode: DEFAULT_VOLUME_MODE, - accessModes: [...DEFAULT_ACCESS_MODES], + accessModes: [DEFAULT_ACCESS_MODE], inheritedVolumeMode: DEFAULT_VOLUME_MODE, - inheritedAccessModes: [...DEFAULT_ACCESS_MODES], + inheritedAccessModes: [DEFAULT_ACCESS_MODE], inheritedFromProvider: false, overridden: false, usedBy: [], @@ -310,9 +310,9 @@ const buildStorageEntriesFromProvider = (datastoresData) => { capacity: ds.capacity || 0, target: '', volumeMode: DEFAULT_VOLUME_MODE, - accessModes: [...DEFAULT_ACCESS_MODES], + accessModes: [DEFAULT_ACCESS_MODE], inheritedVolumeMode: DEFAULT_VOLUME_MODE, - inheritedAccessModes: [...DEFAULT_ACCESS_MODES], + inheritedAccessModes: [DEFAULT_ACCESS_MODE], inheritedFromProvider: false, overridden: false, usedBy: [], diff --git a/pkg/harvester/components/vm-migration/StorageDefaultsModal.vue b/pkg/harvester/components/vm-migration/StorageDefaultsModal.vue index 3226834c..030b1b53 100644 --- a/pkg/harvester/components/vm-migration/StorageDefaultsModal.vue +++ b/pkg/harvester/components/vm-migration/StorageDefaultsModal.vue @@ -8,16 +8,22 @@ import { useI18n } from '@shell/composables/useI18n'; import { VOLUME_MODE, ACCESS_MODE } from '../../config/types'; const VOLUME_MODE_OPTIONS = [VOLUME_MODE.FILE_SYSTEM, VOLUME_MODE.BLOCK]; -const ACCESS_MODE_OPTIONS = [ACCESS_MODE.READ_WRITE_ONCE, ACCESS_MODE.READ_WRITE_MANY, ACCESS_MODE.READ_ONLY_MANY]; +const { + READ_WRITE_ONCE = 'ReadWriteOnce', + READ_ONLY_MANY = 'ReadOnlyMany', + READ_WRITE_MANY = 'ReadWriteMany', + READ_WRITE_ONCE_POD = 'ReadWriteOncePod' +} = ACCESS_MODE || {}; +const ACCESS_MODE_OPTIONS = [READ_WRITE_ONCE, READ_WRITE_MANY, READ_ONLY_MANY, READ_WRITE_ONCE_POD]; const props = defineProps({ storageClassName: { type: String, default: '' }, providerName: { type: String, default: '' }, showInherited: { type: Boolean, default: false }, volumeMode: { type: String, default: VOLUME_MODE.FILE_SYSTEM }, - accessModes: { type: Array, default: () => [ACCESS_MODE.READ_WRITE_MANY] }, + accessModes: { type: Array, default: () => ['ReadWriteMany'] }, inheritedVolumeMode: { type: String, default: VOLUME_MODE.FILE_SYSTEM }, - inheritedAccessModes: { type: Array, default: () => [ACCESS_MODE.READ_WRITE_MANY] }, + inheritedAccessModes: { type: Array, default: () => ['ReadWriteMany'] }, }); const emit = defineEmits(['apply', 'close']); @@ -26,7 +32,7 @@ const store = useStore(); const { t } = useI18n(store); const localVolumeMode = ref(props.volumeMode || VOLUME_MODE.FILE_SYSTEM); -const localAccessMode = ref(props.accessModes?.[0] || ACCESS_MODE.READ_WRITE_MANY); +const localAccessMode = ref(props.accessModes?.[0] || READ_WRITE_MANY); const volumeModeOptions = VOLUME_MODE_OPTIONS.map((value) => ({ label: value, value })); const accessModeOptions = ACCESS_MODE_OPTIONS.map((value) => ({ label: value, value })); @@ -42,7 +48,7 @@ const apply = () => { // Repopulate the dropdowns with the provider default values; the user then applies. const reset = () => { localVolumeMode.value = props.inheritedVolumeMode || VOLUME_MODE.FILE_SYSTEM; - localAccessMode.value = props.inheritedAccessModes?.[0] || ACCESS_MODE.READ_WRITE_MANY; + localAccessMode.value = props.inheritedAccessModes?.[0] || READ_WRITE_MANY; }; const cancel = () => {