73 lines
2.6 KiB
Python
73 lines
2.6 KiB
Python
![]() |
#!/bin/python
|
||
|
import json
|
||
|
import os
|
||
|
|
||
|
data = {}
|
||
|
file_perms = '0600'
|
||
|
libvirt_perms = '0644'
|
||
|
|
||
|
libvirt_config = os.getenv('libvirt_config').split(',')
|
||
|
nova_config = os.getenv('nova_config').split(',')
|
||
|
neutron_openvswitch_agent_config = os.getenv('neutron_openvswitch_agent_config').split(',')
|
||
|
|
||
|
# Command, Config_files, Owner, Perms
|
||
|
services = {
|
||
|
'nova-libvirt': [
|
||
|
'/usr/sbin/libvirtd',
|
||
|
libvirt_config,
|
||
|
'root',
|
||
|
libvirt_perms],
|
||
|
'nova-compute': [
|
||
|
'/usr/bin/nova-compute',
|
||
|
nova_config,
|
||
|
'nova',
|
||
|
file_perms],
|
||
|
'neutron-openvswitch-agent': [
|
||
|
'/usr/bin/neutron-openvswitch-agent',
|
||
|
neutron_openvswitch_agent_config,
|
||
|
'neutron',
|
||
|
file_perms],
|
||
|
'ovs-vswitchd': [
|
||
|
'/usr/sbin/ovs-vswitchd unix:/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --log-file=/var/log/kolla/openvswitch/ovs-vswitchd.log'],
|
||
|
'ovsdb-server': [
|
||
|
'/usr/sbin/ovsdb-server /etc/openvswitch/conf.db -vconsole:emer -vsyslog:err -vfile:info --remote=punix:/run/openvswitch/db.sock --remote=ptcp:6640:127.0.0.1 --log-file=/var/log/kolla/openvswitch/ovsdb-server.log']
|
||
|
}
|
||
|
|
||
|
|
||
|
def build_config_files(config, owner, perms):
|
||
|
config_source = '/var/lib/kolla/config_files/'
|
||
|
config_files_dict = {}
|
||
|
source = os.path.basename(config)
|
||
|
dest = config
|
||
|
config_files_dict.update({'source': config_source + source,
|
||
|
'dest': dest,
|
||
|
'owner': owner,
|
||
|
'perm': perms})
|
||
|
return config_files_dict
|
||
|
|
||
|
|
||
|
for service in services:
|
||
|
if service != 'ovs-vswitchd' and service != 'ovsdb-server':
|
||
|
command = services.get(service)[0]
|
||
|
config_files = services.get(service)[1]
|
||
|
owner = services.get(service)[2]
|
||
|
perms = services.get(service)[3]
|
||
|
config_files_list = []
|
||
|
for config_file in config_files:
|
||
|
if service == 'nova-libvirt':
|
||
|
command = command + ' --config ' + config_file
|
||
|
else:
|
||
|
command = command + ' --config-file ' + config_file
|
||
|
data['command'] = command
|
||
|
config_files_dict = build_config_files(config_file, owner, perms)
|
||
|
config_files_list.append(config_files_dict)
|
||
|
data['config_files'] = config_files_list
|
||
|
else:
|
||
|
data['command'] = services.get(service)[0]
|
||
|
data['config_files'] = []
|
||
|
|
||
|
json_config_dir = '/var/lib/etc-data/json-config/'
|
||
|
with open(json_config_dir + service + '.json', 'w') as json_file:
|
||
|
json.dump(data, json_file, sort_keys=True, indent=4,
|
||
|
separators=(',', ': '))
|