hello ok i did some more debugging. looks like an bug.
the combination uri, with_items and when is the problem using only two of them work fine server -> is a straight forward dict. On Wednesday, December 20, 2017 at 5:01:01 PM UTC+1, Matt Martz wrote: > Seeing the output of the debug task could probably be helpful for > answering your question. > > On Wed, Dec 20, 2017 at 9:02 AM, Mark Eisenblätter <[email protected] > <javascript:>> wrote: > >> Ok forget: >> ansible-playbook 2.4.1.0 >> >> >> On Wednesday, December 20, 2017 at 4:01:04 PM UTC+1, Mark Eisenblätter >> wrote: >>> >>> hello list, >>> >>> i have a strage problem. >>> # do we need to readd server to cluster in case of rebuild >>> - name: get etcd server >>> set_fact: >>> etcd_server: "{{ lookup('get_serverip_by_group', zone, >>> 'kubernetes_etcd', wantlist=True)}}" >>> >>> # Get ETCD Members >>> - name: get all members from ETCD Cluster >>> uri: >>> url: http://{{ item }}:2379/v2/members >>> register: etcd_members >>> with_items: "{{ etcd_server }}" >>> when: etcd_members is not defined or etcd_members.failed >>> ignore_errors: true >>> >>> - debug: var=etcd_members >>> >>> - name: did i get members? >>> fail: msg="NO Members found" >>> when: '"failed" in etcd_members.results[-1] and >>> etcd_members.results[-1].failed == true' >>> >>> - name: body template >>> template: >>> src: "{{ playbook_dir }}/templates/add_etcd_member.json.j2" >>> dest: "{{ playbook_dir }}/tmp/add_etcd_member-{{ server['name'] >>> }}.json" >>> when: lookup('get_id_from_etcd_api', etcd_members.results, >>> server['name']) == None >>> >>> - debug: var=server >>> >>> # add ETCD member >>> - name: add member >>> uri: >>> url: http://{{ item }}:2379/v2/members >>> method: POST >>> body_fromat: json >>> body: "{{ lookup('file', playbook_dir + '/tmp/add_etcd_member-' >>> + server['name'] * '.json') }}" >>> register: etcd_add >>> with_items: "{{ etcd_server }}" >>> when: lookup('get_id_from_etcd_api', etcd_members.results, >>> server['name']) == None >>> #- (etcd_add is not defined or etcd_add.failed) >>> ignore_errors: true >>> >>> - debug: var=etcd_add >>> >>> - name: "did i delete member: {{ server['name'] }}?" >>> fail: msg="did not delete {{ server['name'] }}" >>> when: '"failed" in etcd_add.results[-1] and >>> etcd_add.results[-1].failed == true' >>> >>> >>> in module template the when clause works fine, but in the URI it casues >>> an errer >>> >>> fatal: [localhost]: FAILED! => {"failed": true, "msg": "The conditional >>> check 'lookup('get_id_from_etcd_api', etcd_members.results, server['name']) >>> == None' failed. The error was: error while evaluating conditional >>> (lookup('get_id_from_etcd_api', etcd_members.results, server['name']) == >>> None): 'ansible.utils.unsafe_proxy.AnsibleUnsafeText object' has no >>> attribute 'name'\n\nThe error appears to have been in >>> '/build/tasks/add_etcd_to_cluster.yaml': line 35, column 7, but may\nbe >>> elsewhere in the file depending on the exact syntax problem.\n\nThe >>> offending line appears to be:\n\n # add ETCD member\n - name: add >>> member\n ^ here\n"} >>> >>> >>> but i have no idea why it works the first time and not the second? >>> >>> server['name'] is there i use it on many parts and it is working fine >>> everywhere else. >>> >>> >>> thanks in advanced, >>> mark >>> >> -- >> 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/3d6aad3e-6daa-4fca-a441-74898e70aa4d%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ansible-project/3d6aad3e-6daa-4fca-a441-74898e70aa4d%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/4a17dd39-3a63-4056-8b3b-f1ad50c53ce1%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
