def upgrade_charm(): install() packages_removed = remove_old_packages() if packages_removed and not is_unit_paused_set(): log("Package purge detected, restarting services", "INFO") for s in services(): service_restart(s) update_nrpe_config() any_changed() for rid in relation_ids('cluster'): cluster_joined(relation_id=rid) # NOTE: (thedac) Currently there is no method to independently check if # ceilometer-upgrade has been run short of manual DB queries. # On upgrade-charm the leader node must assume it has already been run # and assert so with leader-set. If this is not done, then the upgrade from # the previous version of the charm will leave ceilometer in a blocked # state. if is_leader() and relation_ids("metric-service"): if not leader_get("ceilometer_upgrade_run"): log( "Assuming ceilometer-upgrade has been run. If this is not the " "case, please run the ceilometer-upgrade action on the leader " "node.", level=WARNING) leader_set(ceilometer_upgrade_run=True)
def update_nrpe_config(): # python-dbus is used by check_upstart_job apt_install('python-dbus') hostname = nrpe.get_nagios_hostname() current_unit = nrpe.get_nagios_unit_name() nrpe_setup = nrpe.NRPE(hostname=hostname) nrpe.add_init_service_checks(nrpe_setup, services(), current_unit) nrpe_setup.write()
def upgrade_charm(): apt_install( filter_installed_packages(get_packages()), fatal=True) packages_removed = remove_old_packages() if packages_removed and not is_unit_paused_set(): log("Package purge detected, restarting services", "INFO") for s in services(): service_restart(s) # NOTE(jamespage): Ensure any changes to nova presented data are made # during charm upgrades. for rid in relation_ids('nova-ceilometer'): nova_ceilometer_joined(rid)