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