From 01dd5bc2704db82185d397eb6d63c1e812636ea0 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 16 Jul 2020 14:00:20 -0400 Subject: [PATCH 1/2] Fix QEMU guest agent IP address retrieval --- proxmox.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/proxmox.py b/proxmox.py index f5d29ca..d888607 100755 --- a/proxmox.py +++ b/proxmox.py @@ -216,6 +216,17 @@ class ProxmoxAPI(object): return ip_address except socket.error: pass + elif type(networks) is list: + for network in networks: + for ip_address in network['ip-addresses']: + try: + # IP address validation + if socket.inet_aton(ip_address['ip-address']): + # Ignore localhost + if ip_address['ip-address'] != '127.0.0.1': + return ip_address['ip-address'] + except socket.error: + pass return None def openvz_ip_address(self, node, vm): From d9d990bd34e63e3730e5fe188150e4ff5c9a6987 Mon Sep 17 00:00:00 2001 From: johnpc35 Date: Sat, 8 Aug 2020 02:25:10 -0400 Subject: [PATCH 2/2] Check for ip-addresses before iterating over them --- proxmox.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/proxmox.py b/proxmox.py index d888607..a19de1f 100755 --- a/proxmox.py +++ b/proxmox.py @@ -208,25 +208,26 @@ class ProxmoxAPI(object): if type(networks) is dict: for network in networks: for ip_address in ['ip-address']: - try: - # IP address validation - if socket.inet_aton(ip_address): - # Ignore localhost - if ip_address != '127.0.0.1': - return ip_address - except socket.error: - pass + try: + # IP address validation + if socket.inet_aton(ip_address): + # Ignore localhost + if ip_address != '127.0.0.1': + return ip_address + except socket.error: + pass elif type(networks) is list: for network in networks: - for ip_address in network['ip-addresses']: - try: - # IP address validation - if socket.inet_aton(ip_address['ip-address']): - # Ignore localhost - if ip_address['ip-address'] != '127.0.0.1': - return ip_address['ip-address'] - except socket.error: - pass + if 'ip-addresses' in network: + for ip_address in network['ip-addresses']: + try: + # IP address validation + if socket.inet_aton(ip_address['ip-address']): + # Ignore localhost + if ip_address['ip-address'] != '127.0.0.1': + return ip_address['ip-address'] + except socket.error: + pass return None def openvz_ip_address(self, node, vm):