~ubuntu-branches/ubuntu/vivid/landscape-client/vivid

« back to all changes in this revision

Viewing changes to landscape/monitor/jujuinfo.py

  • Committer: Package Import Robot
  • Author(s): Andreas Hasenack
  • Date: 2014-11-20 21:03:56 UTC
  • mfrom: (1.1.34)
  • Revision ID: package-import@ubuntu.com-20141120210356-bdl520tpnxddxtm0
Tags: 14.11-0ubuntu1
* New upstream version:
  - Fix regression occurring when performing Landscape-driven release
    upgrades (LP: #1389686)
  - Fix regression occurring when switching the client between different
    Landscape servers (LP #376134)
  - Support reporting QEMU virtualization (LP: #1374501)
  - Bump Juju integration message format (LP: #1369635, LP: #1362506)
  - Drop provisioning registration message (LP: #1362506)
  - Drop cloud registration message (LP: #1342646)
  - Fix handling broken packages (LP: #1326940)
  - Add new Swift usage message type (LP: #1320236)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
import logging
2
 
 
3
 
from landscape.lib.juju import get_juju_info
4
 
from landscape.monitor.plugin import MonitorPlugin
5
 
 
6
 
 
7
 
class JujuInfo(MonitorPlugin):
8
 
    """Plugin for reporting Juju information."""
9
 
 
10
 
    persist_name = "juju-info"
11
 
    scope = "juju"
12
 
 
13
 
    def register(self, registry):
14
 
        super(JujuInfo, self).register(registry)
15
 
        self.call_on_accepted("juju-info", self.send_juju_message, True)
16
 
 
17
 
    def exchange(self, urgent=False):
18
 
        broker = self.registry.broker
19
 
        broker.call_if_accepted("juju-info", self.send_juju_message, urgent)
20
 
 
21
 
    def send_juju_message(self, urgent=False):
22
 
        message = self._create_juju_info_message()
23
 
        if 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,
27
 
                                              urgent=urgent)
28
 
 
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)
33
 
            return message
34
 
        return None