Fix mctest to work with new WMF memcached setup
[lhc/web/wiklou.git] / maintenance / mctest.php
index 088eaa3..42461c5 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
- * This script makes several 'set', 'incr' and 'get' requests on every
- * memcached server and shows a report.
+ * Makes several 'set', 'incr' and 'get' requests on every memcached
+ * server and shows a report.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
-require_once( dirname( __FILE__ ) . '/Maintenance.php' );
+require_once( __DIR__ . '/Maintenance.php' );
 
+/**
+ * Maintenance script that  makes several 'set', 'incr' and 'get' requests
+ * on every memcached server and shows a report.
+ *
+ * @ingroup Maintenance
+ */
 class mcTest extends Maintenance {
        public function __construct() {
                parent::__construct();
@@ -33,14 +40,21 @@ class mcTest extends Maintenance {
        }
 
        public function execute() {
-               global $wgMemCachedServers, $wgMemCachedTimeout;
+               global $wgMainCacheType, $wgMemCachedTimeout, $wgObjectCaches;
 
                $iterations = $this->getOption( 'i', 100 );
                if ( $this->hasArg() ) {
-                       $wgMemCachedServers = array( $this->getArg() );
+                       $servers = array( $this->getArg() );
+               } elseif ( $wgMainCacheType === CACHE_MEMCACHED ) {
+                       global $wgMemCachedServers;
+                       $servers = $wgMemCachedServers ;
+               } elseif( isset( $wgObjectCaches[$wgMainCacheType] ) ) {
+                       $servers = $wgObjectCaches[$wgMainCacheType]['servers'];
+               } else {
+                       $this->error( "MediaWiki isn't configured for Memcached usage", 1 );
                }
 
-               foreach ( $wgMemCachedServers as $server ) {
+               foreach ( $servers as $server ) {
                        $this->output( $server . " ", $server );
                        $mcc = new MemCachedClientforWiki( array(
                                'persistant' => true,