You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/lookup_dict/tasks/main.yml

57 lines
1.2 KiB
YAML

- name: Define users dict
set_fact:
users:
alice:
name: Alice
age: 21
bob:
name: Bob
age: 22
- name: Convert users dict to list
set_fact:
user_list: "{{ lookup('dict', users) | sort(attribute='key') }}"
- name: Verify results
assert:
that:
- user_list | length == 2
- user_list[0].key == 'alice'
- user_list[0].value | length == 2
- user_list[0].value.name == 'Alice'
- user_list[0].value.age == 21
- user_list[1].key == 'bob'
- user_list[1].value | length == 2
- user_list[1].value.name == 'Bob'
- user_list[1].value.age == 22
- name: Convert a non-dict (failure expected)
set_fact:
bad_fact: "{{ bbbbad }}"
vars:
bbbbad: "{{ lookup('dict', 1) }}"
register: result
ignore_errors: yes
- name: Verify conversion failed
assert:
that:
- result is failed
- name: Define simple dict
set_fact:
simple:
hello: World
- name: Convert using with_dict to cause terms to not be a list
set_fact:
hello: "{{ item }}"
with_dict: "{{ simple }}"
- name: Verify conversion
assert:
that:
- hello | length == 2
- hello.key == 'hello'
- hello.value == 'World'