http://www.mediawiki.org/wiki/Special:Code/MediaWiki/97946
Revision: 97946
Author: ariel
Date: 2011-09-23 18:56:51 +0000 (Fri, 23 Sep 2011)
Log Message:
-----------
fold in mwscript wrapper for calls to various php maintenance scripts
Modified Paths:
--------------
branches/ariel/xmldumps-backup/worker.py
Modified: branches/ariel/xmldumps-backup/worker.py
===================================================================
--- branches/ariel/xmldumps-backup/worker.py 2011-09-23 18:25:10 UTC (rev
97945)
+++ branches/ariel/xmldumps-backup/worker.py 2011-09-23 18:56:51 UTC (rev
97946)
@@ -154,6 +154,20 @@
return 0
return chunks
+class MultiVersion(object):
+ def MWScriptAsString(config, maintenanceScript):
+ return(" ".join(MultiVersion.MWScriptAsArray(config,
maintenanceScript)))
+
+ def MWScriptAsArray(config, maintenanceScript):
+ MWScriptLocation =
os.path.join(config.wikiDir,"..","multiversion","MWScript.php")
+ if exists(MWScriptLocation):
+ return [ MWScriptLocation, maintenanceScript ]
+ else:
+ return [ "%s/maintenance/%s" % (config.wikiDir,
maintenanceScript) ]
+
+ MWScriptAsString = staticmethod(MWScriptAsString)
+ MWScriptAsArray = staticmethod(MWScriptAsArray)
+
class DbServerInfo(object):
def __init__(self, wiki, dbName, errorCallback = None):
self.wiki = wiki
@@ -165,8 +179,14 @@
# if this fails what do we do about it? Not a bleeping thing.
*ugh* FIXME!!
if (not exists( self.wiki.config.php ) ):
raise BackupError("php command %s not found" %
self.wiki.config.php)
- command = "%s -q %s/maintenance/getSlaveServer.php --wiki=%s
--group=dump" % MiscUtils.shellEscape((
- self.wiki.config.php, self.wiki.config.wikiDir,
self.dbName))
+ commandList = MultiVersion.MWScriptAsArray(self.wiki.config,
"getSlaveServer.php")
+# command = "%s -q %s/maintenance/getSlaveServer.php --wiki=%s
--group=dump" % MiscUtils.shellEscape((
+ for i in range(0,len(commandList)):
+ phpCommand = MiscUtils.shellEscape(self.wiki.config.php)
+ dbName = MiscUtils.shellEscape(self.dbName)
+ commandList[i] = MiscUtils.shellEscape(commandList[i])
+ command = " ".join(commandList)
+ command = "%s -q %s --wiki=%s --group=dump" %
(phpCommand, command, dbName)
return RunSimpleCommand.runAndReturn(command,
self.errorCallback).strip()
def selectDatabaseServer(self):
@@ -226,8 +246,14 @@
# FIXME later full path
if (not exists( self.wiki.config.php ) ):
raise BackupError("php command %s not found" %
self.wiki.config.php)
- command = "echo 'print $wgDBprefix; ' | %s -q
%s/maintenance/eval.php --wiki=%s" % MiscUtils.shellEscape((
- self.wiki.config.php, self.wiki.config.wikiDir,
self.dbName))
+ commandList = MultiVersion.MWScriptAsArray(self.wiki.config,
"eval.php")
+# command = "echo 'print $wgDBprefix; ' | %s -q
%s/maintenance/eval.php --wiki=%s" % MiscUtils.shellEscape((
+ for i in range(0,len(commandList)):
+ phpCommand = MiscUtils.shellEscape(self.wiki.config.php)
+ dbName = MiscUtils.shellEscape(self.dbName)
+ commandList[i] = MiscUtils.shellEscape(commandList[i])
+ command = " ".join(commandList)
+ command = "echo 'print $wgDBprefix; ' | %s -q %s
--wiki=%s" % (phpCommand, command, dbName)
return RunSimpleCommand.runAndReturn(command,
self.errorCallback).strip()
@@ -2637,15 +2663,17 @@
articlesFile = runner.dumpDir.filenamePublicPath(f)
historyFile =
runner.dumpDir.filenamePublicPath(DumpFilename(runner.wiki, f.date,
self.historyDumpName, f.fileType, f.fileExt, f.chunk, f.checkpoint, f.temp))
currentFile =
runner.dumpDir.filenamePublicPath(DumpFilename(runner.wiki, f.date,
self.currentDumpName, f.fileType, f.fileExt, f.chunk, f.checkpoint, f.temp))
- command = [ "%s" % runner.wiki.config.php,
- "-q", "%s/maintenance/dumpBackup.php" %
runner.wiki.config.wikiDir,
- "--wiki=%s" % runner.dbName,
- "--full", "--stub", "--report=10000",
- "%s" % runner.forceNormalOption(),
- "--output=gzip:%s" % historyFile,
- "--output=gzip:%s" % currentFile,
- "--filter=latest", "--output=gzip:%s" %
articlesFile,
- "--filter=latest", "--filter=notalk",
"--filter=namespace:!NS_USER" ]
+ scriptCommand =
MultiVersion.MWScriptAsArray(runner.wiki.config, "dumpBackup.php")
+ command = [ "%s" % runner.wiki.config.php, "-q" ]
+ command.extend(scriptCommand)
+ command.extend(["--wiki=%s" % runner.dbName,
+ "--full", "--stub", "--report=10000",
+ "%s" % runner.forceNormalOption(),
+ "--output=gzip:%s" % historyFile,
+ "--output=gzip:%s" % currentFile,
+ "--filter=latest", "--output=gzip:%s" %
articlesFile,
+ "--filter=latest", "--filter=notalk",
"--filter=namespace:!NS_USER"
+ ])
if (f.chunk):
# set up start end end pageids for this piece
@@ -2760,12 +2788,13 @@
logging = runner.dumpDir.filenamePublicPath(files[0])
if (not exists( runner.wiki.config.php ) ):
raise BackupError("php command %s not found" %
runner.wiki.config.php)
- command = [ "%s" % runner.wiki.config.php,
- "-q", "%s/maintenance/dumpBackup.php" %
runner.wiki.config.wikiDir,
- "--wiki=%s" % runner.dbName,
+ scriptCommand =
MultiVersion.MWScriptAsArray(runner.wiki.config, "dumpBackup.php")
+ command = [ "%s" % runner.wiki.config.php, "-q" ]
+ command.extend(scriptCommand)
+ command.extend(["--wiki=%s" % runner.dbName,
"--logs", "--report=10000",
"%s" % runner.forceNormalOption(),
- "--output=gzip:%s" % logging ]
+ "--output=gzip:%s" % logging ])
pipeline = [ command ]
series = [ pipeline ]
error = runner.runCommand([ series ],
callbackStderr=self.progressCallback, callbackStderrArg=runner)
@@ -2839,6 +2868,7 @@
commands.append(series)
else:
for f in inputFiles:
+ print "input file ", f.filename, "for
buildcommand from xml dump"
# we should convert the input file to an output
file I guess
# we write regular files
outputFile = DumpFilename(self.wiki, f.date,
f.dumpName, f.fileType, self.fileExt)
@@ -3003,16 +3033,18 @@
else:
checkpointTime = ""
checkpointFile = ""
- dumpCommand = [ "%s" % self.wiki.config.php,
- "-q", "%s/maintenance/dumpTextPass.php" %
self.wiki.config.wikiDir,
- "--wiki=%s" % runner.dbName,
- "%s" % stubOption,
- "%s" % prefetch,
- "%s" % runner.forceNormalOption(),
- "%s" % checkpointTime,
- "%s" % checkpointFile,
- "--report=1000",
- "%s" % spawn ]
+ scriptCommand =
MultiVersion.MWScriptAsArray(runner.wiki.config, "dumpTextPass.php")
+ dumpCommand = [ "%s" % self.wiki.config.php, "-q" ]
+ dumpCommand.extend(scriptCommand)
+ dumpCommand.extend(["--wiki=%s" % runner.dbName,
+ "%s" % stubOption,
+ "%s" % prefetch,
+ "%s" % runner.forceNormalOption(),
+ "%s" % checkpointTime,
+ "%s" % checkpointFile,
+ "--report=1000",
+ "%s" % spawn
+ ])
dumpCommand = filter(None, dumpCommand)
command = dumpCommand
@@ -3384,12 +3416,13 @@
def buildCommand(self, runner, f):
if (not exists( runner.wiki.config.php ) ):
raise BackupError("php command %s not found" %
runner.wiki.config.php)
- command = [ "%s" % runner.wiki.config.php,
- "-q", "%s/maintenance/dumpBackup.php" %
runner.wiki.config.wikiDir,
- "--wiki=%s" % runner.dbName,
+ scriptCommand =
MultiVersion.MWScriptAsArray(runner.wiki.config, "dumpBackup.php")
+ command = [ "%s" % runner.wiki.config.php, "-q" ]
+ command.extend(scriptCommand)
+ command.extend([ "--wiki=%s" % runner.dbName,
"--plugin=AbstractFilter:%s/extensions/ActiveAbstract/AbstractFilter.php" %
runner.wiki.config.wikiDir,
"--current", "--report=1000", "%s" %
runner.forceNormalOption(),
- ]
+ ])
for v in self._variants():
variantOption = self._variantOption(v)
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs