~cf-charmers/charms/trusty/cf-go-router/trunk

« back to all changes in this revision

Viewing changes to hooks/charmhelpers/contrib/cloudfoundry/contexts.py

  • Committer: Alex Prismakov
  • Date: 2014-04-04 23:02:49 UTC
  • Revision ID: prismakov@gmail.com-20140404230249-u3lvrk6404wvtfzs
add hooks/charmhelpers/contrib/cloudfoundry/contexts.py

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from charmhelpers.core import hookenv
 
2
from charmhelpers.contrib.openstack.context import OSContextGenerator
 
3
 
 
4
 
 
5
class RenderContext(OSContextGenerator):
 
6
    def __call__(self):
 
7
        if not hookenv.relation_ids(self.interface):
 
8
            return {}
 
9
 
 
10
        ctx = {}
 
11
        for rid in hookenv.relation_ids(self.interface):
 
12
            for unit in hookenv.related_units(rid):
 
13
                reldata = hookenv.relation_get(rid=rid, unit=unit)
 
14
                required = set(self.required_keys)
 
15
                if set(reldata.keys()) == required:
 
16
                    for k, v in reldata.items():
 
17
                        ctx["%s.%s" % (self.interface, k)] = v
 
18
                    return ctx
 
19
 
 
20
        return {}
 
21
 
 
22
 
 
23
class NatsContext(RenderContext):
 
24
    interface = 'nats'
 
25
    required_keys = ['nats_port', 'nats_host']
 
26
 
 
27
 
 
28
class RouterContext(RenderContext):
 
29
    interface = 'router'
 
30
    required_keys = ['router_domain']