mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-27 23:21:22 -07:00
Feature filter remove_keys (#8443)
* Add filter remove_keys. * Add filter remove_keys integration test, fragment, and maintainer. * Update with plugins/plugin_utils/keys_filter.py * Update according PR #8456 * Update maintainers. * Fix typo in return doc. * Remove local keys_filter.py. Then rebase. * Add local keys_filter.py * Update plugins/filter/remove_keys.py Co-authored-by: Felix Fontein <felix@fontein.de> * Update plugins/filter/remove_keys.py Co-authored-by: Felix Fontein <felix@fontein.de> --------- Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
1c4ab7fafc
commit
06f13e79b1
6 changed files with 264 additions and 0 deletions
5
tests/integration/targets/filter_remove_keys/aliases
Normal file
5
tests/integration/targets/filter_remove_keys/aliases
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
azp/posix/2
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Test remove_keys
|
||||
import_tasks: remove_keys.yml
|
|
@ -0,0 +1,79 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Debug ansible_version
|
||||
ansible.builtin.debug:
|
||||
var: ansible_version
|
||||
when: not quite_test | d(true) | bool
|
||||
tags: ansible_version
|
||||
|
||||
- name: Test remove keys equal (default)
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- (rr | difference(result1) | length) == 0
|
||||
success_msg: |
|
||||
[OK] result:
|
||||
{{ rr | to_yaml }}
|
||||
fail_msg: |
|
||||
[ERR] result:
|
||||
{{ rr | to_yaml }}
|
||||
quiet: "{{ quiet_test | d(true) | bool }}"
|
||||
vars:
|
||||
rr: "{{ list1 | community.general.remove_keys(target=tt) }}"
|
||||
tt: [k0_x0, k1_x1]
|
||||
tags: equal_default
|
||||
|
||||
- name: Test remove keys regex string
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- (rr | difference(result1) | length) == 0
|
||||
success_msg: |
|
||||
[OK] result:
|
||||
{{ rr | to_yaml }}
|
||||
fail_msg: |
|
||||
[ERR] result:
|
||||
{{ rr | to_yaml }}
|
||||
quiet: "{{ quiet_test | d(true) | bool }}"
|
||||
vars:
|
||||
rr: "{{ list1 | community.general.remove_keys(target=tt, matching_parameter=mp) }}"
|
||||
mp: regex
|
||||
tt: '^.*[01]_x.*$'
|
||||
tags: regex_string
|
||||
|
||||
- name: Test remove keys targets1
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- (rr | difference(result1) | length) == 0
|
||||
success_msg: |
|
||||
[OK] result:
|
||||
{{ rr | to_yaml }}
|
||||
fail_msg: |
|
||||
[ERR] result:
|
||||
{{ rr | to_yaml }}
|
||||
quiet: "{{ quiet_test | d(true) | bool }}"
|
||||
loop: "{{ targets1 }}"
|
||||
loop_control:
|
||||
label: "{{ item.mp }}: {{ item.tt }}"
|
||||
vars:
|
||||
rr: "{{ list1 | community.general.remove_keys(target=item.tt, matching_parameter=item.mp) }}"
|
||||
tags: targets1
|
||||
|
||||
- name: Test remove keys targets2
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- (rr | difference(result2) | length) == 0
|
||||
success_msg: |
|
||||
[OK] result:
|
||||
{{ rr | to_yaml }}
|
||||
fail_msg: |
|
||||
[ERR] result:
|
||||
{{ rr | to_yaml }}
|
||||
quiet: "{{ quiet_test | d(true) | bool }}"
|
||||
loop: "{{ targets2 }}"
|
||||
loop_control:
|
||||
label: "{{ item.mp }}: {{ item.tt }}"
|
||||
vars:
|
||||
rr: "{{ list2 | community.general.remove_keys(target=item.tt, matching_parameter=item.mp) }}"
|
||||
tags: targets1
|
33
tests/integration/targets/filter_remove_keys/vars/main.yml
Normal file
33
tests/integration/targets/filter_remove_keys/vars/main.yml
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
targets1:
|
||||
- {mp: equal, tt: [k0_x0, k1_x1]}
|
||||
- {mp: starts_with, tt: [k0, k1]}
|
||||
- {mp: ends_with, tt: [x0, x1]}
|
||||
- {mp: regex, tt: ['^.*[01]_x.*$']}
|
||||
- {mp: regex, tt: '^.*[01]_x.*$'}
|
||||
|
||||
list1:
|
||||
- {k0_x0: A0, k1_x1: B0, k2_x2: [C0], k3_x3: foo}
|
||||
- {k0_x0: A1, k1_x1: B1, k2_x2: [C1], k3_x3: bar}
|
||||
|
||||
result1:
|
||||
- {k2_x2: [C0], k3_x3: foo}
|
||||
- {k2_x2: [C1], k3_x3: bar}
|
||||
|
||||
targets2:
|
||||
- {mp: equal, tt: k0_x0}
|
||||
- {mp: starts_with, tt: k0}
|
||||
- {mp: ends_with, tt: x0}
|
||||
- {mp: regex, tt: '^.*0_x.*$'}
|
||||
|
||||
list2:
|
||||
- {k0_x0: A0, k1_x1: B0, k2_x2: [C0], k3_x3: foo}
|
||||
- {k0_x0: A1, k1_x1: B1, k2_x2: [C1], k3_x3: bar}
|
||||
|
||||
result2:
|
||||
- {k1_x1: B0, k2_x2: [C0], k3_x3: foo}
|
||||
- {k1_x1: B1, k2_x2: [C1], k3_x3: bar}
|
Loading…
Add table
Add a link
Reference in a new issue