r1525 + implemented LB lister
authorDenis Ovsienko <infrastation@yandex.ru>
Mon, 14 Jan 2008 19:39:50 +0000 (19:39 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Mon, 14 Jan 2008 19:39:50 +0000 (19:39 +0000)
+ fixed RS lister

inc/database.php
inc/interface.php
inc/navigation.php

index 1027607f3ecaa5739db3e48f4c960008a67acbec..d80d8790273ff0830ef0427ba20ba01566be8b01 100644 (file)
@@ -2292,12 +2292,12 @@ function getVSList ()
                showError ('SQL query failed', __FUNCTION__);
                return NULL;
        }
-       $vslist = array ();
+       $ret = array ();
        while ($row = $result->fetch (PDO::FETCH_ASSOC))
                foreach (array ('vip', 'vport', 'proto', 'name', 'vsconfig', 'rsconfig', 'poolcount') as $cname)
-                       $vslist[$row['id']][$cname] = $row[$cname];
+                       $ret[$row['id']][$cname] = $row[$cname];
        $result->closeCursor();
-       return $vslist;
+       return $ret;
 }
 
 // Return the list of RS pool, indexed by pool id.
@@ -2313,12 +2313,12 @@ function getRSPoolList ()
                showError ('SQL query failed', __FUNCTION__);
                return NULL;
        }
-       $pool_list = array ();
+       $ret = array ();
        while ($row = $result->fetch (PDO::FETCH_ASSOC))
                foreach (array ('vs_id', 'name', 'rscount', 'vsconfig', 'rsconfig') as $cname)
-                       $pool_list[$row['id']][$cname] = $row[$cname];
+                       $ret[$row['id']][$cname] = $row[$cname];
        $result->closeCursor();
-       return $pool_list;
+       return $ret;
 }
 
 function loadThumbCache ($rack_id = 0)
@@ -2464,12 +2464,31 @@ function getRSList ()
                showError ('SQL query failed', __FUNCTION__);
                return NULL;
        }
-       $rslist = array ();
+       $ret = array ();
        while ($row = $result->fetch (PDO::FETCH_ASSOC))
                foreach (array ('rsip', 'rsport', 'rspool_id', 'rsconfig') as $cname)
-                       $rslist[$row['id']][$cname] = $row[$cname];
+                       $ret[$row['id']][$cname] = $row[$cname];
+       $result->closeCursor();
+       return $ret;
+}
+
+// Return the list of all currently configured load balancers with their pool count.
+function getLBList ()
+{
+       global $dbxlink;
+       $query = "select object_id, count(rspool_id) as poolcount " .
+               "from IPLoadBalancer group by object_id order by object_id";
+       $result = $dbxlink->query ($query);
+       if ($result == NULL)
+       {
+               showError ('SQL query failed', __FUNCTION__);
+               return NULL;
+       }
+       $ret = array ();
+       while ($row = $result->fetch (PDO::FETCH_ASSOC))
+               $ret[$row['object_id']] = $row['poolcount'];
        $result->closeCursor();
-       return $rslist;
+       return $ret;
 }
 
 ?>
index 8d40ddbb78be0dc6e69b854b2181833571cd8da2..4f047a8b166e1e46591708d78a4feedee1844faf 100644 (file)
@@ -4081,6 +4081,7 @@ function editRSPools ()
 
 function renderRealServerList ()
 {
+       global $root;
        $rslist = getRSList ();
        $pool_list = getRSPoolList ();
        echo "<table class=widetable border=0 cellpadding=10 cellspacing=0 align=center>\n";
@@ -4097,4 +4098,22 @@ function renderRealServerList ()
        }
        echo "</table>";
 }
+
+function renderLBList ()
+{
+       global $root;
+       echo "<table class=widetable border=0 cellpadding=10 cellspacing=0 align=center>\n";
+       echo "<tr><th>Object</th><th>RS pools configured</th></tr>";
+       $oicache = array();
+       foreach (getLBList() as $object_id => $poolcount)
+       {
+               if (!isset ($oicache[$object_id]))
+                       $oicache[$object_id] = getObjectInfo ($object_id);
+               echo "<tr valign=top><td><a href='${root}?page=object&object_id=${object_id}'>";
+               echo $oicache[$object_id]['dname'] . '</a></td>';
+               echo "<td>${poolcount}</td></tr>";
+       }
+       echo "</table>";
+}
+
 ?>
index 42055cbfabd4d30dfb59d926a46264e03e2f7176..6109dc0c011431dbccf2ced57c88050f6d4fc8b4 100644 (file)
@@ -195,8 +195,9 @@ $page['rservers']['title'] = 'Real servers';
 $page['rservers']['parent'] = 'ipv4space';
 $page['rservers']['handler'] = 'renderRealServerList';
 
-$page['lbs']['title'] = '[Load balancers]';
+$page['lbs']['title'] = 'Load balancers';
 $page['lbs']['parent'] = 'ipv4space';
+$page['lbs']['handler'] = 'renderLBList';
 
 $page['search']['title_handler'] = 'dynamic_title_search';
 $page['search']['handler'] = 'handler_search';