diff --git a/src/layer.yaml b/src/layer.yaml index fba2cf6..8e0806c 100644 --- a/src/layer.yaml +++ b/src/layer.yaml @@ -1,4 +1,4 @@ -includes: ['layer:openstack-api', 'interface:ceph-client'] +includes: ['layer:openstack-api', 'interface:ceph-client', 'interface:gnocchi'] options: basic: use_venv: True diff --git a/src/metadata.yaml b/src/metadata.yaml index 8ce0dde..d44e2d7 100644 --- a/src/metadata.yaml +++ b/src/metadata.yaml @@ -14,6 +14,9 @@ series: - trusty - yakkety - zesty +provides: + metric-service: + interface: gnocchi requires: storage-ceph: interface: ceph-client diff --git a/src/reactive/gnocchi_handlers.py b/src/reactive/gnocchi_handlers.py index 79e697f..4f02cc5 100644 --- a/src/reactive/gnocchi_handlers.py +++ b/src/reactive/gnocchi_handlers.py @@ -73,3 +73,9 @@ def configure_ceph(ceph): @reactive.when_not('storage-ceph.connected') def storage_ceph_disconnected(): ceph_helper.delete_keyring(hookenv.service_name()) + + +@reactive.when('metric-service.connected') +def provide_gnocchi_url(metric_service): + with charm.provide_charm_instance() as charm_class: + metric_service.set_gnocchi_url(charm_class.public_url)