mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2026-08-16 12:49:14 +00:00
refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
This commit is contained in:
parent
3817269c0a
commit
fbb4b7b41b
@ -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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -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 });
|
||||||
|
|||||||
@ -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 = () => {
|
||||||
|
|||||||
@ -1987,7 +1987,7 @@ harvester:
|
|||||||
title: 'Storage defaults — {name}'
|
title: 'Storage defaults — {name}'
|
||||||
description: 'Set the volume mode and access modes applied to every datastore in this storage map that maps to {name}.'
|
description: 'Set the volume mode and access modes applied to every datastore in this storage map that maps to {name}.'
|
||||||
descriptionInherited: 'Applies to every datastore in this storage map that maps to {name}. The provider default for {provider} stays unchanged.'
|
descriptionInherited: 'Applies to every datastore in this storage map that maps to {name}. The provider default for {provider} stays unchanged.'
|
||||||
summary: 'Volume mode : {volumeMode} · Access mode : {accessModes}'
|
summary: 'Volume mode: {volumeMode} · Access mode: {accessModes}'
|
||||||
inherited: 'Inherited from provider {provider}'
|
inherited: 'Inherited from provider {provider}'
|
||||||
volumeMode: Volume Mode
|
volumeMode: Volume Mode
|
||||||
accessMode: Access Mode
|
accessMode: Access Mode
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user