Skip to content

Commit 16737e4

Browse files
committed
fix(OperatingSystemFilter): RHINENG-2912 - Fix OS inventory filter conversion
1 parent b6b9dd0 commit 16737e4

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

src/Utilities/Helpers.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,15 +396,29 @@ export const buildFilterChips = (filters, search, searchChipLabel = 'Search') =>
396396
return filterConfig;
397397
};
398398

399+
export const buildOsFilter = (osFilter = {}) => {
400+
const osVersions = Object.entries(osFilter).reduce((acc, [, osGroupValues]) => {
401+
return [
402+
...acc,
403+
...Object.entries(osGroupValues).filter(([, value]) => (value === true)).map(([key]) => {
404+
const keyParts = key.split('-');
405+
return keyParts.slice(0, keyParts.length - 2) + ' ' + keyParts[keyParts.length - 1];
406+
})
407+
];
408+
}, []);
409+
410+
return osVersions.length > 0 ? {
411+
os: osVersions.join(',')
412+
} : {};
413+
};
414+
399415
export const buildApiFilters = (patchFilters, inventoryFilters) => (
400416
{
401417
...patchFilters,
402418
...(Array.isArray(inventoryFilters.hostGroupFilter) && inventoryFilters.hostGroupFilter.length > 0
403419
? { group_name: inventoryFilters.hostGroupFilter }
404420
: {}),
405-
...inventoryFilters?.osFilter?.length > 0 ? {
406-
os: inventoryFilters.osFilter.map(({ value }) => 'RHEL ' + value).join(',')
407-
} : {}
421+
...buildOsFilter(inventoryFilters?.osFilter)
408422
});
409423

410424
export const changeListParams = (oldParams, newParams) => {

src/Utilities/Helpers.test.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,12 @@ describe('buildApiFilters', () => {
408408
});
409409

410410
it('adds a os filter when the inventory is filtered by OS', () => {
411-
const osFilter = [{ value: '8.8' }, { value: '8.9' }];
411+
const osFilter = {
412+
'RHEL-8': {
413+
'RHEL-8-8.8': true,
414+
'RHEL-8-8.9': true
415+
}
416+
};
412417
const inventoryFilters = {
413418
osFilter
414419
};

0 commit comments

Comments
 (0)