openstack-ansible/inventory/dynamic_inventory.py
Dmitriy Rabotyagov 9dc3e8b213 Install dynamic-inventory as console_script
If you want to store openstack_deploy content you want it's content
to be relevant. However, at the moment it's quite hard to predict how
inventory will be generated if/when adding some new host to it.

Installing dynamic_inventory script as a console_script will allow you
to create quite simple tox env to update openstack_inventory.json
on local machine right after changing config and simplify life of
operator. Also this way you don't need to clone openstack-ansible

Change-Id: I6119b0bfc27d173610657f39ebb717e0a18b247e
2022-12-06 17:18:42 +00:00

86 lines
2.3 KiB
Python
Executable File

#!/opt/ansible-runtime/bin/python
# Copyright 2014, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# (c) 2014, Kevin Carter <kevin.carter@rackspace.com>
import argparse
import os
import sys
try:
from osa_toolkit import generate
except ImportError:
current_path = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
lib_path = os.path.join(current_path, '..')
sys.path.append(lib_path)
from osa_toolkit import generate
# Function kept in order to use relative pathing for the env.d directory
def args(arg_list):
"""Setup argument Parsing."""
parser = argparse.ArgumentParser(
usage='%(prog)s',
description='OpenStack Inventory Generator',
epilog='Inventory Generator Licensed "Apache 2.0"')
parser.add_argument(
'--config',
help='Path containing the user defined configuration files',
required=False,
default=os.getenv('OSA_CONFIG_DIR', None)
)
parser.add_argument(
'--list',
help='List all entries',
action='store_true'
)
parser.add_argument(
'--check',
help="Configuration check only, don't generate inventory",
action='store_true',
)
parser.add_argument(
'-d',
'--debug',
help=('Output debug messages to log file. '
'File is appended to, not overwritten'),
action='store_true',
default=False,
)
parser.add_argument(
'-e',
'--environment',
help=('Directory that contains the base env.d directory.\n'
'Defaults to <OSA_ROOT>/inventory/.'),
required=False,
default=os.path.dirname(__file__),
)
return vars(parser.parse_args(arg_list))
def main():
all_args = args(sys.argv[1:])
output = generate.main(**all_args)
print(output)
if __name__ == '__main__':
main()