X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=modules%2Fmotd%2Ftemplates%2Fmotd.erb;h=45e529ab6933eb029ceafaf6ba532041138655c7;hb=688ae7d46e7cc388b893aadf3a21b0df692c7562;hp=777ce8fcb5fdd1c2a6d9e9105a950905482921f4;hpb=83d4d78d784e5d53a9df5d5df6f5b785d10fbab0;p=dsa-puppet.git diff --git a/modules/motd/templates/motd.erb b/modules/motd/templates/motd.erb index 777ce8fc..45e529ab 100644 --- a/modules/motd/templates/motd.erb +++ b/modules/motd/templates/motd.erb @@ -12,59 +12,74 @@ def wrap(s, width=78) end def markup(l) - if l =~ /\[\[(\*|-)?(.*?)\]\]/ - l = $2 - end - if l =~ /\[\[(.*?)\|(.*?)\]\]/ - l = $2 - end + l = l.gsub(/\[\[(.*?)\|(.*?)\]\]/, '\2') + l = l.gsub(/\[\[(\*|-)?(.*?)\]\]/, '\2') return l 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\n" end +ninfo = scope.lookupvar('site::nodeinfo') + purp += 'Welcome to ' + fqdn -if (nodeinfo['ldap'].has_key?('purpose')) - if nodeinfo['ldap']['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'].has_key?('architecture') - purp += nodeinfo['ldap']['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']['purpose'].include?('porterbox') + purp += " build daemon" + end + + if p.delete('porterbox') purp += ", the Debian " - if nodeinfo['ldap'].has_key?('architecture') - purp += nodeinfo['ldap']['architecture'][0] + if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture') + purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0] end - purp += " porterbox\n" - purp += "\n" - purp += "See 'dchroot -l' or 'schroot -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 .\n" + 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 .\n" end - else + end + + if p.size() > 0 purp += ", used for the following services:\n" - nodeinfo['ldap']['purpose'].sort.each do |l| + 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['ldap'].has_key?('physicalHost')) - purp += "\nThis virtual server runs on the physical host #{nodeinfo['ldap']['physicalHost'][0]}.\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 = [] -allnodeinfo.keys.sort.each do |node| - if allnodeinfo[node]['physicalHost'] and allnodeinfo[node]['physicalHost'].include?(fqdn) +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 @@ -72,9 +87,9 @@ unless vms.empty? purp += "\nThe following virtual machines run on this system:\n" vms.each do |node| purp += "\t- #{node}" - if allnodeinfo[node]['purpose'] + if scope.lookupvar('site::allnodeinfo')[node]['purpose'] purp += ":\n" - allnodeinfo[node]['purpose'].sort.each do |l| + scope.lookupvar('site::allnodeinfo')[node]['purpose'].sort.each do |l| l = markup(l) purp += "\t " + l + "\n" end @@ -85,9 +100,26 @@ unless vms.empty? end -if nodeinfo.has_key?('footer') - purp += "\n" + wrap(nodeinfo['footer']) + "\n" +if not scope.lookupvar('::cluster').empty? + purp += "\nThis server is a node in ganeti cluster: " + purp += scope.lookupvar('::cluster') + ".\n" + nodes = scope.lookupvar('::cluster_nodes').split.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 scope.lookupvar('site::nodeinfo').has_key?('footer') + purp += "\n" + wrap(scope.lookupvar('site::nodeinfo')['footer']) + "\n" +end + purp -%>