19
19
hooks = hookenv.Hooks()
24
hosts.append(hookenv.unit_get('private-address'))
25
for relid in hookenv.relation_ids('ntp-peers'):
26
for unit in hookenv.related_units(relid):
27
hosts.append(hookenv.relation_get('private-address',
22
33
@hooks.hook('install')
24
35
fetch.apt_update(fatal=True)
30
41
@hooks.hook('config-changed')
31
42
@hooks.hook('master-relation-changed')
32
43
@hooks.hook('master-relation-departed')
44
@hooks.hook('ntp-peers-relation-joined',
45
'ntp-peers-relation-changed')
33
46
@host.restart_on_change({NTP_CONF: ['ntp']})
34
47
def write_config():
48
use_iburst = hookenv.config('use_iburst')
35
49
source = hookenv.config('source')
36
50
remote_sources = []
38
52
for s in source.split(" "):
40
remote_sources.append({'name': s})
55
remote_sources.append({'name': '%s iburst' % s})
57
remote_sources.append({'name': s})
41
58
for relid in hookenv.relation_ids('master'):
42
59
for unit in hookenv.related_units(relid=relid):
43
60
u_addr = hookenv.relation_get(attribute='private-address',
44
61
unit=unit, rid=relid)
45
62
remote_sources.append({'name': '%s iburst' % u_addr})
64
auto_peers = hookenv.config('auto_peers')
65
peers = hookenv.config('peers')
68
for p in peers.split(" "):
70
remote_peers.append(p)
71
if hookenv.relation_ids('ntp-peers'):
73
for rp in get_peer_nodes():
74
remote_peers.append(rp)
47
76
if len(remote_sources) == 0:
48
77
shutil.copy(NTP_CONF_ORIG, NTP_CONF)
50
79
with open(NTP_CONF, "w") as ntpconf:
51
80
ntpconf.write(render(os.path.basename(NTP_CONF),
52
{'servers': remote_sources}))
81
{'servers': remote_sources,
82
'peers': remote_peers,
83
'use_iburst': use_iburst}))
54
84
update_nrpe_config()