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].
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/c3a88154-c475-495e-a1ef-2319adf744c4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to