mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Added ability to read config from env. instead of .init for use in Asible Tower (and AWX) (#36179)
* Added ability to read config from env. instead of .init for use in Ansible Tower (and AWX) * Detect when NoneType is passed to cache_path * Formatting fixes
This commit is contained in:
parent
826c6f8ec0
commit
bf50274945
1 changed files with 34 additions and 1 deletions
|
@ -88,8 +88,10 @@ class CobblerInventory(object):
|
|||
|
||||
self.inventory = dict() # A list of groups and the hosts in that group
|
||||
self.cache = dict() # Details about hosts in the inventory
|
||||
self.ignore_settings = False # used to only look at env vars for settings.
|
||||
|
||||
# Read settings and parse CLI arguments
|
||||
# Read env vars, read settings, and parse CLI arguments
|
||||
self.parse_env_vars()
|
||||
self.read_settings()
|
||||
self.parse_cli_args()
|
||||
|
||||
|
@ -137,6 +139,9 @@ class CobblerInventory(object):
|
|||
def read_settings(self):
|
||||
""" Reads the settings from the cobbler.ini file """
|
||||
|
||||
if(self.ignore_settings):
|
||||
return
|
||||
|
||||
config = ConfigParser.SafeConfigParser()
|
||||
config.read(os.path.dirname(os.path.realpath(__file__)) + '/cobbler.ini')
|
||||
|
||||
|
@ -154,6 +159,34 @@ class CobblerInventory(object):
|
|||
self.cache_path_inventory = cache_path + "/ansible-cobbler.index"
|
||||
self.cache_max_age = config.getint('cobbler', 'cache_max_age')
|
||||
|
||||
def parse_env_vars(self):
|
||||
""" Reads the settings from the environment """
|
||||
|
||||
# Env. Vars:
|
||||
# COBBLER_host
|
||||
# COBBLER_username
|
||||
# COBBLER_password
|
||||
# COBBLER_cache_path
|
||||
# COBBLER_cache_max_age
|
||||
# COBBLER_ignore_settings
|
||||
|
||||
self.cobbler_host = os.getenv('COBBLER_host', None)
|
||||
self.cobbler_username = os.getenv('COBBLER_username', None)
|
||||
self.cobbler_password = os.getenv('COBBLER_password', None)
|
||||
|
||||
# Cache related
|
||||
cache_path = os.getenv('COBBLER_cache_path', None)
|
||||
if(cache_path is not None):
|
||||
self.cache_path_cache = cache_path + "/ansible-cobbler.cache"
|
||||
self.cache_path_inventory = cache_path + "/ansible-cobbler.index"
|
||||
|
||||
self.cache_max_age = int(os.getenv('COBBLER_cache_max_age', "30"))
|
||||
|
||||
# ignore_settings is used to ignore the settings file, for use in Ansible
|
||||
# Tower (or AWX inventory scripts and not throw python exceptions.)
|
||||
if(os.getenv('COBBLER_ignore_settings', False) == "True"):
|
||||
self.ignore_settings = True
|
||||
|
||||
def parse_cli_args(self):
|
||||
""" Command line argument processing """
|
||||
|
||||
|
|
Loading…
Reference in a new issue