Skip to content

Commit 76ffc72

Browse files
Merge pull request #13418 from SanjalKatiyar/remove_odf_ns
OCPBUGS-25881: remove "openshift-storage" namespace usage from the console
2 parents a3b2364 + fd10cff commit 76ffc72

3 files changed

Lines changed: 31 additions & 23 deletions

File tree

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import * as _ from 'lodash';
21
import { StorageClass } from '@console/internal/components/storage-class-form';
32

43
export const cephStorageProvisioners = [
@@ -7,16 +6,11 @@ export const cephStorageProvisioners = [
76
'rbd.csi.ceph.com',
87
];
98

10-
const objectStorageProvisioners = [
11-
'openshift-storage.noobaa.io/obc',
12-
'openshift-storage.ceph.rook.io/bucket',
13-
];
9+
const objectStorageProvisioners = ['noobaa.io/obc', 'ceph.rook.io/bucket'];
1410

1511
// To check if the provisioner is OCS based
16-
export const isCephProvisioner = (scProvisioner: string): boolean => {
17-
return cephStorageProvisioners.some((provisioner: string) =>
18-
_.endsWith(scProvisioner, provisioner),
19-
);
20-
};
12+
export const isCephProvisioner = (scProvisioner: string): boolean =>
13+
cephStorageProvisioners.some((provisioner: string) => scProvisioner?.includes(provisioner));
2114

22-
export const isObjectSC = (sc: StorageClass) => objectStorageProvisioners.includes(sc.provisioner);
15+
export const isObjectSC = (sc: StorageClass) =>
16+
objectStorageProvisioners.some((provisioner: string) => sc.provisioner?.includes(provisioner));

frontend/public/components/storage/create-pvc.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { StorageClassDropdown } from '../utils/storage-class-dropdown';
2020
import { Checkbox } from '../checkbox';
2121
import { PersistentVolumeClaimModel } from '../../models';
2222
import { StorageClass } from '../storage-class-form';
23-
import { provisionerAccessModeMapping, initialAccessModes, dropdownUnits } from './shared';
23+
import { getProvisionerModeMapping, initialAccessModes, dropdownUnits } from './shared';
2424

2525
const NameValueEditorComponent = (props) => (
2626
<AsyncComponent
@@ -116,7 +116,7 @@ export const CreatePVCForm: React.FC<CreatePVCFormProps> = (props) => {
116116
const handleStorageClass = (updatedStorageClass) => {
117117
const provisioner: string = updatedStorageClass?.provisioner || '';
118118
//setting message to display for various modes when a storage class of a know provisioner is selected
119-
const displayMessage = provisionerAccessModeMapping[provisioner]
119+
const displayMessage = getProvisionerModeMapping(provisioner)
120120
? `${t('public~Access mode is set by StorageClass and cannot be changed')}`
121121
: `${t('public~Permissions to the mounted drive')}`;
122122
setAccessModeHelp(displayMessage);

frontend/public/components/storage/shared.ts

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,18 @@ type VolumeMode = 'Filesystem' | 'Block';
1313
export const initialAccessModes: AccessMode[] = ['ReadWriteOnce', 'ReadWriteMany', 'ReadOnlyMany'];
1414
export const initialVolumeModes: VolumeMode[] = ['Filesystem', 'Block'];
1515

16+
type PartialMatch = { partialMatch?: boolean };
1617
type ModeMapping = {
1718
[volumeMode in VolumeMode]?: AccessMode[];
1819
};
20+
type AccessModeMapping = ModeMapping & PartialMatch;
1921

2022
type ProvisionerAccessModeMapping = {
21-
[provisioner: string]: ModeMapping;
23+
[provisioner: string]: AccessModeMapping;
2224
};
2325

2426
// See https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes for more details
25-
export const provisionerAccessModeMapping: ProvisionerAccessModeMapping = {
27+
export const provisionerAccessModeMapping: ProvisionerAccessModeMapping = Object.freeze({
2628
'kubernetes.io/no-provisioner': {
2729
Filesystem: ['ReadWriteOnce'],
2830
Block: ['ReadWriteOnce'],
@@ -100,14 +102,16 @@ export const provisionerAccessModeMapping: ProvisionerAccessModeMapping = {
100102
Filesystem: ['ReadWriteOnce'],
101103
Block: ['ReadWriteOnce'],
102104
},
103-
'openshift-storage.cephfs.csi.ceph.com': {
105+
'cephfs.csi.ceph.com': {
104106
Filesystem: ['ReadWriteOnce', 'ReadWriteMany', 'ReadOnlyMany'],
107+
partialMatch: true,
105108
},
106-
'openshift-storage.rbd.csi.ceph.com': {
109+
'rbd.csi.ceph.com': {
107110
Filesystem: ['ReadWriteOnce', 'ReadOnlyMany'],
108111
Block: ['ReadWriteOnce', 'ReadWriteMany', 'ReadOnlyMany'],
112+
partialMatch: true,
109113
},
110-
};
114+
});
111115

112116
export const getAccessModeRadios = () => [
113117
{
@@ -141,17 +145,27 @@ export const dropdownUnits = {
141145
Ti: 'TiB',
142146
};
143147

144-
const getProvisionerAccessModeMapping = (provisioner: string): ModeMapping => {
145-
return provisionerAccessModeMapping[provisioner] || {};
146-
};
148+
export const getProvisionerModeMapping = (provisioner: string): ModeMapping =>
149+
_.omit(
150+
_.find(provisionerAccessModeMapping, (value: AccessModeMapping, key: string) => {
151+
if (value?.partialMatch && provisioner?.includes(key)) {
152+
return true;
153+
}
154+
if (key === provisioner) {
155+
return true;
156+
}
157+
return false;
158+
}) || {},
159+
'partialMatch',
160+
);
147161

148162
export const getAccessModeForProvisioner = (
149163
provisioner: string,
150164
ignoreReadOnly?: boolean,
151165
volumeMode?: string,
152166
): AccessMode[] => {
153167
let accessModes: AccessMode[];
154-
const modeMapping: ModeMapping = getProvisionerAccessModeMapping(provisioner);
168+
const modeMapping: ModeMapping = getProvisionerModeMapping(provisioner);
155169

156170
if (!_.isEmpty(modeMapping)) {
157171
accessModes = volumeMode
@@ -174,7 +188,7 @@ export const getVolumeModeForProvisioner = (
174188
provisioner: string,
175189
accessMode: string,
176190
): VolumeMode[] => {
177-
const modeMapping: ModeMapping = getProvisionerAccessModeMapping(provisioner);
191+
const modeMapping: ModeMapping = getProvisionerModeMapping(provisioner);
178192

179193
if (!_.isEmpty(modeMapping)) {
180194
return accessMode

0 commit comments

Comments
 (0)