3
from landscape.lib.juju import get_juju_info
4
from landscape.monitor.plugin import MonitorPlugin
7
class JujuInfo(MonitorPlugin):
8
"""Plugin for reporting Juju information."""
10
persist_name = "juju-info"
13
def register(self, registry):
14
super(JujuInfo, self).register(registry)
15
self.call_on_accepted("juju-info", self.send_juju_message, True)
17
def exchange(self, urgent=False):
18
broker = self.registry.broker
19
broker.call_if_accepted("juju-info", self.send_juju_message, urgent)
21
def send_juju_message(self, urgent=False):
22
message = self._create_juju_info_message()
24
message["type"] = "juju-info"
25
logging.info("Queuing message with updated juju info.")
26
self.registry.broker.send_message(message, self._session_id,
29
def _create_juju_info_message(self):
30
message = get_juju_info(self.registry.config)
31
if message != self._persist.get("juju-info"):
32
self._persist.set("juju-info", message)