first steps with hook
This commit is contained in:
parent
bbd63210bc
commit
c51eb5b95e
|
@ -0,0 +1,56 @@
|
||||||
|
#!/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]()
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/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]()
|
|
@ -8,20 +8,47 @@ from lib.openstack_common import *
|
||||||
|
|
||||||
config = config_get()
|
config = config_get()
|
||||||
|
|
||||||
packages = "ceilometer"
|
packages = "python-ceilometer ceilometer-common ceilometer-agent-central ceilometer-collector ceilometer-api"
|
||||||
service = "ceilometer"
|
service = "ceilometer"
|
||||||
|
|
||||||
def install_hook():
|
def install_hook():
|
||||||
if config["openstack-origin"]!="distro":
|
if config["openstack-origin"]!="distro":
|
||||||
configure_installation_source(config["openstack-origin"])
|
configure_installation_source(config["openstack-origin"])
|
||||||
|
|
||||||
|
# determine package depending on virt type
|
||||||
|
|
||||||
execute("apt-get update", die=True)
|
execute("apt-get update", die=True)
|
||||||
execute("apt-get -y install %s" % packages, die=True, echo=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 = {
|
hooks = {
|
||||||
"install": install_hook,
|
"install": install_hook,
|
||||||
|
"amqp-relation-joined": amqp_joined,
|
||||||
|
"amqp-relation-changed": amqp_changed
|
||||||
}
|
}
|
||||||
|
|
||||||
# ceiloemter-hooks gets called by symlink corresponding to the requested relation
|
# ceilometer-hooks gets called by symlink corresponding to the requested relation
|
||||||
# hook.
|
# hook.
|
||||||
arg0 = sys.argv[0].split("/").pop()
|
arg0 = sys.argv[0].split("/").pop()
|
||||||
if arg0 not in hooks.keys():
|
if arg0 not in hooks.keys():
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
ceilometer:
|
||||||
|
debug: "true"
|
||||||
|
verbose: "true"
|
||||||
|
openstack-origin: "ppa:openstack-ubuntu-testing/grizzly-trunk-testing"
|
||||||
|
config-file: "/etc/ceilometer/ceilometer.conf"
|
||||||
|
service-port: 8777
|
|
@ -15,7 +15,7 @@ provides:
|
||||||
api-service:
|
api-service:
|
||||||
interface: http
|
interface: http
|
||||||
requires:
|
requires:
|
||||||
shared-db:
|
|
||||||
interface: mongo
|
|
||||||
shared-db:
|
shared-db:
|
||||||
interface: mysql-shared
|
interface: mysql-shared
|
||||||
|
amqp:
|
||||||
|
interface: rabbitmq
|
||||||
|
|
Loading…
Reference in New Issue