When typing these up, please include an English description of what you expect and what you get, and a short summary, otherwise it can be very difficult to interpret the playbooks.
On Fri, Apr 18, 2014 at 2:56 PM, Jim Kleckner <[email protected]> wrote: > I realize now I should have sent this to the devel list. > Will send an issue and proposed patch. > > diff --git a/lib/ansible/callbacks.py b/lib/ansible/callbacks.py > index 1abfe68..cbfd315 100644 > --- a/lib/ansible/callbacks.py > +++ b/lib/ansible/callbacks.py > @@ -643,7 +643,7 @@ class PlaybookCallbacks(object): > > def on_vars_prompt(self, varname, private=True, prompt=None, > encrypt=None, confirm=False, salt_size=None, salt=None, default=None): > > - if prompt and default: > + if prompt and default is not None: > msg = "%s [%s]: " % (prompt, default) > elif prompt: > msg = "%s: " % prompt > > > > On Friday, April 18, 2014 11:41:24 AM UTC-7, Jim Kleckner wrote: >> >> See the input and output below for some oddity with vars_prompt. >> >> First, note that yes is being coerced to True but no results in a >> missing default. >> Quoting it works around this at the expense of no longer being boolean. >> >> Second, would it make sense to have a boolean option to have vars_prompt >> do the smart coercion of yes/no/true/false to boolean? >> I find that the result being a string requires pushing | bool down >> through the code. >> >> Thanks, Jim >> >> >> --- >> - name: Default values of prompts >> hosts: localhost >> gather_facts: no >> vars_prompt: >> - name: yes_val_from_prompt >> prompt: Test for boolean value - enter yes or no >> default: yes >> private: no >> # Bug? Why does the default value not get printed? >> - name: no_val_from_prompt >> prompt: Test for boolean value - enter yes or no >> default: no >> private: no >> - name: yes_string_val_from_prompt >> prompt: Test for boolean value - enter yes or no >> default: "yes" >> private: no >> # Bug? Why does the default value not get printed? >> - name: no_string_val_from_prompt >> prompt: Test for boolean value - enter yes or no >> default: "no" >> private: no >> tasks: >> - debug: var=yes_val_from_prompt >> - debug: var=no_val_from_prompt >> - debug: var=yes_string_val_from_prompt >> - debug: var=no_string_val_from_prompt >> >> >> Results in: >> >> >> ansible-playbook -i inv test_prompt_no_default.yml >> >> Test for boolean value - enter yes or no [True]: >> Test for boolean value - enter yes or no: <======= Missing default >> Test for boolean value - enter yes or no [yes]: >> Test for boolean value - enter yes or no [no]: >> >> PLAY [Default values of prompts] ****************************** >> **************** >> >> TASK: [debug var=yes_val_from_prompt] ****************************** >> *********** >> ok: [127.0.0.1] => { >> "yes_val_from_prompt": "True" <========== coerced to True >> } >> >> TASK: [debug var=no_val_from_prompt] ****************************** >> ************ >> ok: [127.0.0.1] => { >> "no_val_from_prompt": "" <======== Missing default >> } >> >> TASK: [debug var=yes_string_val_from_prompt] >> ********************************** >> ok: [127.0.0.1] => { >> "yes_string_val_from_prompt": "yes" <======= Not coerced to True >> (asexpected >> ) >> } >> >> TASK: [debug var=no_string_val_from_prompt] >> *********************************** >> ok: [127.0.0.1] => { >> "no_string_val_from_prompt": "no" >> } >> >> PLAY RECAP ************************************************************ >> ******** >> >> 127.0.0.1 : ok=4 changed=0 unreachable=0 failed >> =0 >> >> >> -- > You received this message because you are subscribed to the Google Groups > "Ansible Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/462b1836-ed1c-4173-8bae-800106ab8f7f%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/462b1836-ed1c-4173-8bae-800106ab8f7f%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgx9xkSYRKv0-LnYrwonyhchEMi%2BDXX%3DaZNnqxd%3DKH_CuA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
