2016-04-25 8 views
0

Ich möchte Maßnahmen für einen Ordner ergreifen, wenn es leer ist. Also versuche ich Conditionals auf folders-stats zu verwenden. Die Ordner werden mit einem Wörterbuch erstellt.Zugriff auf Wörterbuch-Statistiken in Ansible

- name: Statistics of folder 
    stat: path=/srv/svn/{{ ansible_fqdn }}/{{ item.value.reponame }} 
    with_dict: "{{ repos }}" 
    register: result 

- name: Create repository, if not already 
    command: svnadmin create /srv/svn/{{ ansible_fqdn }}/{{ item.value.reponame }} 
    with_dict: "{{ repos }}" 
    when: result.stat.size == "6" 
# ignore_errors: True 

- debug: var=repos 

Wenn ich an der Debug-Ausgabe sehe ich „Größe“ für meinen Zustand verwenden kann. Aber beim Ausführen bekomme ich folgende Fehlermeldung:

'dict object' has no attribute 'stat' 

Vielleicht hat es mit der "Liste" von 3 Verzeichnissen zu tun? Ich habe keine Ideen mehr.

Meine Problemumgehung besteht darin, keine Bedingung und ignore_errors zu verwenden, da es beim zweiten Durchlauf bereits ein Repository ist.

+0

Dies ist, weil das Ergebnis eine Liste sein wird, jedes Mal, wenn Sie Ihr Diktat durchlaufen, erstellen Sie ein neues 'result [n]'. Ich bin mir auch nicht sicher, ob eine Überprüfung von 'result.stat.size == 6' so zuverlässig wäre. – shaps

Antwort

0

Das funktioniert für mich.

result.results[0].stat.size 
result.results[1].stat.size 
result.results[2].stat.size 
... 
result.results[n].stat.size 
+0

Aber ich kann am Anfang nicht sagen, wie viele Artikel es gibt ... und das ist egal - ich will um es für jeden Gegenstand zu tun. – pwe