Commit graph

444 commits

Author SHA1 Message Date
Aaron Schulz
aa9d1c91b6 Split up DBError classes into their own files
Change-Id: I671f1a88f0192a5199cfc9c6d7fbde1bff5c4ac8
2016-09-22 13:32:08 -07:00
Kunal Mehta
8e9d2e93ca Rename Convert*a*bleTimestamp to Convert*i*bleTimestamp
Per the dictionary.

Change-Id: I3dcef9fb020c8c6764ee073111ed8c032e4c5a63
2016-09-21 21:43:32 -07:00
jenkins-bot
e8985f2338 Merge "Move IP class to libs/" 2016-09-22 03:30:06 +00:00
jenkins-bot
07d5f507ae Merge "Remove MimeMagic depedency from FSFile and move it to /libs" 2016-09-22 03:25:20 +00:00
jenkins-bot
57711e7e13 Merge "Move IP::isConfigured/TrustedProxy() to ProxyLookup service" 2016-09-22 03:19:27 +00:00
Kunal Mehta
04dfd9b6bc Move IP class to libs/
Also fix some misplaced parenthesis in IPTest.

Change-Id: I84d6120c49f733ec45e7e0005259871808b7568b
2016-09-21 20:18:08 -07:00
Aaron Schulz
724b2cf912 Remove MimeMagic depedency from FSFile and move it to /libs
Change-Id: Ieaae909b49c798b6e9bed65d15961cefbdaec49b
2016-09-22 03:17:04 +00:00
jenkins-bot
ae4a435159 Merge "Move SamplingStatsdClient into stats/ subdirectory" 2016-09-22 03:02:14 +00:00
Kunal Mehta
39ee83f388 Move IP::isConfigured/TrustedProxy() to ProxyLookup service
This creates a new ProxyLookup service to house the
IP::isConfiguredProxy() and IP::isTrustedProxy() functions. The main
purpose of this refactoring is to make the IP class entirely independent
from MediaWiki, so it can be split into a separate library.

Change-Id: I60434a5f3d99880352bc0f72349c33b7d029ae09
2016-09-21 20:02:09 -07:00
Aaron Schulz
ff5abb66b4 Migrate callers to new MWFileProps::getPropsFromPath() method
* FSFile should not be responsible for handling this much logic.
* Make more MediaHandler classes aware of the fact that an object
  other than File might be passed in. Use the FSFile instead of a
  useless empty stdClass object.
* Also added more fields to FSFile::placeholderProps to make it
  more complete.

Change-Id: I9fe764b2a7261af507c6555e6a57273cf7d00d36
2016-09-22 00:33:46 +00:00
Kunal Mehta
5f56f08dfa Move SamplingStatsdClient into stats/ subdirectory
Change-Id: Ib871aa5cd674d58da3d19bfbb5660539afc863b3
2016-09-21 00:47:55 -07:00
jenkins-bot
21dd35ab86 Merge "Move XMP* classes to includes/libs" 2016-09-21 03:57:31 +00:00
Kunal Mehta
8669bced5a Move XMP* classes to includes/libs
These no longer have any dependencies upon MediaWiki and can be split
out into a separate library.

Tests were updated for the new location and to no longer depend upon
MediaWikiTestCase.

Bug: T100922
Change-Id: I6ad507fa883d5934b807f9e31c507659d0730b52
2016-09-20 20:20:10 -07:00
jenkins-bot
60c869b070 Merge "Move some FileBackend related classes to /libs" 2016-09-20 23:17:08 +00:00
Aaron Schulz
adfd1b93d9 Move DatabasePostgres to /libs/rdbms
Fixed all IDEA warnings in the postgres classes too.

Change-Id: I06b4c5b2c581fb65552d980cc106aa10fed40285
2016-09-19 14:55:31 -07:00
jenkins-bot
3f55fc521f Merge "Move LBFactorySingle to /libs/rdbms" 2016-09-19 16:15:15 +00:00
Aaron Schulz
b979fca240 Move DatabaseSqlite to /libs/rdbms
Change-Id: Ibda20041803deb922b7e3803cba6fc8d15214169
2016-09-19 00:52:54 -07:00
Aaron Schulz
8a573aa1f5 Move some FileBackend related classes to /libs
Change-Id: I0c3a84c2ed8b869519f4d38475a77539c24a88a8
2016-09-19 07:31:25 +00:00
Aaron Schulz
25a1651aad Make LockManager use StatusValue and move classes to /libs
Change-Id: Ifa41fc2939f3515d4a056746b0fcbff79786d25b
2016-09-19 04:34:28 +00:00
Aaron Schulz
896a4c74de Move LBFactorySingle to /libs/rdbms
Also add newFromConnection() methods for cleaner looking construction
since the IDatabase is fundamental and required.

Change-Id: Ife478d045cee92a30c91e9004833a557488bd512
2016-09-17 19:13:21 -07:00
Aaron Schulz
e4948970dd Fix file/class name mismatch from e2adcc89bb
Change-Id: Ieac65f29a13612cecd421b62e1cb3a3f47552bb6
2016-09-17 19:00:01 -07:00
jenkins-bot
72953cd703 Merge "Move LoadBalancerSingle to /libs/rdbms" 2016-09-18 01:27:50 +00:00
Aaron Schulz
e2adcc89bb Move LoadBalancerSingle to /libs/rdbms
Change-Id: I2e8177ca8fa6b9fcdec87e44f0cfeb11bb71f2bc
2016-09-17 18:04:42 -07:00
jenkins-bot
2155a01fd1 Merge "Move LBFactoryMulti to /libs/rdbms" 2016-09-18 00:57:01 +00:00
Aaron Schulz
57ba462e4b Move LBFactoryMulti to /libs/rdbms
Also rename $wiki => $domain and lastWiki => lastDomain.

Change-Id: I2a30f42721715c56f5cddf9f07c10e8de70addd1
2016-09-17 17:16:23 -07:00
Aaron Schulz
fd224eac76 Move mysql database classes to /libs/rdbms
Change-Id: I1ba1799deec10e5a8ab8829b69e0708626e723e2
2016-09-17 23:38:51 +00:00
Aaron Schulz
d175b391ae Move LBFactorySimple to /libs/rdbms
* Refactored LBFactory a bit to make this possible.
* Move newChronologyProtector() up to LBFactory and
  make a lazy-loading method instead.
* Move appendPreShutdownTimeAsQuery() up to LBFactory.
* Inject the web request values for LBFactory from Setup.php.
* Remove unused laggedSlaveUsed() method.

Change-Id: Ie8a38a6f4d6359680eb6a5be24a34e30b9816479
2016-09-17 23:13:00 +00:00
Aaron Schulz
847b91bf1f Make database classes handle hyphens in $wgDBname
* Add DatabaseDomain class to handle passing domains around.
It also can be cast to and from strings, which are of the same
format as wfWikiId() except with hyphens escaped.
* Make IDatabase::getDomainID() use these IDs so they can be
passed into LoadBalancer::getConnection() and friends without
breaking on sites with a hyphen in the DB name.
* Add more LBFactory unit tests for domains.

Bug: T145840
Change-Id: Icfed62b251af8cef706a899197c3ccdb730ef4d1
2016-09-17 15:29:21 -07:00
Aaron Schulz
5bc9b990ac Cleanups to DatabaseMysqlBase
* Avoid global methods
* Inject global variables
* Remove $wgAllDBsAreLocalhost hack

Change-Id: I54b23654def1f83518764ad697434aebfc6cef73
2016-09-17 06:01:19 +00:00
Aaron Schulz
403a1ea178 Move all of the reasonable DatabaseBase methods to Database class
The Database class was previously just a short-hand for "Database::",
and such calls should still work. The class now resides in /libs/rdbms.

The subclasses now extend DatabaseBase to avoid breaking type hints
that use that (hints use either IDatabase or DatabaseBase).

Also, use CASCADE with DROP TABLE for MySQL as with other DBs.
Keep SQLite excempt due to lack of support.

Added getDomainID() methods to avoid mentioning the word "wiki".

Change-Id: Ibd05d786cb26c21dcc9cb9601f6b2b52056af9ae
2016-09-17 03:38:05 +00:00
jenkins-bot
231278d0cb Merge "Split out ConvertableTimestamp class" 2016-09-16 03:07:28 +00:00
Aaron Schulz
e10f272a05 Split out ConvertableTimestamp class
* Make TimestampException a regular exception.
* Make DatabaseBase use ConvertableTimestamp.

Change-Id: I849737c9c187e8e0c6e080887ec0656e034f80d2
2016-09-16 03:00:09 +00:00
Aaron Schulz
21a9bb06b4 Move LoadMonitorMySQL to LoadMonitor
* The LoadMonitor interface is now ILoadMonitor.
* Nothing in this code was MySQL specific.
  Now any DB type can benefit from a LoadMonitor.

Change-Id: I272a72cd55a70f99a866d518d44cb3bcaca91b9e
2016-09-15 23:56:39 +00:00
Stanislav Malyshev
7e18cfc3b5 Infrastructure for augmenting search results
Bug: T117493
Change-Id: Ia5413a7846cc961026a2dc3542b619493bc76a23
2016-09-15 15:44:03 -07:00
jenkins-bot
0387ce5cc6 Merge "Rename LBFactory => LBFactoryMW and make LBFactory in /libs" 2016-09-15 17:39:35 +00:00
Aaron Schulz
0e5cd18b74 Rename LBFactory => LBFactoryMW and make LBFactory in /libs
The former extends the later with MW-specific logic.

Also removed a wf* method call from ChronologyProtector.

Change-Id: I325f59b7467ab9c2137731d1ce69816f5a020f03
2016-09-15 17:14:32 +00:00
jenkins-bot
efe855145d Merge "Move Linker::formatTemplates() to separate class, remove global usage" 2016-09-15 16:52:10 +00:00
Aaron Schulz
aeedfb8526 Remove unused LBFactoryFake class
Change-Id: I88acf72fc32c7e3c9bead81d11c5adfd8dff6151
2016-09-14 22:02:43 -07:00
Aaron Schulz
0bbba6e0d4 Move various DB helper classes to /libs/rdbms
Change-Id: I0724f1acce4f6c43b1f0983fa119e628e7c53ba5
2016-09-14 20:40:12 -07:00
Aaron Schulz
c1c68c92f2 Move LoadBalancer to /libs/rdbms
Change-Id: Ic87f1cc84ba44be20f345944406e1d8a34be1c96
2016-09-14 20:27:08 -07:00
jenkins-bot
21e3f9ca43 Merge "Exception cleanups for LoadBalancer" 2016-09-15 02:19:03 +00:00
Aaron Schulz
5820c6dcac Exception cleanups for LoadBalancer
* Make the error message itself be dumb/raw.
* Make the exception exposer show the same GUI message.
* Remove overzelous wgLang check in MWExceptionRenderer.

Change-Id: Ifffff3b3cc785ea3080e4975efe33b3c2cf304d6
2016-09-15 01:32:43 +00:00
jenkins-bot
7813e93a1c Merge "Move DBConnRef and ChronologyProtector to /libs/rdbms" 2016-09-15 00:46:03 +00:00
jenkins-bot
c78b405080 Merge "Move TransactionProfiler to /libs/rdbms" 2016-09-15 00:43:34 +00:00
Aaron Schulz
4f509e92ab Move DBConnRef and ChronologyProtector to /libs/rdbms
Change-Id: If2c4b314a5c39311328843f534d91bf90823e179
2016-09-14 17:29:54 -07:00
Aaron Schulz
9d419f69b1 Move IDatabase/ILoadBalancer to /libs/rdbms
Change-Id: I71f980b1024dc2fbca9cafbad2c9daebb6f28c9b
2016-09-14 16:34:50 -07:00
Aaron Schulz
048da5273b Move DBError to /libs/rdbms/exception
Change-Id: I2ad40db66a68f03fb34a63278a652e0505195076
2016-09-14 11:55:33 -07:00
Aaron Schulz
00bee02971 Add MWExceptionRenderer class and decouple DBError
* This handles the work of showing exceptions so that
  MWException does not have too.
* Simplify the DBError classes to regular Exception
  classes. Lots of pointless prettification has been
  removed, but DBConnectionError still gets the usual
  special treatment of a fallback page and Google form.
* Remove hacky file cache fallback code that probably
  did not work.
* Make MWExceptionHandler::report() wrap
  MWExceptionExposer::output().
* Make MWException::runHooks() wrap
  MWExceptionExposer::runHooks().

Change-Id: I5dfdc84e94ddac65417226cf7c84513ebb9f9faa
2016-09-14 11:53:55 -07:00
Aaron Schulz
531aa2906e Move TransactionProfiler to /libs/rdbms
Change-Id: I13173facc9f101bca69e3bf3e85f292f8468e855
2016-09-14 05:18:57 -07:00
Aaron Schulz
9c8d885060 Move LoadMonitor classes to libs/rdbms/loadmonitor
Change-Id: Ib18108f24ff8b9d05dc324bad132f597b3e2ddef
2016-09-14 10:56:52 +00:00