mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2026-10-01 03:36:04 +08:00
chore: disable vmstate-persistence and longhorn-static StorageClasses (#377)
* chore: disable vmstate-persistence and longhorn-static StorageClasses Signed-off-by: Nick Chung <nick.chung@suse.com> * chore: allow internal storage class deletions in image and volumn Signed-off-by: Nick Chung <nick.chung@suse.com> * chore: remove deletion tooltips in image and volume pages Signed-off-by: Nick Chung <nick.chung@suse.com> * chore: rollback style changes of image and volume lists Signed-off-by: Nick Chung <nick.chung@suse.com> --------- Signed-off-by: Nick Chung <nick.chung@suse.com>
This commit is contained in:
@@ -83,6 +83,34 @@ export default {
|
||||
:rows="rows"
|
||||
:schema="schema"
|
||||
:headers="headers"
|
||||
/>
|
||||
>
|
||||
<template #cell:name="{ row }">
|
||||
<td>
|
||||
<div>
|
||||
<router-link
|
||||
v-if="row?.detailLocation"
|
||||
:to="row.detailLocation"
|
||||
>
|
||||
{{ row.nameDisplay }}
|
||||
<i
|
||||
v-if="row.isInternalStorageClass && typeof row.isInternalStorageClass === 'function' ? row.isInternalStorageClass() : false"
|
||||
v-clean-tooltip="t('harvester.storage.internal.cannotDeleteOrDefaultTooltip')"
|
||||
class="icon icon-info text-info"
|
||||
style="margin-left: 0.4em;"
|
||||
/>
|
||||
</router-link>
|
||||
<span v-else>
|
||||
{{ row.nameDisplay }}
|
||||
<i
|
||||
v-if="row.isInternalStorageClass && typeof row.isInternalStorageClass === 'function' ? row.isInternalStorageClass() : false"
|
||||
v-clean-tooltip="t('harvester.storage.internal.cannotDeleteOrDefaultTooltip')"
|
||||
class="icon icon-info text-info"
|
||||
style="margin-left: 0.4em;"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</template>
|
||||
</ResourceTable>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -3,6 +3,8 @@ import ResourceTable from '@shell/components/ResourceTable';
|
||||
import { Banner } from '@components/Banner';
|
||||
import { defaultTableSortGenerationFn } from '@shell/components/ResourceTable.vue';
|
||||
import FilterLabel from '../components/FilterLabel';
|
||||
import { HCI as HCI_ANNOTATIONS } from '../config/labels-annotations';
|
||||
import { isInternalStorageClass } from '../utils/storage-class';
|
||||
|
||||
export default {
|
||||
name: 'ListHarvesterImage',
|
||||
@@ -53,6 +55,13 @@ export default {
|
||||
|
||||
return base;
|
||||
},
|
||||
|
||||
isInternalStorageClass(row) {
|
||||
const name = row?.spec?.targetStorageClassName ||
|
||||
row?.metadata?.annotations?.[HCI_ANNOTATIONS.STORAGE_CLASS];
|
||||
|
||||
return isInternalStorageClass(name);
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -8,6 +8,7 @@ import { STATE, AGE, NAME, NAMESPACE } from '@shell/config/table-headers';
|
||||
import HarvesterVolumeState from '../formatters/HarvesterVolumeState';
|
||||
import { allSettled } from '../utils/promise';
|
||||
import { HCI, VOLUME_SNAPSHOT } from '../types';
|
||||
import { INTERNAL_STORAGE_CLASS } from '../config/types';
|
||||
|
||||
const schema = {
|
||||
id: HCI.VOLUME,
|
||||
@@ -130,6 +131,10 @@ export default {
|
||||
|
||||
getVMName(row) {
|
||||
return row.attachVM?.metadata?.name || '';
|
||||
},
|
||||
|
||||
isInternalStorageClass(storageClassName) {
|
||||
return this.$store.getters['type-map/labelFor'](INTERNAL_STORAGE_CLASS, storageClassName);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -170,7 +175,7 @@ export default {
|
||||
</router-link>
|
||||
</div>
|
||||
</template>
|
||||
<template #col:name="{row}">
|
||||
<template #col:name="{ row }">
|
||||
<td>
|
||||
<span>
|
||||
<router-link
|
||||
|
||||
Reference in New Issue
Block a user