Aaron Schulz has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/278988

Change subject: Add templateOverridesBySection to multi LBFactory
......................................................................

Add templateOverridesBySection to multi LBFactory

This makes it easier to support pt-heartbeat with shard "channels"
since the channel is based on the section name.

Change-Id: Ie0128ee2914e8dc0063c759704373b2440df5ed8
---
M includes/db/loadbalancer/LBFactoryMulti.php
1 file changed, 20 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/88/278988/1

diff --git a/includes/db/loadbalancer/LBFactoryMulti.php 
b/includes/db/loadbalancer/LBFactoryMulti.php
index f8ddd12..3a543ac 100644
--- a/includes/db/loadbalancer/LBFactoryMulti.php
+++ b/includes/db/loadbalancer/LBFactoryMulti.php
@@ -23,7 +23,15 @@
 
 /**
  * A multi-wiki, multi-master factory for Wikimedia and similar installations.
- * Ignores the old configuration globals
+ * Ignores the old configuration globals.
+ *
+ * Template override precedence (highest => lowest):
+ *   - templateOverridesByServer
+ *   - masterTemplateOverrides
+ *   - templateOverridesBySection/templateOverridesByCluster
+ *   - externalTemplateOverrides
+ *   - serverTemplate
+ * Overrides only work on top level keys (so nested values will not be merged).
  *
  * Configuration:
  *     sectionsByDB                A map of database names to section names.
@@ -63,7 +71,7 @@
  *     templateOverridesByServer   A 2-d map overriding serverTemplate and
  *                                 externalTemplateOverrides on a 
server-by-server basis. Applies
  *                                 to both core and external storage.
- *
+ *     templateOverridesBySection  A 2-d map overriding the server info by 
section.
  *     templateOverridesByCluster  A 2-d map overriding the server info by 
external storage cluster.
  *
  *     masterTemplateOverrides     An override array for all master servers.
@@ -119,6 +127,9 @@
         */
        private $templateOverridesByServer;
 
+       /** @var array A 2-d map overriding the server info by section */
+       private $templateOverridesBySection;
+
        /** @var array A 2-d map overriding the server info by external storage 
cluster */
        private $templateOverridesByCluster;
 
@@ -162,7 +173,7 @@
                $required = [ 'sectionsByDB', 'sectionLoads', 'serverTemplate' 
];
                $optional = [ 'groupLoadsBySection', 'groupLoadsByDB', 
'hostsByName',
                        'externalLoads', 'externalTemplateOverrides', 
'templateOverridesByServer',
-                       'templateOverridesByCluster', 'masterTemplateOverrides',
+                       'templateOverridesByCluster', 
'templateOverridesBySection', 'masterTemplateOverrides',
                        'readOnlyBySection', 'loadMonitorClass' ];
 
                foreach ( $required as $key ) {
@@ -222,8 +233,13 @@
                        $readOnlyReason = $this->readOnlyBySection[$section];
                }
 
+               $template = $this->serverTemplate;
+               if ( isset( $this->templateOverridesBySection[$section] ) ) {
+                       $template = $this->templateOverridesBySection[$section] 
+ $template;
+               }
+
                return $this->newLoadBalancer(
-                       $this->serverTemplate,
+                       $template,
                        $this->sectionLoads[$section],
                        $groupLoads,
                        $readOnlyReason

-- 
To view, visit https://gerrit.wikimedia.org/r/278988
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie0128ee2914e8dc0063c759704373b2440df5ed8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to