Add environmental variables to allow for the script to be run without consul_io.ini. This allows it to run dynamically without any prerequisite config file (#30900)

This commit is contained in:
jamiesonio 2018-09-19 18:19:35 -04:00 committed by ansibot
parent 534de2df27
commit 6711c9524e

View file

@ -49,12 +49,14 @@ Other options include:
'datacenter': 'datacenter':
which restricts the included nodes to those from the given datacenter which restricts the included nodes to those from the given datacenter
This can also be set with the environmental variable CONSUL_DATACENTER
'url': 'url':
the URL of the Consul cluster. host, port and scheme are derived from the the URL of the Consul cluster. host, port and scheme are derived from the
URL. If not specified, connection configuration defaults to http requests URL. If not specified, connection configuration defaults to http requests
to localhost on port 8500. to localhost on port 8500.
This can also be set with the environmental variable CONSUL_URL
'domain': 'domain':
@ -453,6 +455,7 @@ class ConsulConfig(dict):
def __init__(self): def __init__(self):
self.read_settings() self.read_settings()
self.read_cli_args() self.read_cli_args()
self.read_env_vars()
def has_config(self, name): def has_config(self, name):
if hasattr(self, name): if hasattr(self, name):
@ -497,6 +500,14 @@ class ConsulConfig(dict):
if getattr(args, arg): if getattr(args, arg):
setattr(self, arg, getattr(args, arg)) setattr(self, arg, getattr(args, arg))
def read_env_vars(self):
env_var_options = ['datacenter', 'url']
for option in env_var_options:
value = None
env_var = 'CONSUL_' + option.upper()
if os.environ.get(env_var):
setattr(self, option, os.environ.get(env_var))
def get_availability_suffix(self, suffix, default): def get_availability_suffix(self, suffix, default):
if self.has_config(suffix): if self.has_config(suffix):
return self.has_config(suffix) return self.has_config(suffix)