Index: /tools/gformat.py
===================================================================
--- /tools/gformat.py	(revision 10649)
+++ /tools/gformat.py	(revision 10654)
@@ -84,4 +84,5 @@
     'resolv.conf',
     'motd',
+    'ntp.conf',
     'wleiden.yaml',
     ]
@@ -749,4 +750,51 @@
 
 
+def generate_ntp_conf(datadump):
+  """ Generate configuration file '/etc/ntp.conf' """
+  # XXX: This should properly going to be an datastructure soon
+
+  datadump['autogen_header'] = generate_header("#")
+  datadump['autogen_ntp_servers'] = ''
+  for host in get_proxylist():
+    hostdump = get_yaml(host)
+    datadump['autogen_ntp_servers'] += "server %(masterip)-15s iburst maxpoll 9 # %(autogen_realname)s\n" % hostdump
+  for host in get_hybridlist():
+    hostdump = get_yaml(host)
+    if hostdump['service_proxy_ileiden'] or hostdump['service_proxy_normal']:
+      datadump['autogen_ntp_servers'] += "server %(masterip)-15s iburst maxpoll 9 # %(autogen_realname)s\n" % hostdump
+
+  return Template("""\
+{{ autogen_header }}
+
+{% if service_proxy_normal or service_proxy_ileiden or nodetype == 'Proxy' -%}
+# Machine hooked to internet.
+server 0.nl.pool.ntp.org iburst maxpoll 9
+server 1.nl.pool.ntp.org iburst maxpoll 9
+server 2.nl.pool.ntp.org iburst maxpoll 9
+server 3.nl.pool.ntp.org iburst maxpoll 9
+{% else -%}
+# Local Wireless Leiden NTP Servers.
+server 0.pool.ntp.wleiden.net iburst maxpoll 9
+server 1.pool.ntp.wleiden.net iburst maxpoll 9
+server 2.pool.ntp.wleiden.net iburst maxpoll 9
+server 3.pool.ntp.wleiden.net iburst maxpoll 9
+
+# All the configured NTP servers
+{{ autogen_ntp_servers }}
+{% endif %}
+
+# If a server loses sync with all upstream servers, NTP clients
+# no longer follow that server. The local clock can be configured
+# to provide a time source when this happens, but it should usually
+# be configured on just one server on a network. For more details see
+# http://support.ntp.org/bin/view/Support/UndisciplinedLocalClock
+# The use of Orphan Mode may be preferable.
+#
+server 127.127.1.0
+fudge 127.127.1.0 stratum 10
+""").render(datadump)
+
+
+
 def generate_motd(datadump):
   """ Generate configuration file '/etc/motd' """
@@ -865,4 +913,6 @@
     elif config == 'resolv.conf':
       output += generate_resolv_conf(datadump)
+    elif config == 'ntp.conf':
+      output += generate_ntp_conf(datadump)
     elif config == 'motd':
       output += generate_motd(datadump)
