openstack-ansible/scripts/gen-config.py
Nolan Brubaker 5548d3b964 Add command to create consolidated AIO config
With the AIO configuration spread amongst several different files, it
may be hard to see how they fit together. This command provides a way to
generate a single, combined configuration to see what it would look like
prior to being fed to the dynamic inventory.

Also, it can serve as a starting point for projects working on OSA
integration.

A new script, gen-config.py, is introduced to expose this functionality
to end users.

Parent-Id: I577cdbf4aadfcce846412edd7e2a394c257c0243
Change-Id: I4ffa621e72483957bbce0057b05a9e5b33d27b7c
2016-11-23 11:01:31 -05:00

66 lines
1.8 KiB
Python
Executable File

#!/usr/bin/env python
#
# Copyright 2016, 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, Nolan Brubaker <nolan.brubaker@rackspace.com>
import argparse
import os
import sys
cwd = os.path.abspath(os.path.dirname(__file__))
import_path = os.path.join(cwd, '..', 'lib')
sys.path.append(import_path)
import tools
def args(arg_list):
parser = argparse.ArgumentParser(
usage='%(prog)s',
description='OpenStack Ansible Configuration Generator',
epilog='Licensed "Apache2.0"',
)
parser.add_argument(
'--base',
'-b',
help="Base file to be used.",
)
parser.add_argument(
'--conf_dir',
'-c',
help=("Directory of service-specific configuration files.\n"
"Only files ending in *.aio will be processed"),
)
parser.add_argument(
'--output',
'-o',
help=("Path to combined output file, defaults to "
"./openstack_user_config.yml"),
default=os.path.join(os.getcwd(), 'openstack_user_config.yml')
)
return vars(parser.parse_args(arg_list))
if __name__ == "__main__":
script_args = args(sys.argv[1:])
config = tools.make_example_config(
script_args['base'],
script_args['conf_dir']
)
tools.write_example_config(script_args['output'], config)