From eddfc649ded40820ec58a61b42f7b1999269a8b2 Mon Sep 17 00:00:00 2001 From: jamarzka Date: Fri, 2 Oct 2015 19:16:44 -0400 Subject: Added an option to use the private network IP address This option defaults to disabled and can be set from the digital_ocean.ini file. --- contrib/inventory/digital_ocean.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/contrib/inventory/digital_ocean.py b/contrib/inventory/digital_ocean.py index 97e6ea1183..1c0ef68cff 100755 --- a/contrib/inventory/digital_ocean.py +++ b/contrib/inventory/digital_ocean.py @@ -167,6 +167,7 @@ class DigitalOceanInventory(object): # Define defaults self.cache_path = '.' self.cache_max_age = 0 + self.use_private_network = False # Read settings, environment variables, and CLI arguments self.read_settings() @@ -256,6 +257,9 @@ or environment variables (DO_API_TOKEN)''') if config.has_option('digital_ocean', 'cache_max_age'): self.cache_max_age = config.getint('digital_ocean', 'cache_max_age') + # Private IP Address + if config.has_option('digital_ocean', 'use_private_network'): + self.use_private_network = config.get('digital_ocean', 'use_private_network') def read_environment(self): ''' Reads the settings from environment variables ''' @@ -345,8 +349,8 @@ or environment variables (DO_API_TOKEN)''') # add all droplets by id and name for droplet in self.data['droplets']: - #when using private_networking, the API reports the private one in "ip_address", which is useless. We need the public one for Ansible to work - if 'private_networking' in droplet['features']: + #when using private_networking, the API reports the private one in "ip_address". + if 'private_networking' in droplet['features'] and not self.use_private_network: for net in droplet['networks']['v4']: if net['type']=='public': dest=net['ip_address'] -- cgit v1.2.1 From bdd3ae9d6154630f71c94443ef3fe1d06d4f6585 Mon Sep 17 00:00:00 2001 From: jamarzka Date: Fri, 2 Oct 2015 19:18:37 -0400 Subject: Set the default use_private_network setting to False --- contrib/inventory/digital_ocean.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/inventory/digital_ocean.ini b/contrib/inventory/digital_ocean.ini index 021899731c..01afe33968 100644 --- a/contrib/inventory/digital_ocean.ini +++ b/contrib/inventory/digital_ocean.ini @@ -22,3 +22,7 @@ cache_path = /tmp # seconds, a new API call will be made, and the cache file will be updated. # cache_max_age = 300 + +# Use the private network IP address instead of the public when available. +# +use_private_network = False -- cgit v1.2.1