Alex Monk has uploaded a new change for review.
https://gerrit.wikimedia.org/r/232675
Change subject: Make foreachwiki accept dblist expressions
......................................................................
Make foreachwiki accept dblist expressions
See I81df3a61, I0a460754
Bug: T101213
Change-Id: I1026070e83a8f7e7559b6f37d99a968e0e833bf2
---
A modules/scap/files/expanddblist
M modules/scap/manifests/scripts.pp
M modules/scap/templates/foreachwikiindblist.erb
3 files changed, 43 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/75/232675/1
diff --git a/modules/scap/files/expanddblist b/modules/scap/files/expanddblist
new file mode 100755
index 0000000..599d5ad
--- /dev/null
+++ b/modules/scap/files/expanddblist
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+dblistdir = '/srv/mediawiki/'
+
+import sys
+try:
+ expr = sys.argv[1]
+except IndexError:
+ print >>sys.stderr, "Must provide dblist expression"
+ sys.exit(1)
+
+import re
+
+# Python reimplementation of a couple of MWWikiversions functions
+# from MW multiversion.
+def readDbListFile(name):
+ fcontents = open(dblistdir + name).read()
+ if fcontents[:2] == "%%":
+ return evalDbListExpression(fcontents)
+ else:
+ return fcontents.splitlines()
+
+def evalDbListExpression(expr):
+ tokens = re.split(' +([-+]) +', expr)
+ result = set(readDbListFile(tokens[0]))
+ for i in range(1, len(tokens), 2):
+ op, term = tokens[i:i + 2]
+ dbs = readDbListFile(term)
+ if op == '+':
+ result.update(dbs)
+ elif op == '-':
+ result -= set(dbs)
+
+ return "\n".join(sorted(list(result)))
+
+print(evalDbListExpression(expr))
\ No newline at end of file
diff --git a/modules/scap/manifests/scripts.pp
b/modules/scap/manifests/scripts.pp
index 6fea8fb..a626678 100644
--- a/modules/scap/manifests/scripts.pp
+++ b/modules/scap/manifests/scripts.pp
@@ -39,6 +39,12 @@
mode => '0555',
content => template('scap/foreachwikiindblist.erb'),
}
+ file { '/usr/local/bin/expanddblist':
+ owner => 'root',
+ group => 'root',
+ mode => '0555',
+ source => 'puppet:///modules/scap/expanddblist',
+ }
file { '/usr/local/bin/mwscript':
owner => 'root',
group => 'root',
diff --git a/modules/scap/templates/foreachwikiindblist.erb
b/modules/scap/templates/foreachwikiindblist.erb
index e731ec2..9b822b7 100755
--- a/modules/scap/templates/foreachwikiindblist.erb
+++ b/modules/scap/templates/foreachwikiindblist.erb
@@ -1,7 +1,7 @@
#!/bin/bash
. /etc/profile.d/mediawiki.sh
-DBLIST=`<$1`
+DBLIST=$(expanddblist "$1")
CMD=$2
shift
shift
--
To view, visit https://gerrit.wikimedia.org/r/232675
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1026070e83a8f7e7559b6f37d99a968e0e833bf2
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Alex Monk <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits