charm-ceilometer-agent/hooks/ceilometer_hooks.py

54 lines
1.2 KiB
Python
Executable File

#!/usr/bin/python
import sys
from charmhelpers.fetch import (
apt_install, filter_installed_packages,
apt_update
)
from charmhelpers.core.hookenv import (
config,
Hooks, UnregisteredHookError,
log
)
from charmhelpers.core.host import (
restart_on_change
)
from charmhelpers.contrib.openstack.utils import (
configure_installation_source
)
from ceilometer_utils import (
restart_map,
register_configs,
CEILOMETER_AGENT_PACKAGES
)
hooks = Hooks()
CONFIGS = register_configs()
@hooks.hook()
def install():
configure_installation_source(config('openstack-origin'))
apt_update(fatal=True)
apt_install(
filter_installed_packages(CEILOMETER_AGENT_PACKAGES),
fatal=True)
# TODO(jamespage): Locally scoped relation for nova and others
#ceilometer_utils.modify_config_file(ceilometer_utils.NOVA_CONF
# ceilometer_utils.NOVA_SETTINGS)
@hooks.hook("ceilometer-service-relation-changed",
"upgrade-charm")
@restart_on_change(restart_map())
def ceilometer_changed():
CONFIGS.write_all()
if __name__ == '__main__':
try:
hooks.execute(sys.argv)
except UnregisteredHookError as e:
log('Unknown hook {} - skipping.'.format(e))