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