From 504e5fd46f1c4840666d1f20ecac934c07e16a88 Mon Sep 17 00:00:00 2001 From: jim-p Date: Wed, 28 May 2014 13:41:48 -0400 Subject: Use script-friendly gmirror status output to build this info, old method was breaking output when the mirror was being rebuilt. --- usr/local/www/widgets/include/gmirror_status.inc | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/usr/local/www/widgets/include/gmirror_status.inc b/usr/local/www/widgets/include/gmirror_status.inc index 414c394..8a04d4a 100644 --- a/usr/local/www/widgets/include/gmirror_status.inc +++ b/usr/local/www/widgets/include/gmirror_status.inc @@ -27,28 +27,23 @@ function gmirror_get_status() { $status = ""; - exec("/sbin/gmirror status", $status); + exec("/sbin/gmirror status -s", $status); $mirrors = array(); /* Empty output = no mirrors found */ if (count($status) > 0) { - /* We don't need the first row, it's just a header */ - $status = array_slice($status, 1); - /* Loop through gmirror status output. */ foreach ($status as $line) { /* Split the line by whitespace */ $all = preg_split("/[\s\t]+/", trim($line), 3); - if (count($all) == 3) { + if (count($all) == 3) { /* If there are three items on a line, it is mirror name, status, and component */ $currentmirror = $all[0]; $mirrors[$currentmirror]["name"] = $all[0]; $mirrors[$currentmirror]["status"] = $all[1]; - $mirrors[$currentmirror]["components"] = array(); + if (!is_array($mirrors[$currentmirror]["components"])) + $mirrors[$currentmirror]["components"] = array(); $mirrors[$currentmirror]["components"][] = $all[2]; - } elseif ((trim($line) != "") && (count($all) > 0)) { - /* If there is just one item on a line, it is a component name of the previous mirror */ - $mirrors[$currentmirror]["components"][] = trim($line); } } } -- cgit v1.1