diff options
Diffstat (limited to 'deploy/prepare')
-rw-r--r-- | deploy/prepare/execute.py | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/deploy/prepare/execute.py b/deploy/prepare/execute.py index a50d9d9a..c59d10ae 100644 --- a/deploy/prepare/execute.py +++ b/deploy/prepare/execute.py @@ -3,21 +3,47 @@ import os from deploy.config.network import NetworkConfig -NOVA_CONF_PATH = '/etc/kolla/config/nova' -NOVA_API_CONF = '{}/nova-api.conf'.format(NOVA_CONF_PATH) +KOLLA_CONF_PATH = '/etc/kolla/config' -def _config_nova_api(network_file): - xnet = NetworkConfig(network_file=network_file).external_network - if not os.path.isdir(NOVA_CONF_PATH): - os.makedirs(NOVA_CONF_PATH, mode=0644) +def _make_dirs(path): + if not os.path.isdir(path): + os.makedirs(path, mode=0644) + - with open(NOVA_API_CONF, 'w') as f: - f.write('[DEFAULT]\n' - 'default_floating_pool={}\n'.format(xnet['network_name'])) +def _write_conf_file(conf_file, conf): + with open(conf_file, 'w') as f: + f.write(conf) f.close() +def _config_service(service, subs): + def _wrap(func): + def _config(*args): + conf_path = os.path.join(KOLLA_CONF_PATH, service) + _make_dirs(conf_path) + for sub in subs: + conf_file = os.path.join(conf_path, + '{}-{}.conf'.format(service, sub)) + _write_conf_file(conf_file, func(*args)) + return _config + return _wrap + + +@_config_service('nova', ['api']) +def _set_default_floating_pool(network_file): + xnet = NetworkConfig(network_file=network_file).external_network + return '[DEFAULT]\n' \ + 'default_floating_pool = {}\n'.format(xnet['network_name']) + + +@_config_service('heat', ['api', 'engine']) +def _set_trusts_auth(): + return '[DEFAULT]\n' \ + 'deferred_auth_method = trusts\n' \ + 'trusts_delegated_roles =\n' + + def main(): parser = argparse.ArgumentParser() parser.add_argument('-nw', '--network-file', @@ -25,7 +51,8 @@ def main(): required=True, help='network configuration file') args = parser.parse_args() - _config_nova_api(args.network_file) + _set_default_floating_pool(args.network_file) + _set_trusts_auth() if __name__ == '__main__': |