diff --git a/files/set_facts.sh b/files/set_facts.sh index ffbef4c..fed1f2f 100644 --- a/files/set_facts.sh +++ b/files/set_facts.sh @@ -8,18 +8,17 @@ function file_content { if [ ! -z "$NETWORKS" ]; then echo "{" echo " \"node_id\":\"${NODE_STATUS[2]}\"," - echo " \"networks\": [" + echo " \"networks\": {" while read -r; do network=($REPLY) - echo " {" - echo " \"id\":\"${network[2]}\"," - echo " \"status\":\"${network[5]}\"" - echo " }" + echo " \"${network[2]}\": {" + echo " \"status\":\"${network[5]}\"" + echo " }" done <<< $NETWORKS - echo " ]" + echo " }" echo "}" else - echo "{\"node_id\":\"${NODE_STATUS[2]}\"}" + echo "{\"node_id\":\"${NODE_STATUS[2]}\",\"networks\":{}}" fi } diff --git a/tasks/authorize_node.yml b/tasks/authorize_node.yml index a4cd763..d114e25 100644 --- a/tasks/authorize_node.yml +++ b/tasks/authorize_node.yml @@ -1,6 +1,6 @@ --- - block: - - name: Authorize members to network + - name: Authorize new members to network uri: url: "{{ zerotier_api_url }}/api/network/{{ zerotier_network_id }}/member/{{ ansible_local.zerotier.node_id }}" method: POST @@ -13,6 +13,8 @@ body_format: json register: auth_apiresult delegate_to: "{{ zerotier_api_delegate }}" + when: + - ansible_local.zerotier.networks[zerotier_network_id] is not defined or ansible_local.zerotier.networks[zerotier_network_id].status != 'OK' - name: Configure members in network uri: