Yes, the quotes definitely look funky. Thanks for bearing with me and my reading comprehension skills.
If this occurs on 1.7.1 or devel, can you file a bug on this one? This most definitely should not happen and we'll want to correct this. Thanks! On Wed, Sep 3, 2014 at 8:08 AM, Dan Bohea <[email protected]> wrote: > Sure. Once again for reference, here's that path from the error message: > > [u'/Volumes/Data/Projects/vlad/vlad/vlad/playbooks/"../settings.yml", > "../example.settings.yml"'] > > Disregarding the wrapping square brackets, the wrapping single quotes and > the preceding "u" gives us: > > /Volumes/Data/Projects/vlad/vlad/vlad/playbooks/"../settings.yml", > "../example.settings.yml" > > Now look at where the first and second double quotes are. That looks funky > to me. > > Surely the first element in the array should be entirely wrapped in double > quotes? Also, having '../' anywhere other than at the start of a path is > surely going to cause problems. > > It appears as if Ansible is prefixing an absolute path (the path to the > playbook making the call: /Volumes/Data/Projects/vlad/vlad/vlad/playbooks/) > to my expanded variable, irrespective of what my variable contains. This in > turn is making the expanded variable a bit garbled, hence the error. > > > On Wednesday, 3 September 2014 12:42:38 UTC+1, Michael DeHaan wrote: > >> "settings_files: '"../settings.yml", "../example.settings.yml"' >> >> It should be noted this is not a YAML list, and that is probably part of >> your problem. >> >> The path being an array of unicode elements does not look strange to me. >> Is there a particular path element in the list that looks strange to you? >> >> >> On Wed, Sep 3, 2014 at 5:28 AM, Dan Bohea <[email protected]> wrote: >> >>> Thanks for the suggestion but I already tried that and it results in a >>> huge error: >>> >>> Traceback (most recent call last): >>> File "/usr/local/Cellar/ansible/1.7.1/libexec/bin/ansible-playbook", >>> line 5, in <module> >>> pkg_resources.run_script('ansible==1.7.1', 'ansible-playbook') >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/ >>> Extras/lib/python/pkg_resources.py", line 489, in run_script >>> self.require(requires)[0].run_script(script_name, ns) >>> File "/System/Library/Frameworks/Python.framework/Versions/2.7/ >>> Extras/lib/python/pkg_resources.py", line 1207, in run_script >>> execfile(script_filename, namespace, namespace) >>> File "/usr/local/Cellar/ansible/1.7.1/lib/python2.7/site- >>> packages/ansible-1.7.1-py2.7.egg/EGG-INFO/scripts/ansible-playbook", >>> line 309, in <module> >>> sys.exit(main(sys.argv[1:])) >>> File "/usr/local/Cellar/ansible/1.7.1/lib/python2.7/site- >>> packages/ansible-1.7.1-py2.7.egg/EGG-INFO/scripts/ansible-playbook", >>> line 249, in main >>> pb.run() >>> File "/usr/local/Cellar/ansible/1.7.1/lib/python2.7/site- >>> packages/ansible-1.7.1-py2.7.egg/ansible/playbook/__init__.py", line >>> 339, in run >>> if not self._run_play(play): >>> File "/usr/local/Cellar/ansible/1.7.1/lib/python2.7/site- >>> packages/ansible-1.7.1-py2.7.egg/ansible/playbook/__init__.py", line >>> 646, in _run_play >>> play.update_vars_files(all_hosts, vault_password=self.vault_ >>> password) >>> File "/usr/local/Cellar/ansible/1.7.1/lib/python2.7/site- >>> packages/ansible-1.7.1-py2.7.egg/ansible/playbook/play.py", line 698, >>> in update_vars_files >>> self._update_vars_files_for_host(h, vault_password=vault_password) >>> File "/usr/local/Cellar/ansible/1.7.1/lib/python2.7/site- >>> packages/ansible-1.7.1-py2.7.egg/ansible/playbook/play.py", line 847, >>> in _update_vars_files_for_host >>> filename2, filename3, filename4 = generate_filenames(host, inject, >>> filename) >>> File "/usr/local/Cellar/ansible/1.7.1/lib/python2.7/site- >>> packages/ansible-1.7.1-py2.7.egg/ansible/playbook/play.py", line 775, >>> in generate_filenames >>> filename4 = utils.path_dwim(self.basedir, filename3) >>> File "/usr/local/Cellar/ansible/1.7.1/lib/python2.7/site- >>> packages/ansible-1.7.1-py2.7.egg/ansible/utils/__init__.py", line 318, >>> in path_dwim >>> if given.startswith("/"): >>> AttributeError: 'list' object has no attribute 'startswith' >>> >>> I'm guessing that this is the most useful part of that error: >>> >>> AttributeError: 'list' object has no attribute 'startswith' >>> >>> Out of curiosity, I wrapped each path string in the list with double >>> quotes but it results in pretty much the same thing. >>> >>> On Wednesday, 3 September 2014 07:24:16 UTC+1, Tomasz Kontusz wrote: >>>> >>>> >>>> >>>> Michael DeHaan <[email protected]> napisał: >>>> >What were you expecting? >>>> > >>>> >It's saying none of the files in the list were found and hitting an >>>> >error >>>> >condition, but I'm unclear which parts you find unusual. >>>> >>>> The path in the error looks strange ;-) >>>> >>>> >On Tue, Sep 2, 2014 at 11:05 AM, Dan Bohea <[email protected]> wrote: >>>> > >>>> >> So I just recently discovered how to list several possible >>>> >vars_files, >>>> >> with precedence, and where some may not exist: >>>> >> >>>> >> >>>> >> >>>> >http://serverfault.com/questions/589734/ansible-can-i-use- >>>> vars-files-when-some-files-do-not-exist >>>> >> >>>> >> Very handy. Where is the documentation for this? >>>> >> >>>> >> >>>> >> Next question... >>>> >> >>>> >> I'd like to centralise a list of possible vars_files in a single >>>> >variable >>>> >> but can't get it to work. E.g: >>>> >> >>>> >> vars_files: >>>> >> - [ "{{ settings_files }}" ] >>>> >> >>>> >> and then in say group_vars/all I have my files defined: >>>> >> >>>> >> settings_files: '"../settings.yml", "../example.settings.yml"' >>>> >>>> I think you want to create a list here, like this: >>>> >>>> settings_files: >>>> - ../settings.yml >>>> - ../example.settings.yml >>>> >>>> And then use it like this: >>>> >>>> vars_files: >>>> - "{{ settings_files }}" >>>> >>>> >> But that doesn't work - I get the following error: >>>> >> >>>> >> vlad: not importing file: >>>> >> /Volumes/Data/Projects/vlad/vlad/vlad/playbooks/"../settings.yml", >>>> >> "../example.settings.yml" >>>> >> ERROR: vlad: FATAL, no files matched for vars_files import sequence: >>>> >> [u'/Volumes/Data/Projects/vlad/vlad/vlad/playbooks/"../settings.yml", >>>> >>>> >> "../example.settings.yml"'] >>>> >> >>>> >> It looks like something is happening on expansion that I wasn't >>>> >expecting. >>>> >> >>>> >> I'm hoping this is just a question of syntax and I've messed around >>>> >with a >>>> >> few variations but am still having no luck. >>>> >> >>>> >> Can anyone help with this? Is it even possible? >>>> >> >>>> >> I'm running Ansible v1.7.1. >>>> >> >>>> >> -- >>>> >> 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/fce326b0- >>>> 5489-45b7-976c-58e8a3e11769%40googlegroups.com >>>> >> >>>> ><https://groups.google.com/d/msgid/ansible-project/fce326b0 >>>> -5489-45b7-976c-58e8a3e11769%40googlegroups.com?utm_medium=email&utm_ >>>> source=footer> >>>> >> . >>>> >> For more options, visit https://groups.google.com/d/optout. >>>> >> >>>> >>>> -- >>>> Wysłane za pomocą K-9 Mail. >>>> >>> -- >>> 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/68da09fe-bcbc-4ca5-a1ee- >>> 3e7ddaafb1eb%40googlegroups.com >>> <https://groups.google.com/d/msgid/ansible-project/68da09fe-bcbc-4ca5-a1ee-3e7ddaafb1eb%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/f2f992ff-7d73-47a4-83ba-43dbf1e59f4f%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/f2f992ff-7d73-47a4-83ba-43dbf1e59f4f%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%2BnsWgzfEATx06aujN9KWrqyYnau9f7pMjZxH1ADX6dNjLxeqA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
