]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/motd/templates/motd.erb
stop using hiera
[dsa-puppet.git] / modules / motd / templates / motd.erb
index 24f810b8ee1a09784af9cc102f44b9ff47823d74..d5cc58047e4b8a10cfd399584b1ab3e6e958874e 100644 (file)
 
 This device is for authorized users only.  All traffic on this device
-is monitored and will be used as evidence for prosecutions.
-
-** IMPORTANT WARNING **
-
-Please read:
-
-http://lists.debian.org/debian-devel-announce/2003/debian-devel-announce-200312/msg00001.html
-
-before doing anything on these machines - especially the "What to do
-when you can login" section.
+is monitored and will be used as evidence for prosecutions.  By using
+this machine you agree to abide by the Debian Machines Usage Policies
+<URL:http://www.debian.org/devel/dmup>.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 <%=
+def wrap(s, width=78)
+      s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n")
+end
+
+def markup(l)
+  l = l.gsub(/\[\[(.*?)\|(.*?)\]\]/, '\2')
+  l = l.gsub(/\[\[(\*|-)?(.*?)\]\]/, '\2')
+  return l
+end
+
 purp = ''
-if nodeinfo.has_key?('nameinfo')
-  purp += nodeinfo['nameinfo'] + "\n\n"
+if scope.lookupvar('site::nodeinfo').has_key?('nameinfo')
+  purp += wrap(scope.lookupvar('site::nodeinfo')['nameinfo']) + "\n\n"
 end
 
+ninfo = scope.lookupvar('site::nodeinfo')
+
 purp += 'Welcome to ' + fqdn
-if (nodeinfo['ldap'].at(0)) and (nodeinfo['ldap'][0].has_key?('purpose'))
-  if nodeinfo['ldap'][0]['purpose'].include?('buildd')
+if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('purpose'))
+  p = scope.lookupvar('site::nodeinfo')['ldap']['purpose'].clone()
+  extra = ''
+
+  if p.delete('buildd')
     purp += ", the Debian "
-    if nodeinfo['ldap'][0].has_key?('architecture')
-      purp += nodeinfo['ldap'][0]['architecture'][0]
+    if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture')
+      purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0]
     end
-    purp += " build daemon\n"
-  elsif nodeinfo['ldap'][0]['purpose'].include?('porterbox')
+    purp += " build daemon"
+  end
+
+  if p.delete('porterbox')
     purp += ", the Debian "
-    if nodeinfo['ldap'][0].has_key?('architecture')
-      purp += nodeinfo['ldap'][0]['architecture'][0]
+    if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture')
+      purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0]
     end
-    purp += " porterbox\n"
-  else
+    purp += " porterbox"
+    extra += "\n"
+    extra += "See 'dchroot -l' or 'schroot -l' for a list of available chroots.\n"
+    if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('admin')
+      extra += "Please contact #{ninfo['ldap']['admin'][0]} for install requests,\n"
+      extra += "following the recommendations in <URL:http://dsa.debian.org/doc/install-req/>.\n"
+    end
+  end
+
+  if p.size() > 0
     purp += ", used for the following services:\n"
-    nodeinfo['ldap'][0]['purpose'].sort.each do |l|
-      if l =~ /\[\[(\*|-)?(.*?)\]\]/
-        l = $2
-      end
-      if l =~ /\[\[(.*?)\|(.*?)\]\]/
-        l = $2
-      end
+    scope.lookupvar('site::nodeinfo')['ldap']['purpose'].sort.each do |l|
+      l = markup(l)
       purp += "\t" + l + "\n"
     end
+  else
+    purp += ".\n"
   end
+
+  purp += extra
 else
-  purp += "\n"
+  purp += ".\n"
 end
 
-if nodeinfo.has_key?('footer')
-  purp += "\n" + nodeinfo['footer'] + "\n"
+purp += "\n"
+
+if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('physicalHost'))
+  purp += wrap("This virtual server runs on the physical host #{ninfo['ldap']['physicalHost'][0]}, " +
+               "which is hosted at #{ninfo['hoster']['longname']}."
+               )
+elsif scope.lookupvar('site::nodeinfo')['hoster']['name']
+  purp += wrap("This server is hosted at #{ninfo['hoster']['longname']}.")
+end
+
+
+vms = []
+scope.lookupvar('site::allnodeinfo').keys.sort.each do |node|
+  if scope.lookupvar('site::allnodeinfo')[node]['physicalHost'] and scope.lookupvar('site::allnodeinfo')[node]['physicalHost'].include?(fqdn)
+    vms << node
+  end
+end
+unless vms.empty?
+  purp += "\nThe following virtual machines run on this system:\n"
+  vms.each do |node|
+    purp += "\t- #{node}"
+    if scope.lookupvar('site::allnodeinfo')[node]['purpose']
+      purp += ":\n"
+      scope.lookupvar('site::allnodeinfo')[node]['purpose'].sort.each do |l|
+        l = markup(l)
+        purp += "\t    " + l + "\n"
+      end
+    else
+      purp += "\n"
+    end
+  end
 end
+
+
+if scope.lookupvar('::cluster')
+  purp += "\nThis server is a node in ganeti cluster: "
+  purp += scope.lookupvar('::cluster') + ".\n"
+  scope.lookupvar('::cluster_nodes').split.each do |node|
+    purp += "\t" + node + "\n"
+  end
+end
+
+
+if scope.lookupvar('site::nodeinfo').has_key?('footer')
+  purp += "\n" + wrap(scope.lookupvar('site::nodeinfo')['footer']) + "\n"
+end
+
 purp
 -%>
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+<%
+# vim:set et:
+# vim:set sts=2 ts=2:
+# vim:set shiftwidth=2:
+-%>