]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/motd/templates/motd.erb
Revert porterbox fiddlings
[dsa-puppet.git] / modules / motd / templates / motd.erb
index e4fb77f759a3c561079c1fa319dcfc448f99cf4c..cfed6dca8c415acbba61bd78dd51c6bc03cfd97c 100644 (file)
+<% if @lsbmajdistrelease >= '7' -%>
+#!/bin/bash
+
+cat <<EOD
+<% end -%>
 
 This device is for authorized users only.  All traffic on this device
 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")
+  #s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n ")
+  s.split("\n").map{ |x|
+    if (x.length > width) then
+      #x.gsub!(/(.{1,#{width}}) +(?=\S)/, "\\1\n ")
+      x.gsub!(/(.{1,#{width}})( +|\Z)/, "\\1\n ")
+    end
+    x
+  }.join("\n")+"\n"
+end
+
+def markup(l)
+  l = l.gsub(/\[\[(.*?)\|(.*?)\]\]/, '\2')
+  l = l.gsub(/\[\[(\*|-)?(.*?)\]\]/, '\2')
+  return l
+end
+
+if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture')
+  arch = scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0]
+else
+  arch = 'unknown'
 end
 
 purp = ''
-if nodeinfo.has_key?('nameinfo')
-  purp += wrap(nodeinfo['nameinfo']) + "\n\n"
+if scope.lookupvar('site::nodeinfo').has_key?('nameinfo')
+  purp += " " + wrap(scope.lookupvar('site::nodeinfo')['nameinfo']) + "\n"
 end
 
-purp += 'Welcome to ' + fqdn
-if (nodeinfo['ldap'].has_key?('purpose'))
-  if nodeinfo['ldap']['purpose'].include?('buildd')
-    purp += ", the Debian "
-    if nodeinfo['ldap'].has_key?('architecture')
-      purp += nodeinfo['ldap']['architecture'][0]
-    end
-    purp += " build daemon\n"
-  elsif nodeinfo['ldap']['purpose'].include?('porterbox')
-    purp += ", the Debian "
-    if nodeinfo['ldap'].has_key?('architecture')
-      purp += nodeinfo['ldap']['architecture'][0]
-    end
-    purp += " porterbox\n"
-    purp += "\n"
-    purp += "See 'dchroot -l' for a list of available chroots.\n"
-    if nodeinfo['ldap'].has_key?('admin')
-      purp += "Please contact #{nodeinfo['ldap']['admin'][0]} for install requests,\n"
-      purp += "following the recommendations in <URL:http://dsa.debian.org/doc/install-req/>.\n"
+ninfo = scope.lookupvar('site::nodeinfo')
+
+extra = 'Welcome to ' + fqdn
+if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('purpose'))
+  p = scope.lookupvar('site::nodeinfo')['ldap']['purpose'].clone()
+  entries = ""
+
+  if p.delete('buildd')
+    entries += ", the Debian #{arch} build daemon"
+  end
+  if p.delete('porterbox') or classes.include?("porterbox")
+    entries += ", the Debian #{arch} porterbox"
+  end
+
+  if p.size() > 0
+    entries += (entries == "") ? ", " : ".  Also"
+    entries +="used for the following services:\n"
+    scope.lookupvar('site::nodeinfo')['ldap']['purpose'].sort.each do |l|
+      l = markup(l)
+      entries += "\t#{l}\n"
     end
   else
-    purp += ", used for the following services:\n"
-    nodeinfo['ldap']['purpose'].sort.each do |l|
-      if l =~ /\[\[(\*|-)?(.*?)\]\]/
-        l = $2
-      end
-      if l =~ /\[\[(.*?)\|(.*?)\]\]/
-        l = $2
+    entries += ".\n"
+  end
+  extra += entries
+else
+  extra += "."
+end
+purp += " " + wrap(extra) + "\n"
+
+if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('physicalHost'))
+  if ninfo['ldap']['physicalHost'][0] =~ /ganeti/
+    phys_host = 'cluster'
+  else
+    phys_host = 'physical host'
+  end
+  purp += wrap(" This virtual server runs on the #{phys_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
-      purp += "\t" + l + "\n"
+    else
+      purp += "\n"
     end
   end
-else
-  purp += "\n"
 end
 
-if (nodeinfo['ldap'].has_key?('physicalHost'))
-  purp += "\nThis virtual server runs on the physical host #{nodeinfo['ldap']['physicalHost'][0]}.\n"
+
+if scope.lookupvar('::cluster').to_s != 'undefined'
+  purp += "\n This server is a node in ganeti cluster: "
+  purp += scope.lookupvar('::cluster').to_s + ":\n"
+  purp += "\t" + scope.lookupvar('::cluster_nodes').split.sort.map{ |x| x.split('.')[0] }.join(", ") + ".\n"
+
+  if @lsbmajdistrelease >= '7'
+    purp += ""
+    purp += "\tCurrently the master node is $(cat /var/lib/ganeti/ssconf_master_node).\n"
+  end
+  #nodes = scope.lookupvar('::cluster_nodes').sort
+  #nodes.each do |node|
+  #  purp += "\t" + node + "\n"
+  #end
+  #nodes.reject{|node| node.eql?(fqdn)}.each do |node|
+  #  purp += "\t" + node + "\n"
+  #  scope.lookupvar('site::allnodeinfo')[node]['ipHostNumber'].each do |ip|
+  #    purp += "\t\t" + ip + "\n"
+  #  end
+  #end
+end
+
+
+if classes.include?("porterbox")
+  purp += "\n " + wrap("Disk space on porter boxes is often limited.  Please respect your fellow porters by cleaning up after yourself and deleting schroots and source/build trees in your ~ as soon as feasible.  DSA reserves the right to recover disk space as necessary.  See <URL:http://dsa.debian.org/doc/schroot/> for a brief tutorial on using schroot.")
 end
 
-if nodeinfo.has_key?('footer')
-  purp += "\n" + wrap(nodeinfo['footer']) + "\n"
+if ninfo['not-bacula-client'] then
+  purp += "\n " + wrap("Note that this host is _NOT_ being backed up.  If you care about your data, run your own backups.")
 end
+
+if scope.lookupvar('site::nodeinfo').has_key?('footer')
+  purp += "\n" + wrap(scope.lookupvar('site::nodeinfo')['footer'])
+end
+
 purp
 -%>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+<% if @lsbmajdistrelease >= '7' -%>
+EOD
+<% end -%>
 <%
 # vim:set et:
 # vim:set sts=2 ts=2: