Mwalker has submitted this change and it was merged.
Change subject: (FR #1144) Damaged queue navigator
......................................................................
(FR #1144) Damaged queue navigator
Change-Id: I0aa2465cb945b3a5c13bdb5761a8b36a9b373a55
---
M sites/all/modules/wmf_common/Queue.php
M sites/all/modules/wmf_common/wmf_common.module
2 files changed, 70 insertions(+), 1 deletion(-)
Approvals:
Mwalker: Looks good to me, approved
jenkins-bot: Verified
diff --git a/sites/all/modules/wmf_common/Queue.php
b/sites/all/modules/wmf_common/Queue.php
index 3001f9c..ec79b1a 100644
--- a/sites/all/modules/wmf_common/Queue.php
+++ b/sites/all/modules/wmf_common/Queue.php
@@ -351,7 +351,11 @@
function item_url( $msg ) {
global $base_url;
$queue = str_replace('/queue/', '', $msg->headers['destination'] );
- $correlationId = $msg->headers['correlation-id'];
+ if ( !empty( $msg->headers['correlation-id'] ) ) {
+ $correlationId = $msg->headers['correlation-id'];
+ } else {
+ $correlationId = $msg->headers['message-id'];
+ }
return "{$base_url}/queue/{$queue}/{$correlationId}";
}
diff --git a/sites/all/modules/wmf_common/wmf_common.module
b/sites/all/modules/wmf_common/wmf_common.module
index 808f707..6b4b8c6 100644
--- a/sites/all/modules/wmf_common/wmf_common.module
+++ b/sites/all/modules/wmf_common/wmf_common.module
@@ -69,6 +69,12 @@
'page callback' => 'drupal_get_form',
'page arguments' => array( 'wmf_common_settings' ),
);
+ $items['queue/damaged'] = array(
+ 'title' => 'Browse all damaged messages',
+ 'access arguments' => array( 'manipulate queues' ),
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array( 'wmf_common_queue_browser_form' ),
+ );
$items['queue/%/%'] = array(
'access arguments' => array( 'manipulate queues' ),
'page callback' => 'drupal_get_form',
@@ -172,6 +178,65 @@
return system_settings_form($form);
}
+function wmf_common_queue_browser_form( $form, &$form_state ) {
+ $q = queue2civicrm_stomp();
+
+ # TODO: collect these using a hook
+ $queues = array(
+ variable_get( 'queue2civicrm_subscription' ),
+ variable_get( 'recurring_subscription' ),
+ variable_get( 'refund_queue' ),
+ variable_get( 'unsubscribe_queue' ),
+ );
+
+ # semi-FIXME: not actually paging
+ $allMsgs = array();
+ $pageSize = 100;
+ foreach ( $queues as $queue ) {
+ $msgs = $q->peekMultiple( "{$queue}-damaged", $pageSize );
+ $pageSize -= count( $msgs );
+ $allMsgs = array_merge( $allMsgs, $msgs );
+ }
+
+ $rows = array();
+ foreach ( $allMsgs as $msg ) {
+ $damaged_queue = str_replace( '/queue/', '', $msg->headers['destination']
);
+ $queue = str_replace( '-damaged', '', $damaged_queue );
+ if ( !empty( $msg->headers['correlation-id'] ) ) {
+ $id = $msg->headers['correlation-id'];
+ } else {
+ $id = $msg->headers['message-id'];
+ }
+
+ $rows[] = array(
+ $msg->headers['error'],
+ $queue,
+ l( $id, $q->item_url( $msg ) ),
+ );
+ }
+
+
+ $table_html = theme_table( array(
+ 'header' => array(
+ 'Error',
+ 'Queue',
+ 'ID',
+ ),
+ 'rows' => $rows,
+ 'empty' => 'Nothing in the damaged queues! Be very suspicious...',
+ 'attributes' => array(),
+ 'caption' => t( 'Damaged messages' ),
+ 'colgroups' => array(),
+ 'sticky' => true,
+ ) ).theme( 'pager' );
+
+ $form['table'] = array(
+ '#markup' => $table_html,
+ );
+
+ return $form;
+}
+
function wmf_common_queue_item_form( $form, &$form_state, $queue,
$correlationId ) {
$q = queue2civicrm_stomp();
--
To view, visit https://gerrit.wikimedia.org/r/96685
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I0aa2465cb945b3a5c13bdb5761a8b36a9b373a55
Gerrit-PatchSet: 3
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Adamw <[email protected]>
Gerrit-Reviewer: Adamw <[email protected]>
Gerrit-Reviewer: Katie Horn <[email protected]>
Gerrit-Reviewer: Mwalker <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits