refactor: copilot review

Signed-off-by: Andy Lee <andy.lee@suse.com>
This commit is contained in:
Andy Lee 2026-07-31 17:18:13 +08:00
parent 3817269c0a
commit fbb4b7b41b
No known key found for this signature in database
GPG Key ID: 39DC4436AE3564D5
4 changed files with 23 additions and 15 deletions

View File

@ -7,14 +7,15 @@ import { STORAGE_CLASS, NETWORK_ATTACHMENT } from '@shell/config/types';
import { useI18n } from '@shell/composables/useI18n'; import { useI18n } from '@shell/composables/useI18n';
import { randomStr } from '@shell/utils/string'; import { randomStr } from '@shell/utils/string';
import { HCI } from '../../types'; import { HCI } from '../../types';
import { VOLUME_MODE, ACCESS_MODE } from '../../config/types';
import { FORKLIFT_NAMESPACE } from '../../config/harvester-map'; import { FORKLIFT_NAMESPACE } from '../../config/harvester-map';
import { buildNetworkMapEntries, buildStorageMapEntries } from '../../utils/forklift'; import { buildNetworkMapEntries, buildStorageMapEntries } from '../../utils/forklift';
import { isInternalStorageClass } from '../../utils/storage-class'; import { isInternalStorageClass } from '../../utils/storage-class';
import MappingColumn from './MappingColumn.vue'; import MappingColumn from './MappingColumn.vue';
import StorageDefaultsModal from './StorageDefaultsModal.vue'; import StorageDefaultsModal from './StorageDefaultsModal.vue';
const DEFAULT_VOLUME_MODE = 'Filesystem'; const DEFAULT_VOLUME_MODE = VOLUME_MODE.FILE_SYSTEM;
const DEFAULT_ACCESS_MODES = ['ReadWriteMany']; const DEFAULT_ACCESS_MODES = [ACCESS_MODE.READ_WRITE_MANY];
const props = defineProps({ const props = defineProps({
providerName: { type: String, default: '' }, providerName: { type: String, default: '' },
@ -190,7 +191,12 @@ const applyStorageDefaults = ({ volumeMode, accessModes }) => {
if (editingStorageEntry.value) { if (editingStorageEntry.value) {
editingStorageEntry.value.volumeMode = volumeMode; editingStorageEntry.value.volumeMode = volumeMode;
editingStorageEntry.value.accessModes = accessModes; editingStorageEntry.value.accessModes = accessModes;
editingStorageEntry.value.overridden = true;
const inheritedVolumeMode = editingStorageEntry.value.inheritedVolumeMode;
const inheritedAccessMode = editingStorageEntry.value.inheritedAccessModes?.[0];
const selectedAccessMode = accessModes?.[0];
editingStorageEntry.value.overridden = volumeMode !== inheritedVolumeMode || selectedAccessMode !== inheritedAccessMode;
} }
}; };

View File

@ -3,6 +3,7 @@ import { useStore } from 'vuex';
import LabeledSelect from '@shell/components/form/LabeledSelect'; import LabeledSelect from '@shell/components/form/LabeledSelect';
import { RcItemCard } from '@components/RcItemCard'; import { RcItemCard } from '@components/RcItemCard';
import { useI18n } from '@shell/composables/useI18n'; import { useI18n } from '@shell/composables/useI18n';
import { VOLUME_MODE } from '../../config/types';
const store = useStore(); const store = useStore();
const { t } = useI18n(store); const { t } = useI18n(store);
@ -46,7 +47,7 @@ const optionsFor = (entry) => {
}; };
const formatModes = (entry) => { const formatModes = (entry) => {
const volumeMode = entry.volumeMode || 'Filesystem'; const volumeMode = entry.volumeMode || VOLUME_MODE.FILE_SYSTEM;
const accessModes = (entry.accessModes || []).join(', '); const accessModes = (entry.accessModes || []).join(', ');
return t('harvester.addons.vmMigration.storageDefaults.summary', { volumeMode, accessModes }); return t('harvester.addons.vmMigration.storageDefaults.summary', { volumeMode, accessModes });

View File

@ -5,18 +5,19 @@ import { Card } from '@components/Card';
import LabeledSelect from '@shell/components/form/LabeledSelect'; import LabeledSelect from '@shell/components/form/LabeledSelect';
import AppModal from '@shell/components/AppModal'; import AppModal from '@shell/components/AppModal';
import { useI18n } from '@shell/composables/useI18n'; import { useI18n } from '@shell/composables/useI18n';
import { VOLUME_MODE, ACCESS_MODE } from '../../config/types';
const VOLUME_MODE_OPTIONS = ['Filesystem', 'Block']; const VOLUME_MODE_OPTIONS = [VOLUME_MODE.FILE_SYSTEM, VOLUME_MODE.BLOCK];
const ACCESS_MODE_OPTIONS = ['ReadWriteOnce', 'ReadWriteMany', 'ReadOnlyMany']; const ACCESS_MODE_OPTIONS = [ACCESS_MODE.READ_WRITE_ONCE, ACCESS_MODE.READ_WRITE_MANY, ACCESS_MODE.READ_ONLY_MANY];
const props = defineProps({ const props = defineProps({
storageClassName: { type: String, default: '' }, storageClassName: { type: String, default: '' },
providerName: { type: String, default: '' }, providerName: { type: String, default: '' },
showInherited: { type: Boolean, default: false }, showInherited: { type: Boolean, default: false },
volumeMode: { type: String, default: 'Filesystem' }, volumeMode: { type: String, default: VOLUME_MODE.FILE_SYSTEM },
accessModes: { type: Array, default: () => ['ReadWriteMany'] }, accessModes: { type: Array, default: () => [ACCESS_MODE.READ_WRITE_MANY] },
inheritedVolumeMode: { type: String, default: 'Filesystem' }, inheritedVolumeMode: { type: String, default: VOLUME_MODE.FILE_SYSTEM },
inheritedAccessModes: { type: Array, default: () => ['ReadWriteMany'] }, inheritedAccessModes: { type: Array, default: () => [ACCESS_MODE.READ_WRITE_MANY] },
}); });
const emit = defineEmits(['apply', 'close']); const emit = defineEmits(['apply', 'close']);
@ -24,8 +25,8 @@ const emit = defineEmits(['apply', 'close']);
const store = useStore(); const store = useStore();
const { t } = useI18n(store); const { t } = useI18n(store);
const localVolumeMode = ref(props.volumeMode || 'Filesystem'); const localVolumeMode = ref(props.volumeMode || VOLUME_MODE.FILE_SYSTEM);
const localAccessMode = ref(props.accessModes?.[0] || 'ReadWriteMany'); const localAccessMode = ref(props.accessModes?.[0] || ACCESS_MODE.READ_WRITE_MANY);
const volumeModeOptions = VOLUME_MODE_OPTIONS.map((value) => ({ label: value, value })); const volumeModeOptions = VOLUME_MODE_OPTIONS.map((value) => ({ label: value, value }));
const accessModeOptions = ACCESS_MODE_OPTIONS.map((value) => ({ label: value, value })); const accessModeOptions = ACCESS_MODE_OPTIONS.map((value) => ({ label: value, value }));
@ -40,8 +41,8 @@ const apply = () => {
// Repopulate the dropdowns with the provider default values; the user then applies. // Repopulate the dropdowns with the provider default values; the user then applies.
const reset = () => { const reset = () => {
localVolumeMode.value = props.inheritedVolumeMode || 'Filesystem'; localVolumeMode.value = props.inheritedVolumeMode || VOLUME_MODE.FILE_SYSTEM;
localAccessMode.value = props.inheritedAccessModes?.[0] || 'ReadWriteMany'; localAccessMode.value = props.inheritedAccessModes?.[0] || ACCESS_MODE.READ_WRITE_MANY;
}; };
const cancel = () => { const cancel = () => {