Skip to content

Commit

Permalink
Refs #36789 - Add action to force appicability refresh for Debian pac…
Browse files Browse the repository at this point in the history
…kages
  • Loading branch information
nadjaheitmann authored and sbernhard committed Oct 16, 2024
1 parent 8676485 commit 44a04c6
Showing 1 changed file with 31 additions and 4 deletions.
35 changes: 31 additions & 4 deletions webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React, { useCallback, useState, useRef } from 'react';
import { useSelector } from 'react-redux';
import { useSelector, useDispatch } from 'react-redux';
import {
ActionList,
ActionListItem,
Expand All @@ -19,6 +19,7 @@ import {
import { TableVariant, Thead, Tbody, Tr, Th, Td, TableText } from '@patternfly/react-table';
import PropTypes from 'prop-types';
import { translate as __ } from 'foremanReact/common/I18n';
import { HOST_DETAILS_KEY } from 'foremanReact/components/HostDetails/consts';
import { selectAPIResponse } from 'foremanReact/redux/API/APISelectors';

import { urlBuilder } from 'foremanReact/common/urlHelpers';
Expand All @@ -44,6 +45,7 @@ import { hasRequiredPermissions as can,
userPermissionsFromHostDetails } from '../../hostDetailsHelpers';
import SortableColumnHeaders from '../../../../Table/components/SortableColumnHeaders';
import { useRexJobPolling } from '../RemoteExecutionHooks';
import { runSubmanRepos } from '../../Cards/ContentViewDetailsCard/HostContentViewActions';

export const hideDebsTab = ({ hostDetails }) => !(hostDetails?.operatingsystem_family === 'Debian');

Expand Down Expand Up @@ -197,6 +199,7 @@ export const DebsTab = () => {
const { results, ...metadata } = response;
const { error: errorSearchBody } = metadata;
const status = useSelector(state => selectHostDebsStatus(state));
const dispatch = useDispatch();
const {
selectOne,
isSelected,
Expand Down Expand Up @@ -269,6 +272,21 @@ export const DebsTab = () => {
isPolling: isInstallInProgress,
} = useRexJobPolling(packageInstallAction, getHostDetails({ hostname }));

const refreshHostDetails = () => dispatch({
type: 'API_GET',
payload: {
key: HOST_DETAILS_KEY,
url: `/api/hosts/${hostname}`,
},
});
const {
triggerJobStart: triggerRecalculate, lastCompletedJob: lastCompletedRecalculate,
} = useRexJobPolling(() => runSubmanRepos(hostname, refreshHostDetails));
const handleRefreshApplicabilityClick = () => {
setIsBulkActionOpen(false);
triggerRecalculate();
};

const actionInProgress = (isRemoveInProgress || isUpgradeInProgress
|| isBulkRemoveInProgress || isBulkUpgradeInProgress || isInstallInProgress);
const disabledReason = __('A remote execution job is in progress.');
Expand Down Expand Up @@ -345,7 +363,7 @@ export const DebsTab = () => {
</DropdownItem>,
];

const dropdownRemoveItems = [
const kebabItems = [
<DropdownItem
aria-label="bulk_remove"
ouiaId="bulk_remove"
Expand All @@ -366,6 +384,15 @@ export const DebsTab = () => {
>
{__('Install packages')}
</DropdownItem>,
<DropdownItem
aria-label="refresh_applicability"
ouiaId="refresh_applicability"
key="refresh_applicability"
component="button"
onClick={handleRefreshApplicabilityClick}
>
{__('Refresh package applicability')}
</DropdownItem>,
];

const handlePackageStatusSelected = newStatus => setPackageStatusSelected((prevStatus) => {
Expand Down Expand Up @@ -406,7 +433,7 @@ export const DebsTab = () => {
toggle={<KebabToggle aria-label="bulk_actions" onToggle={toggleBulkAction} />}
isOpen={isBulkActionOpen}
isPlain
dropdownItems={dropdownRemoveItems}
dropdownItems={kebabItems}
ouiaId="bulk_actions_dropdown"
/>
</ActionListItem>
Expand Down Expand Up @@ -461,7 +488,7 @@ export const DebsTab = () => {
additionalListeners={[hostId, packageStatusSelected,
activeSortDirection, activeSortColumn, lastCompletedPackageUpgrade,
lastCompletedPackageRemove, lastCompletedBulkPackageRemove,
lastCompletedBulkPackageUpgrade, lastCompletedPackageInstall]}
lastCompletedBulkPackageUpgrade, lastCompletedPackageInstall, lastCompletedRecalculate]}
fetchItems={fetchItems}
bookmarkController="katello_host_installed_debs"
readOnlyBookmarks={readOnlyBookmarks}
Expand Down

0 comments on commit 44a04c6

Please sign in to comment.