From ba7bdd79b720dcb58dfd88a38f43444eb4da06f4 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 1 Mar 2015 15:55:27 -0800 Subject: [PATCH] queue management actions. Still needs further work such as indication of last successful connection or indication that the hub was marked offline, but these are potentially expensive queries. --- include/hubloc.php | 5 +++-- mod/admin.php | 39 +++++++++++++++++++++++++++++++-------- version.inc | 2 +- view/en/htconfig.tpl | 1 - view/tpl/admin_queue.tpl | 14 ++++++++++++++ 5 files changed, 49 insertions(+), 12 deletions(-) create mode 100644 view/tpl/admin_queue.tpl diff --git a/include/hubloc.php b/include/hubloc.php index 94f1dc985..98c1a21f3 100644 --- a/include/hubloc.php +++ b/include/hubloc.php @@ -175,8 +175,9 @@ function hubloc_change_primary($hubloc) { // The https might be alive, and the http dead. function hubloc_mark_as_down($posturl) { - $r = q("update hubloc set hubloc_status = ( hubloc_status | %d ) where hubloc_posturl = '%s'", - intval(HUBLOC_OFFLINE) + $r = q("update hubloc set hubloc_status = ( hubloc_status | %d ) where hubloc_callback = '%s'", + intval(HUBLOC_OFFLINE), + dbesc($posturl) ); } diff --git a/mod/admin.php b/mod/admin.php index 98b2f4266..f97c15786 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -590,19 +590,42 @@ function admin_page_dbsync(&$a) { function admin_page_queue($a) { $o = ''; + $r = q("select count(outq_posturl) as total, outq_posturl, max(hubloc_connected) as connected from outq + where outq_delivered = 0 group by outq_posturl order by total desc"); + + if($_REQUEST['drophub']) { + require_once('hubloc.php'); + hubloc_mark_as_down($_REQUEST['drophub']); + } + + if($_REQUEST['emptyhub']) { + $r = q("delete from outq where outq_posturl = '%s' ", + dbesc($_REQUEST['emptyhub']) + ); + } + + + $r = q("select count(outq_posturl) as total, outq_posturl from outq where outq_delivered = 0 group by outq_posturl order by total desc"); - $o .= '

' . t('Queue Statistics') . '

'; - - if($r) { - $o .= ''; - foreach($r as $rr) { - $o .= ''; - } - $o .= '
' . t('Total Entries') . '  ' . t('Destination URL') . '
' . $rr['total'] . '' . $rr['outq_posturl'] . '
'; + for($x = 0; $x < count($r); $x ++) { + $r[$x]['eurl'] = urlencode($r[$x]['outq_posturl']); + $r[$x]['connected'] = datetime_convert('UTC',date_default_timezone_get(),$r[$x]['connected'],'Y-m-d'); } + + $o = replace_macros(get_markup_template('admin_queue.tpl'), array( + '$banner' => t('Queue Statistics'), + '$numentries' => t('Total Entries'), + '$desturl' => t('Destination URL'), + '$nukehub' => t('Mark hub permanently offline'), + '$empty' => t('Empty queue for this hub'), + '$lastconn' => t('Last known contact'), + '$hasentries' => ((count($r)) ? true : false), + '$entries' => $r + )); + return $o; } diff --git a/version.inc b/version.inc index 448d75763..36fcceb22 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-02-27.956 +2015-03-01.958 diff --git a/view/en/htconfig.tpl b/view/en/htconfig.tpl index d06e5da49..066ae39d8 100644 --- a/view/en/htconfig.tpl +++ b/view/en/htconfig.tpl @@ -71,7 +71,6 @@ $a->config['system']['access_policy'] = ACCESS_PRIVATE; $a->config['system']['sellpage'] = ''; // Maximum size of an imported message, 0 is unlimited -// FIXME - NOT currently implemented. $a->config['system']['max_import_size'] = 200000; diff --git a/view/tpl/admin_queue.tpl b/view/tpl/admin_queue.tpl new file mode 100644 index 000000000..2abe87db9 --- /dev/null +++ b/view/tpl/admin_queue.tpl @@ -0,0 +1,14 @@ +

{{$banner}}

+ +{{if $hasentries}} + + + +{{foreach $entries as $e}} + + +{{/foreach}} + +
{{$numentries}}  {{$desturl}}  
{{$e.total}}{{$e.outq_posturl}}
+ +{{/if}} \ No newline at end of file