From 6526517fecab531adfe1ec78b0ffe4f7bb96ba65 Mon Sep 17 00:00:00 2001 From: Dan Nicholson Date: Thu, 20 Dec 2018 06:06:11 -0600 Subject: [PATCH] Skip non-management Packet IP addresses (#48168) Non-management (elastic) IP addresses require manual configuration on the host as described in https://help.packet.net/article/54-elastic-ips. Skip those so that only the automatically configured management addresses are used. Otherwise, a non-routable address may be returned in the inventory. --- contrib/inventory/packet_net.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/contrib/inventory/packet_net.py b/contrib/inventory/packet_net.py index d919a67d80fefc..5368de4eb0c601 100755 --- a/contrib/inventory/packet_net.py +++ b/contrib/inventory/packet_net.py @@ -298,10 +298,15 @@ def add_device(self, device, project): if device.state not in self.packet_device_states: return - # Select the best destination address + # Select the best destination address. Only include management + # addresses as non-management (elastic) addresses need manual + # host configuration to be routable. + # See https://help.packet.net/article/54-elastic-ips. dest = None for ip_address in device.ip_addresses: - if ip_address['public'] is True and ip_address['address_family'] == 4: + if ip_address['public'] is True and \ + ip_address['address_family'] == 4 and \ + ip_address['management'] is True: dest = ip_address['address'] if not dest: