From 935550d20dc3e398bf81fdf09dfe913bee1bf911 Mon Sep 17 00:00:00 2001 From: Nathaniel Date: Sat, 9 May 2015 15:51:17 -0500 Subject: [PATCH] Update set_fact.py Context: I recently discovered that when setting a fact, key=value pairs and complex arguments differ in how the fact is stored. For example, when attempting to use complex arguments using key=values, the result can be stored as a unicode string as opposed to an object/list/etc. I'm hoping the above example update will better demonstrate to and instruct people to use complex arguments instead of key=value pairs in certain situations. --- lib/ansible/modules/utilities/logic/set_fact.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/utilities/logic/set_fact.py b/lib/ansible/modules/utilities/logic/set_fact.py index ea67cc43a3f..f9124ab0ea5 100644 --- a/lib/ansible/modules/utilities/logic/set_fact.py +++ b/lib/ansible/modules/utilities/logic/set_fact.py @@ -40,12 +40,13 @@ version_added: "1.2" EXAMPLES = ''' # Example setting host facts using key=value pairs -- set_fact: one_fact="something" other_fact="{{ local_var * 2 }}" +- set_fact: one_fact="something" other_fact="{{ local_var }}" # Example setting host facts using complex arguments - set_fact: one_fact: something other_fact: "{{ local_var * 2 }}" + another_fact: "{{ some_registered_var.results | map(attribute='ansible_facts.some_fact') | list }}" # As of 1.8, Ansible will convert boolean strings ('true', 'false', 'yes', 'no') # to proper boolean values when using the key=value syntax, however it is still