That worked perfectly -- thanks so much!
On Friday, December 2, 2016 at 11:40:38 AM UTC-8, Matt Martz wrote:
>
> There is no built in way to do this, however with a new custom filter,
> maybe you can get it:
>
> def dict_path(my_dict, path=None):
> if path is None:
> path = []
> for k, v in my_dict.iteritems():
> newpath = path + [k]
> if isinstance(v, dict):
> for u in dict_path(v, newpath):
> yield u
> else:
> yield newpath, v
>
> class FilterModule(object):
> def filters(self):
> return {
> 'dict_path': dict_path
> }
>
> And then a playbook that makes use of this:
>
> ---
> - hosts: all
> vars:
> somevar:
> alpha:
> beta:
> gamma:
> foo1: bar1
> foo2: bar2
> red:
> green:
> blue:
> baz1: quz1
> baz2: quz2
> tasks:
> - debug:
> msg: "{{ item.0|join('/') }} => {{ item.1 }}"
> with_items:
> - "{{ somevar|dict_path|list }}"
>
> Results in the output of (restricted to 1 item from the loop for brevity):
>
> ok: [localhost] => (item=([u'alpha', u'beta', u'gamma', u'foo1'],
> u'bar1')) => {
> "item": [
> [
> "alpha",
> "beta",
> "gamma",
> "foo1"
> ],
> "bar1"
> ],
> "msg": "alpha/beta/gamma/foo1 => bar1"
> }
>
> with that, you could derive a playbook that makes those paths, puts the
> values into files, etc...
>
>
> On Fri, Dec 2, 2016 at 1:03 PM, Mike Titus <[email protected]
> <javascript:>> wrote:
>
>> Given this YAML:
>>
>> somevar:
>>> alpha:
>>> beta:
>>> gamma:
>>> foo1: bar1
>>> foo2: bar2
>>> red:
>>> green:
>>> blue:
>>> baz1: quz1
>>> baz2: quz2
>>
>>
>> I want to construct strings of the full key paths:
>>
>> somevar/alpha/beta/gamma
>>> somevar/red/green/blue
>>
>>
>> Thanks.
>>
>> --
>> 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] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ansible-project/789e9f46-0246-4f33-abd0-f7ca961b6363%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/ansible-project/789e9f46-0246-4f33-abd0-f7ca961b6363%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Matt Martz
> @sivel
> sivel.net
>
--
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/df580647-0fc3-45fa-9ee0-3a3ee1a552e6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.