jenkins-bot has submitted this change and it was merged.

Change subject: Add script to dump Redis database for debugging.
......................................................................


Add script to dump Redis database for debugging.

Change-Id: Ie6dd37c563f23ed66d8dcb4928af332f141d98bd
---
A maintenance/dump_redis.php
1 file changed, 59 insertions(+), 0 deletions(-)

Approvals:
  Ori.livneh: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/maintenance/dump_redis.php b/maintenance/dump_redis.php
new file mode 100755
index 0000000..fd58f08
--- /dev/null
+++ b/maintenance/dump_redis.php
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * Dumps Redis information for GettingStarted.
+ * Intended primarily for debugging in test environments.
+ *
+ * It may result in a large amount of information in production.
+ *
+ * @author Ori Livneh <o...@wikimedia.org>
+ * @author Matthew Flaschen <mflasc...@wikimedia.org>
+ */
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if( $IP === false ) {
+       $IP = __DIR__ . '/../../..';
+}
+
+require_once "$IP/maintenance/Maintenance.php";
+
+class DumpRedisCategorySync extends Maintenance {
+       public function __construct() {
+               parent::__construct();
+               $this->addOption( 'all', 'Dump all keys with the prefix; can 
show keys from old naming schemes and other wikis (e.g. a different language), 
but can perform poorly in large Redis databases.  Will not include category 
name', false, false );
+               $this->mDescription = 'Dump Redis data used for 
RedisCategorySync';
+       }
+
+       protected function printSet( $client, $key, $categoryName = null ) {
+               if ( $categoryName !== null ) {
+                       $this->output( "Cat: $categoryName\n" );
+               }
+               $this->output( "Key: $key\n" );
+               $this->output( 
"===========================================================\n" );
+               $members = $client->sMembers( $key );
+               foreach ( $members as $ind => $el ) {
+                       $this->output( "$ind) \"$el\"\n" );
+               }
+               $this->output( "\n" );
+       }
+
+       public function execute() {
+               $client = RedisCategorySync::getClient();
+               if ( $this->hasOption( 'all' ) ) {
+                       $keys = $client->keys( 'RedisCategorySync*' );
+                       foreach ( $keys as $key ) {
+                               $this->printSet( $client, $key );
+                       }
+               } else {
+                       $categories = RedisCategorySync::getCategories();
+                       foreach ( $categories as $catName ) {
+                               $cat = Category::newFromName( $catName );
+                               $key = RedisCategorySync::makeCategoryKey( $cat 
);
+                               $this->printSet( $client, $key, $catName );
+                       }
+               }
+       }
+}
+
+$maintClass = 'DumpRedisCategorySync';
+require_once( RUN_MAINTENANCE_IF_MAIN );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie6dd37c563f23ed66d8dcb4928af332f141d98bd
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/GettingStarted
Gerrit-Branch: master
Gerrit-Owner: Mattflaschen <mflasc...@wikimedia.org>
Gerrit-Reviewer: Mattflaschen <mflasc...@wikimedia.org>
Gerrit-Reviewer: Ori.livneh <o...@wikimedia.org>
Gerrit-Reviewer: Swalling <swall...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to