--- - name: Convert Scan Time to Local Time ansible.builtin.set_fact: scan_time: |- {%- if inbound_data.scan.tz != ('%z' | strftime | string) -%} {%- set adjust_time = scan_address.ipaddress.lastSeen -%} {%- if ('%z' | strftime)[0:1] == '+' -%} {{ '%Y-%m-%d %H:%M:%S' | strftime( (adjust_time | to_datetime).strftime('%s') | int - ( (inbound_data.scan.tz[1:3] | int * 3600) + (inbound_data.scan.tz[3:5] | int * 60) ) | int ) }} {%- else -%} {{ '%Y-%m-%d %H:%M:%S' | strftime((adjust_time | to_datetime).strftime('%s') | int + ( (inbound_data.scan.tz[1:3] | int * 3600) + (inbound_data.scan.tz[3:5] | int * 60) ) | int) }} {%- endif -%} {%- else -%} {{ scan_address.ipaddress.lastSeen }} {%- endif %} cacheable: false - name: "Update IP Address' found - {{ scan_address.ipaddress.ip }}" community.mysql.mysql_query: login_host: "{{ nofusscomputing_phpipam_scan_server.mysql_host }}" login_port: "{{ nofusscomputing_phpipam_scan_server.mysql_port | default(3306) | int }}" login_user: "{{ nofusscomputing_phpipam_scan_server.mysql_user }}" login_password: "{{ nofusscomputing_phpipam_scan_server.mysql_password }}" login_db: 'phpipam' query: |- {% if scan_address.rowcount[0] | int > 0 %} UPDATE ipaddresses SET lastSeen = '{{ scan_time }}' {% if scan_address.ipaddress.hostname | default('') != '' %}, hostname = '{{ scan_address.ipaddress.hostname }}' {% endif %} {% if scan_address.ipaddress.mac | default('') != '' %}, mac = '{{ scan_address.ipaddress.mac }}' {% endif %} WHERE id = {{ scan_address.query_result[0][0].id | int }} {% elif scan_address.rowcount[0] | int == 0 %} INSERT INTO ipaddresses ( subnetId, ip_addr, description, {% if scan_address.ipaddress.hostname | default('') != '' %}hostname,{% endif %} {% if scan_address.ipaddress.mac | default('') != '' %}mac,{% endif %} note, lastSeen ) VALUES ( {{ scan_address.ipaddress.subnetId | int }}, '{{ scan_address.ipaddress.ip | ip2ipam }}', '-- autodiscovered --', {% if scan_address.ipaddress.hostname | default('') != '' %} '{{ scan_address.ipaddress.hostname }}', {% endif %} {% if scan_address.ipaddress.mac | default('') != '' %} '{{ scan_address.ipaddress.mac }}', {% endif %} 'This host was autodiscovered on {{ scan_address.ipaddress.lastSeen }}', '{{ scan_address.ipaddress.lastSeen }}' ) {% endif %} single_transaction: true when: > scan_address.ipaddress.subnetId | int in agent_subnets