Skip to content

Commit

Permalink
Refs #32982 - Fix conflicts after rebase
Browse files Browse the repository at this point in the history
  • Loading branch information
Ondrej Prazak authored and tbrisker committed Oct 12, 2021
1 parent c88f96e commit db6b97b
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 22 deletions.
12 changes: 6 additions & 6 deletions app/graphql/mutations/ansible_variable_overrides/delete.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ class Delete < ::Mutations::DeleteMutation

def resolve(id:, host_id:, variable_id:)
host = Host.find_by :id => host_id
var = AnsibleVariable.find_by :id => variable_id
variable = AnsibleVariable.find_by :id => variable_id
return resource_not_found(_('Host not found by id: %s'), host_id) unless host
return resource_not_found(_('Ansible Variable not found by id: %s'), variable_id) unless var
return resource_not_found(_('Ansible Variable not found by id: %s'), variable_id) unless variable
authorize!(host, :view)
authorize!(var, :edit)
authorize!(variable, :edit)

res = super id: id
resolver = ::ForemanAnsible::OverrideResolver.new(host, [var])
res.merge :overriden_ansible_variable => ::OverridenAnsibleVariablePresenter.new(var, resolver)
result = super id: id
resolver = ::ForemanAnsible::OverrideResolver.new(host, [variable.id])
result.merge :overriden_ansible_variable => ::OverridenAnsibleVariablePresenter.new(variable, resolver)
end

def resource_not_found(message)
Expand Down
6 changes: 3 additions & 3 deletions app/services/foreman_ansible/override_resolver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ module ForemanAnsible
class OverrideResolver
attr_reader :overrides, :ansible_variables

def initialize(host, variables = [])
def initialize(host, variable_ids = [])
raise(Foreman::Exception.new('OverrideResolver needs a host to resolve overrides')) unless host
@ansible_variables = if variables.empty?
@ansible_variables = if variable_ids.empty?
AnsibleVariable.where(:ansible_role_id => host.all_ansible_roles, :override => true)
else
variables
AnsibleVariable.where(:ansible_role_id => variable_ids, :override => true)
end
@overrides = @ansible_variables.values_hash(host).raw
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import {
findOverride,
} from './AnsibleVariableOverridesTableHelper';

import { decodeId } from '../../../../globalIdHelper';
import { decodeModelId } from '../../../../globalIdHelper';

import ConfirmModal from '../../../ConfirmModal';

Expand Down Expand Up @@ -70,7 +70,7 @@ const AnsibleVariableOverridesTable = ({ variables, hostAttrs, hostId }) => {
{variables.map(variable => (
<Tr key={variable.key}>
<Td>{variable.key}</Td>
<Td>{variable.roleName}</Td>
<Td>{variable.ansibleRoleName}</Td>
<Td>{variable.parameterType}</Td>
<Td>{formatValue(variable)}</Td>
<Td>{formatSourceAttr(variable)}</Td>
Expand All @@ -96,7 +96,7 @@ const AnsibleVariableOverridesTable = ({ variables, hostAttrs, hostId }) => {
variables: {
id: findOverride(toDelete, hostAttrs.name).id,
hostId,
variableId: decodeId(toDelete),
variableId: decodeModelId(toDelete),
},
})
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@ const TestComponent = withRedux(withMockedProvider(AnsibleVariableOverrides));
describe('AnsibleVariableOverrides', () => {
it('should show skeleton when page is loading', () => {
const { container } = render(
<TestComponent showToast={jest.fn()} id={hostId} hostAttrs={{}} />
<TestComponent
showToast={jest.fn()}
hostId={hostId}
hostAttrs={hostAttrs}
/>
);
expect(
container.getElementsByClassName('react-loading-skeleton')
Expand All @@ -21,7 +25,7 @@ describe('AnsibleVariableOverrides', () => {
render(
<TestComponent
showToast={jest.fn()}
id={hostId}
hostId={hostId}
mocks={mocks}
hostAttrs={hostAttrs}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ const TestComponent = withRedux(withMockedProvider(AnsibleVariableOverrides));

describe('AnsibleVariableOverrides', () => {
it('should open and close delete modal', async () => {
render(<TestComponent mocks={mocks} id={hostId} hostAttrs={hostAttrs} />);
render(
<TestComponent mocks={mocks} hostId={hostId} hostAttrs={hostAttrs} />
);
await waitFor(tick);
userEvent.click(screen.getAllByRole('button', { name: 'Actions' })[0]);
userEvent.click(screen.getByText('Delete'));
Expand All @@ -39,7 +41,7 @@ describe('AnsibleVariableOverrides', () => {
render(
<TestComponent
mocks={mocks.concat(deleteMocks)}
id={hostId}
hostId={hostId}
hostAttrs={hostAttrs}
/>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ import { encodeId } from '../../../../globalIdHelper';
import { extractVariables } from './AnsibleVariableOverridesHelper';
import './AnsibleVariableOverrides.scss';

const AnsibleVariableOverrides = ({ id, hostAttrs }) => {
const AnsibleVariableOverrides = ({ hostId, hostAttrs }) => {
const { loading, data, error } = useQuery(variableOverrides, {
variables: {
hostId: id,
id: encodeId('Host', id),
hostId,
id: encodeId('Host', hostId),
match: `fqdn=${hostAttrs.name}`,
},
});
Expand All @@ -30,14 +30,14 @@ const AnsibleVariableOverrides = ({ id, hostAttrs }) => {
return (
<AnsibleVariableOverridesTable
variables={extractVariables(data.host.allAnsibleRoles.nodes)}
hostId={id}
hostId={hostId}
hostAttrs={hostAttrs}
/>
);
};

AnsibleVariableOverrides.propTypes = {
id: PropTypes.number.isRequired,
hostId: PropTypes.number.isRequired,
hostAttrs: PropTypes.object.isRequired,
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const SecondaryTabRoutes = ({ response, router }) => (
</Route>
<Route path={route('variables')}>
<TabLayout>
<AnsibleVariableOverrides id={response.id} />
<AnsibleVariableOverrides hostId={response.id} hostAttrs={response} />
</TabLayout>
</Route>
<Route path={route('inventory')}>
Expand Down
2 changes: 2 additions & 0 deletions webpack/globalIdHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ const idSeparator = '-';
const versionSeparator = ':';
const defaultVersion = '01';

export const decodeModelId = model => decodeId(model.id);

export const decodeId = id => {
const split = atob(id).split(idSeparator);
return parseInt(split[split.length - 1], 10);
Expand Down

0 comments on commit db6b97b

Please sign in to comment.