Lcarr has submitted this change and it was merged.

Change subject: make ircecho config sane (not just very long strings)
......................................................................


make ircecho config sane (not just very long strings)

easier to read and easier to see what changed in a diff

Change-Id: Ibb454f8883bfa89122260e53461108ab8775b38a
---
M manifests/gerrit.pp
M manifests/ldap.pp
M manifests/misc/irc.pp
M manifests/misc/wikibugs.pp
M manifests/openstack.pp
M manifests/site.pp
M templates/gerrit/hookconfig.py.erb
M templates/ircecho/default.erb
8 files changed, 75 insertions(+), 19 deletions(-)

Approvals:
  Lcarr: Verified; Looks good to me, approved



diff --git a/manifests/gerrit.pp b/manifests/gerrit.pp
index 94a3c57..76a6274 100644
--- a/manifests/gerrit.pp
+++ b/manifests/gerrit.pp
@@ -333,9 +333,21 @@
 
 class gerrit::ircbot {
 
-       $ircecho_infile = 
"/var/lib/gerrit2/review_site/logs/operations.log:#wikimedia-operations;/var/lib/gerrit2/review_site/logs/labs.log:#wikimedia-labs;/var/lib/gerrit2/review_site/logs/mobile.log:#wikimedia-mobile;/var/lib/gerrit2/review_site/logs/parsoid.log:#mediawiki-parsoid;/var/lib/gerrit2/review_site/logs/visualeditor.log:#mediawiki-visualeditor;/var/lib/gerrit2/review_site/logs/mediawiki.log:#mediawiki;/var/lib/gerrit2/review_site/logs/wikimedia-dev.log:#wikimedia-dev;/var/lib/gerrit2/review_site/logs/semantic-mediawiki.log:#semantic-mediawiki,#mediawiki;/var/lib/gerrit2/review_site/logs/wikidata.log:#wikimedia-wikidata"
+       #target channels can be either strings or arrays.
+       #channels names will get a # prepended if it doesn't already start with 
one
+       $ircecho_logbase = "/var/lib/gerrit2/review_site/logs"
+       $ircecho_logs = {
+               "${ircecho_logbase}/operations.log"              => 
"#wikimedia-operations",
+               "${ircecho_logbase}/labs.log"                    => 
"#wikimedia-labs",
+               "${ircecho_logbase}/mobile.log"                  => 
"#wikimedia-mobile",
+               "${ircecho_logbase}/parsoid.log"                 => 
"#mediawiki-parsoid",
+               "${ircecho_logbase}/visualeditor.log"            => 
"#mediawiki-visualeditor",
+               "${ircecho_logbase}/mediawiki.log"               => 
"#mediawiki",
+               "${ircecho_logbase}/wikimedia-dev.log"           => 
"#wikimedia-dev",
+               "${ircecho_logbase}/semantic-mediawiki.log"      => 
["#semantic-mediawiki", "#mediawiki"],
+               "${ircecho_logbase}/wikidata.log"                => 
"#wikimedia-wikidata",
+       }
        $ircecho_nick = "gerrit-wm"
-       $ircecho_chans = 
"#wikimedia-operations,#wikimedia-labs,#wikimedia-mobile,#mediawiki-parsoid,#mediawiki-visualeditor,#mediawiki,#wikimedia-dev,#wikimedia-wikidata,#semantic-mediawiki"
        $ircecho_server = "irc.freenode.net"
 
        package { ['ircecho']:
diff --git a/manifests/ldap.pp b/manifests/ldap.pp
index daf1d05..71d5705 100644
--- a/manifests/ldap.pp
+++ b/manifests/ldap.pp
@@ -567,9 +567,8 @@
 
        if $realm == "labs" {
                if $managehome {
-                       $ircecho_infile = "/var/log/manage-exports.log"
+                       $ircecho_logs = { "/var/log/manage-exports.log" => 
"#wikimedia-labs" }
                        $ircecho_nick = "labs-home-wm"
-                       $ircecho_chans = "#wikimedia-labs"
                        $ircecho_server = "irc.freenode.net"
        
                        package { "ircecho":
diff --git a/manifests/misc/irc.pp b/manifests/misc/irc.pp
index bdb2170..22c7d50 100644
--- a/manifests/misc/irc.pp
+++ b/manifests/misc/irc.pp
@@ -77,10 +77,13 @@
 
 class misc::ircecho {
 
-       # To use this class, you must define some variables; here's an example:
-       #  $ircecho_infile = "/var/log/nagios/irc.log"
+       # To use this class, you must define some variables; here's an example
+       # (leading hashes on channel names are added for you if missing):
+       #  $ircecho_logs = {
+       #    "/var/log/nagios/irc.log" => 
["wikimedia-operations","#wikimedia-tech"],
+       #    "/var/log/nagios/irc2.log" => "#irc2",
+       #  }
        #  $ircecho_nick = "nagios-wm"
-       #  $ircecho_chans = "#wikimedia-operations,#wikimedia-tech"
        #  $ircecho_server = "irc.freenode.net"
 
        package { "ircecho":
diff --git a/manifests/misc/wikibugs.pp b/manifests/misc/wikibugs.pp
index 5c4b58c..b800d4c 100644
--- a/manifests/misc/wikibugs.pp
+++ b/manifests/misc/wikibugs.pp
@@ -19,10 +19,13 @@
 
        # Some Bugzilla product have been blessed with their own log files out 
of the
        # default one. Values are hardcoded in the Wikibugs perl script
-       $ircecho_infile = 
'/var/lib/wikibugs/logs/wikimedia-labs.log:#wikimedia-labs;/var/lib/wikibugs/logs/wikimedia-mobile.log:#wikimedia-mobile;/var/lib/wikibugs/logs/mediawiki.log:#mediawiki-feed'
+       $ircecho_logbase = '/var/lib/wikibugs/logs'
+       $ircecho_logs = {
+               "${ircecho_logbase}/wikimedia-labs.log"           => 
"#wikimedia-labs",
+               "${ircecho_logbase}/wikimedia-mobile.log"         => 
"#wikimedia-mobile",
+               "${ircecho_logbase}/mediawiki.log"                => 
"#mediawiki-feed",
+       }
        $ircecho_nick = "wikibugs"
-       # Add channels defined in $ircecho_infile:
-       $ircecho_chans = '#wikimedia-labs,#wikimedia-mobile,#mediawiki-feed'
        $ircecho_server = 'irc.freenode.net'
 
        include misc::ircecho
diff --git a/manifests/openstack.pp b/manifests/openstack.pp
index 780d049..9b6292f 100644
--- a/manifests/openstack.pp
+++ b/manifests/openstack.pp
@@ -172,9 +172,8 @@
 }
 
 class openstack::project-storage-service {
-       $ircecho_infile = "/var/lib/glustermanager/manage-volumes.log"
+       $ircecho_logs = { "/var/lib/glustermanager/manage-volumes.log" => 
"wikimedia-labs" }
        $ircecho_nick = "labs-storage-wm"
-       $ircecho_chans = "#wikimedia-labs"
        $ircecho_server = "irc.freenode.net"
 
        package { "ircecho":
diff --git a/manifests/site.pp b/manifests/site.pp
index 436f6c7..7a33769 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -683,9 +683,8 @@
        $cluster = "misc"
        $domain_search = "wikimedia.org pmtpa.wmnet eqiad.wmnet 
esams.wikimedia.org"
 
-       $ircecho_infile = "/var/log/logmsg"
+       $ircecho_logs = { "/var/log/logmsg" => "#wikimedia-tech" }
        $ircecho_nick = "logmsgbot"
-       $ircecho_chans = "#wikimedia-operations"
        $ircecho_server = "irc.freenode.net"
 
        include role::applicationserver::maintenance,
@@ -1732,9 +1731,8 @@
 node "neon.wikimedia.org" {
        $domain_search = "wikimedia.org pmtpa.wmnet eqiad.wmnet 
esams.wikimedia.org"
 
-       $ircecho_infile = "/var/log/icinga/irc.log"
+       $ircecho_logs = { "/var/log/icinga/irc.log" => "#wikimedia-operations" }
        $ircecho_nick = "icinga-wm"
-       $ircecho_chans = "#wikimedia-operations"
        $ircecho_server = "irc.freenode.net"
        include standard,
                icinga::monitor,
@@ -2133,6 +2131,7 @@
 
 node "spence.wikimedia.org" {
        $ganglia_aggregator = "true"
+       $nagios_server = "true"
 
        include standard,
                nfs::netapp::home,
diff --git a/templates/gerrit/hookconfig.py.erb 
b/templates/gerrit/hookconfig.py.erb
index 6e390fd..aafcc3a 100644
--- a/templates/gerrit/hookconfig.py.erb
+++ b/templates/gerrit/hookconfig.py.erb
@@ -11,7 +11,7 @@
 logdir = "/var/lib/gerrit2/review_site/logs"
 
 # Files where Gerrit projects will have their notifications written to
-# See manifests/gerrit.pp $ircecho_infile for actual file/channel map
+# See manifests/gerrit.pp $ircecho_logs for actual file/channel map
 filenames = {
        "operations/puppet": {
                "production" : "operations.log",
diff --git a/templates/ircecho/default.erb b/templates/ircecho/default.erb
index 8ecd297..ed7112a 100644
--- a/templates/ircecho/default.erb
+++ b/templates/ircecho/default.erb
@@ -1,3 +1,44 @@
+<%
+# logs is a hash which maps log names to values which can be
+# either a single channel name or a list of channels
+# channel name can optionally leave out the leading #.
+
+def infile(logs)
+       # make a list of flattened strings w/ one log each and that log's 
channels
+       logs = logs.map {|log,channels|
+               # prepend # on channel name if missing
+               channels = channels.map {|channel| channel.sub(/^#?/,'#') }
+
+               # join all channels to a single string. separate them w/ commas
+               channels = channels.join(",")
+
+               # join the log name and (the already joined) channel list. 
separate them w/ a colon
+               "#{log}:#{channels}"
+       }
+
+       # join the whole list of logs to one big string.
+       # separate each log from the next with a semicolon.
+       logs = logs.join(";")
+
+       return logs
+end
+
+def chans(logs)
+       # make a list of all channels for all logs
+       channels = logs.values.flatten
+
+       # prepend # on channel name if missing
+       channels = channels.map {|channel| channel.sub(/^#?/,'#') }
+
+       # discard duplicate channels (channels which receive from multiple logs)
+       channels = channels.uniq
+
+       # join all channels to a single string. separate them w/ commas
+       channels = channels.join(",")
+
+       return channels
+end
+-%>
 # Defaults for ircecho initscript
 # sourced by /etc/init.d/ircecho
 # installed at /etc/default/ircecho by the maintainer scripts
@@ -5,7 +46,7 @@
 #
 # This is a POSIX shell fragment
 #
-INFILE="<%= ircecho_infile %>"
+INFILE="<%= infile(ircecho_logs) %>"
 NICK="<%= ircecho_nick %>"
-CHANS="<%= ircecho_chans %>"
+CHANS="<%= chans(ircecho_logs) %>"
 SERVER="<%= ircecho_server %>"

-- 
To view, visit https://gerrit.wikimedia.org/r/8344
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ibb454f8883bfa89122260e53461108ab8775b38a
Gerrit-PatchSet: 6
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Jeremyb <[email protected]>
Gerrit-Reviewer: Demon <[email protected]>
Gerrit-Reviewer: Jeremyb <[email protected]>
Gerrit-Reviewer: Lcarr <[email protected]>
Gerrit-Reviewer: Ryan Lane <[email protected]>
Gerrit-Reviewer: Thehelpfulone <[email protected]>
Gerrit-Reviewer: gerrit2 <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to