mirror of
https://github.com/ansible/awx.git
synced 2026-03-21 10:57:36 -02:30
Merge pull request #12942 from Tioborto/fix/ui-host-vent-modal
fix: UI host event modal when stdout is an array
This commit is contained in:
@@ -40,6 +40,8 @@ const processCodeEditorValue = (value) => {
|
|||||||
codeEditorValue = '';
|
codeEditorValue = '';
|
||||||
} else if (typeof value === 'string') {
|
} else if (typeof value === 'string') {
|
||||||
codeEditorValue = encode(value);
|
codeEditorValue = encode(value);
|
||||||
|
} else if (Array.isArray(value)) {
|
||||||
|
codeEditorValue = encode(value.join(' '));
|
||||||
} else {
|
} else {
|
||||||
codeEditorValue = value;
|
codeEditorValue = value;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,6 +52,60 @@ const hostEvent = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Some libraries return a list of string in stdout
|
||||||
|
Example: https://github.com/ansible-collections/cisco.ios/blob/main/plugins/modules/ios_command.py#L124-L128
|
||||||
|
*/
|
||||||
|
const hostEventWithArray = {
|
||||||
|
changed: true,
|
||||||
|
event: 'runner_on_ok',
|
||||||
|
event_data: {
|
||||||
|
host: 'foo',
|
||||||
|
play: 'all',
|
||||||
|
playbook: 'run_command.yml',
|
||||||
|
res: {
|
||||||
|
ansible_loop_var: 'item',
|
||||||
|
changed: true,
|
||||||
|
item: '1',
|
||||||
|
msg: 'This is a debug message: 1',
|
||||||
|
stdout: [
|
||||||
|
' total used free shared buff/cache available\nMem: 7973 3005 960 30 4007 4582\nSwap: 1023 0 1023',
|
||||||
|
],
|
||||||
|
stderr: 'problems',
|
||||||
|
cmd: ['free', '-m'],
|
||||||
|
stderr_lines: [],
|
||||||
|
stdout_lines: [
|
||||||
|
' total used free shared buff/cache available',
|
||||||
|
'Mem: 7973 3005 960 30 4007 4582',
|
||||||
|
'Swap: 1023 0 1023',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
task: 'command',
|
||||||
|
task_action: 'command',
|
||||||
|
},
|
||||||
|
event_display: 'Host OK',
|
||||||
|
event_level: 3,
|
||||||
|
failed: false,
|
||||||
|
host: 1,
|
||||||
|
host_name: 'foo',
|
||||||
|
id: 123,
|
||||||
|
job: 4,
|
||||||
|
play: 'all',
|
||||||
|
playbook: 'run_command.yml',
|
||||||
|
stdout: `stdout: "[0;33mchanged: [localhost] => {"changed": true, "cmd": ["free", "-m"], "delta": "0:00:01.479609", "end": "2019-09-10 14:21:45.469533", "rc": 0, "start": "2019-09-10 14:21:43.989924", "stderr": "", "stderr_lines": [], "stdout": " total used free shared buff/cache available\nMem: 7973 3005 960 30 4007 4582\nSwap: 1023 0 1023", "stdout_lines": [" total used free shared buff/cache available", "Mem: 7973 3005 960 30 4007 4582", "Swap: 1023 0 1023"]}[0m"
|
||||||
|
`,
|
||||||
|
task: 'command',
|
||||||
|
type: 'job_event',
|
||||||
|
url: '/api/v2/job_events/123/',
|
||||||
|
summary_fields: {
|
||||||
|
host: {
|
||||||
|
id: 1,
|
||||||
|
name: 'foo',
|
||||||
|
description: 'Bar',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
/* eslint-disable no-useless-escape */
|
/* eslint-disable no-useless-escape */
|
||||||
const jsonValue = `{
|
const jsonValue = `{
|
||||||
\"ansible_loop_var\": \"item\",
|
\"ansible_loop_var\": \"item\",
|
||||||
@@ -281,4 +335,25 @@ describe('HostEventModal', () => {
|
|||||||
expect(codeEditor.prop('readOnly')).toBe(true);
|
expect(codeEditor.prop('readOnly')).toBe(true);
|
||||||
expect(codeEditor.prop('value')).toEqual('baz\nbar');
|
expect(codeEditor.prop('value')).toEqual('baz\nbar');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should display Standard Out array stdout content', () => {
|
||||||
|
const wrapper = shallow(
|
||||||
|
<HostEventModal
|
||||||
|
hostEvent={hostEventWithArray}
|
||||||
|
onClose={() => {}}
|
||||||
|
isOpen
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
const handleTabClick = wrapper.find('Tabs').prop('onSelect');
|
||||||
|
handleTabClick(null, 2);
|
||||||
|
wrapper.update();
|
||||||
|
|
||||||
|
const codeEditor = wrapper.find('Tab[eventKey=2] CodeEditor');
|
||||||
|
expect(codeEditor.prop('mode')).toBe('javascript');
|
||||||
|
expect(codeEditor.prop('readOnly')).toBe(true);
|
||||||
|
expect(codeEditor.prop('value')).toEqual(
|
||||||
|
hostEventWithArray.event_data.res.stdout.join(' ')
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user