From 1f8e278be604b47e3322b6686eb7484d700474c6 Mon Sep 17 00:00:00 2001 From: nofaralfasi Date: Sun, 30 Jun 2024 13:41:04 +0300 Subject: [PATCH] Fixes #37612 - Fix deletion of Ansible variables from Host page - Use `isEqual` for deep comparison when matching variable values, ensuring correct behavior during variable deletion. - Add `defaultValue` field to GraphQL mutation, for proper display after Ansible variable deletion. --- .../AnsibleVariableOverridesTableHelper.js | 5 +++-- .../__test__/AnsibleVariableOverrides.fixtures.js | 1 + webpack/graphql/mutations/deleteAnsibleVariableOverride.gql | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/AnsibleVariableOverridesTableHelper.js b/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/AnsibleVariableOverridesTableHelper.js index 4864c2601..15077e8f3 100644 --- a/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/AnsibleVariableOverridesTableHelper.js +++ b/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/AnsibleVariableOverridesTableHelper.js @@ -1,4 +1,5 @@ import React from 'react'; +import { isEqual } from 'lodash'; import { TimesIcon, CheckIcon } from '@patternfly/react-icons'; import { sprintf, translate as __ } from 'foremanReact/common/I18n'; @@ -48,7 +49,7 @@ export const onCompleted = onSubmitSuccess => response => { message: formatError(joinErrors(errors)), }); } else { - onSubmitSuccess(overridenAnsibleVariable.currentValue.value); + onSubmitSuccess(overridenAnsibleVariable.defaultValue); showToast({ type: 'success', message: __('Ansible variable override was successfully deleted.'), @@ -59,7 +60,7 @@ export const onCompleted = onSubmitSuccess => response => { export const findOverride = (variable, hostname) => variable.lookupValues.nodes.find( item => - item.value === variable.currentValue.value && + isEqual(item.value, variable.currentValue.value) && item.match === `fqdn=${hostname}` ); diff --git a/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/__test__/AnsibleVariableOverrides.fixtures.js b/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/__test__/AnsibleVariableOverrides.fixtures.js index 7ccd4b3d8..2e54becc2 100644 --- a/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/__test__/AnsibleVariableOverrides.fixtures.js +++ b/webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/__test__/AnsibleVariableOverrides.fixtures.js @@ -309,6 +309,7 @@ export const deleteMocks = [ overridenAnsibleVariable: { __typename: 'OverridenAnsibleVariable', id: ansibleVariableId, + defaultValue: 101, currentValue: { __typename: 'AnsibleVariableOverride', element: 'os', diff --git a/webpack/graphql/mutations/deleteAnsibleVariableOverride.gql b/webpack/graphql/mutations/deleteAnsibleVariableOverride.gql index 76b303e9b..507ff796c 100644 --- a/webpack/graphql/mutations/deleteAnsibleVariableOverride.gql +++ b/webpack/graphql/mutations/deleteAnsibleVariableOverride.gql @@ -3,6 +3,7 @@ mutation DeleteAnsibleVariableOverride($id: ID!, $hostId: Int!, $variableId: Int id overridenAnsibleVariable { id + defaultValue currentValue { value element