Cast the resulting intersect set into a list

When using Ansible with python3, the result of
the intersect filter is a set, not a list. This
causes a failure when trying to access item 0
in the list.

In this patch we cast the set to a list before
accessing item 0. This will work for both
python2 and python3.

Change-Id: Ida1b877d41521c284f6c91377ca7ccfc5a6bcecd
This commit is contained in:
Jesse Pretorius 2017-07-06 18:15:31 +01:00
parent b388953c28
commit 09cb727198

View File

@ -55,7 +55,7 @@
when:
- "groups['cinder_api'] | length > 0"
- "'cinder_api' in group_names"
- "inventory_hostname == (groups['cinder_api'] | intersect(ansible_play_hosts))[0]"
- "inventory_hostname == ((groups['cinder_api'] | intersect(ansible_play_hosts)) | list)[0]"
tags:
- cinder-config
@ -64,7 +64,7 @@
when:
- "groups['cinder_api'] | length > 0"
- "'cinder_api' in group_names"
- "inventory_hostname == (groups['cinder_api'] | intersect(ansible_play_hosts))[0]"
- "inventory_hostname == ((groups['cinder_api'] | intersect(ansible_play_hosts)) | list)[0]"
tags:
- cinder-config
@ -80,7 +80,7 @@
when:
- "groups['cinder_volume'] | length > 0"
- "'cinder_volume' in group_names"
- "inventory_hostname == (groups['cinder_volume'] | intersect(ansible_play_hosts))[0]"
- "inventory_hostname == ((groups['cinder_volume'] | intersect(ansible_play_hosts)) | list)[0]"
tags:
- cinder-config