57 lines
1.8 KiB
Python
Executable File
57 lines
1.8 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import sys
|
|
import time
|
|
|
|
from utils import *
|
|
from lib.openstack_common import *
|
|
|
|
config = config_get()
|
|
|
|
packages = "python-ceilometer ceilometer-common ceilometer-agent-central ceilometer-collector ceilometer-api"
|
|
service = "ceilometer"
|
|
|
|
def install_hook():
|
|
if config["openstack-origin"]!="distro":
|
|
configure_installation_source(config["openstack-origin"])
|
|
|
|
# determine package depending on virt type
|
|
|
|
execute("apt-get update", die=True)
|
|
execute("apt-get -y install %s" % packages, die=True, echo=True)
|
|
|
|
def amqp_joined():
|
|
relation_data = {
|
|
}
|
|
relation_set(relation_data)
|
|
|
|
def amqp_changed():
|
|
relation_data = relation_get_dict()
|
|
if ('rabbit-host' not in relation_data or 'rabbit-password' not in relation_data):
|
|
juju_log('Missing rabbit_host || rabbit_passwd, peer not ready? Will retry.')
|
|
exit(0)
|
|
update_config_block('DEFAULT', rabbit_host=relation_data["rabbit-host"])
|
|
update_config_block('DEFAULT', rabbit_userid=config["rabbit-user"])
|
|
update_config_block('DEFAULT', rabbit_password=relation_data["rabbit-password"])
|
|
update_config_block('DEFAULT', rabbit_virtual_host=config["rabbit-vhost"])
|
|
|
|
# restart services
|
|
execute("service ceilometer-agent-central stop", echo=True)
|
|
execute("service ceilometer-agent-central start", echo=True)
|
|
execute("service ceilometer-collector stop", echo=True)
|
|
execute("service ceilometer-collector start", echo=True)
|
|
time.sleep(5)
|
|
|
|
hooks = {
|
|
"install": install_hook,
|
|
"amqp-relation-joined": amqp_joined,
|
|
"amqp-relation-changed": amqp_changed
|
|
}
|
|
|
|
# ceilometer-hooks gets called by symlink corresponding to the requested relation
|
|
# hook.
|
|
arg0 = sys.argv[0].split("/").pop()
|
|
if arg0 not in hooks.keys():
|
|
error_out("Unsupported hook: %s" % arg0)
|
|
hooks[arg0]()
|