Substantive changes: * Remove the parameters globalKeyLB and localKeyLB, not needed in production, probably not used anywhere. * Add a "cluster" parameter, for production. * Don't call markServerDown() in LoadBalancer mode. Style changes: * Document config parameters separately from constructor parameters, to clarify the role of the wiring normalisation. * Inject a load balancer from ObjectCache to SqlBagOStuff, using a closure to defer construction. * Clarify the split between LoadBalancer mode and server array mode by introducing a useLB property. Use it instead of special shard index values and array counts. * multiPrimaryModeType wasn't needed anywhere and wasn't available in the constructor, so it just became a boolean multiPrimaryMode. * Add a test covering most of the server array (!useLB) branches. Bug: T212129 Change-Id: Ib097082efb40b514a29a42286dc362f2e3743ee4
21 lines
549 B
PHP
21 lines
549 B
PHP
<?php
|
|
|
|
use MediaWiki\MediaWikiServices;
|
|
use Wikimedia\TestingAccessWrapper;
|
|
|
|
/**
|
|
* @group BagOStuff
|
|
* @group Database
|
|
* @covers SqlBagOStuff
|
|
*/
|
|
class SqlBagOStuffServerArrayTest extends BagOStuffTestBase {
|
|
protected function newCacheInstance() {
|
|
// Extract server config from main load balancer
|
|
$lb = MediaWikiServices::getInstance()->getDBLoadBalancer();
|
|
$servers = TestingAccessWrapper::newFromObject( $lb )->servers;
|
|
return ObjectCache::newFromParams( [
|
|
'class' => SqlBagOStuff::class,
|
|
'servers' => [ $servers[0] ]
|
|
] );
|
|
}
|
|
}
|