68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/python
 | 
						|
 | 
						|
import sys
 | 
						|
import time
 | 
						|
import os
 | 
						|
import utils
 | 
						|
import ceilometer_utils
 | 
						|
 | 
						|
 | 
						|
def install():
 | 
						|
    utils.configure_source()
 | 
						|
    utils.install(*ceilometer_utils.CEILOMETER_PACKAGES)
 | 
						|
    utils.modify_config_file(ceilometer_utils.NOVA_CONF,
 | 
						|
        ceilometer_utils.NOVA_SETTINGS)
 | 
						|
 | 
						|
    # add line at the end, it's a dupe and configparser doesn't handle it
 | 
						|
    with open(ceilometer_utils.NOVA_CONF, "a") as f:
 | 
						|
        f.write("notification_driver="\
 | 
						|
            "nova.openstack.common.notifier.rabbit_notifier\n")
 | 
						|
 | 
						|
    utils.restart(*ceilometer_utils.CEILOMETER_COMPUTE_SERVICES)
 | 
						|
 | 
						|
 | 
						|
def get_ceilometer_conf():
 | 
						|
    for relid in utils.relation_ids('ceilometer-service'):
 | 
						|
        for unit in utils.relation_list(relid):
 | 
						|
            conf = {
 | 
						|
                'metering_secret': utils.relation_get('metering_secret',
 | 
						|
                    unit, relid),
 | 
						|
                'rabbit_host': utils.relation_get('rabbit_host', unit, relid),
 | 
						|
                'rabbit_virtual_host': utils.relation_get(
 | 
						|
                    'rabbit_virtual_host', unit, relid),
 | 
						|
                'rabbit_userid': utils.relation_get('rabbit_userid',
 | 
						|
                    unit, relid),
 | 
						|
                'rabbit_password': utils.relation_get('rabbit_password',
 | 
						|
                    unit, relid),
 | 
						|
                'keystone_os_username': utils.relation_get(
 | 
						|
                    'keystone_os_username', unit, relid),
 | 
						|
                'keystone_os_password': utils.relation_get(
 | 
						|
                    'keystone_os_password', unit, relid),
 | 
						|
                'keystone_os_tenant': utils.relation_get('keystone_os_tenant',
 | 
						|
                    unit, relid),
 | 
						|
                'keystone_host': utils.relation_get('keystone_host',
 | 
						|
                    unit, relid),
 | 
						|
                'keystone_port': utils.relation_get('keystone_port',
 | 
						|
                    unit, relid)
 | 
						|
            }
 | 
						|
 | 
						|
            if None not in conf.itervalues():
 | 
						|
                return conf
 | 
						|
    return None
 | 
						|
 | 
						|
 | 
						|
def ceilometer_changed():
 | 
						|
    # read settings
 | 
						|
    context = get_ceilometer_conf()
 | 
						|
    if context:
 | 
						|
        with open(ceilometer_utils.CEILOMETER_CONF, "w") as conf:
 | 
						|
            conf.write(utils.render_template(os.path.basename(
 | 
						|
                ceilometer_utils.CEILOMETER_CONF), context))
 | 
						|
            utils.restart(*ceilometer_utils.CEILOMETER_COMPUTE_SERVICES)
 | 
						|
 | 
						|
utils.do_hooks({
 | 
						|
    "install": install,
 | 
						|
    "ceilometer-service-relation-changed": ceilometer_changed
 | 
						|
})
 | 
						|
sys.exit(0)
 |