r1684 + implemented DEFAULT_IPV4_RS_INSERVICE option
authorDenis Ovsienko <infrastation@yandex.ru>
Sun, 17 Feb 2008 09:51:18 +0000 (09:51 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Sun, 17 Feb 2008 09:51:18 +0000 (09:51 +0000)
+ renderRSPoolServerForm(): only display the management portlet if we have servers to configure

ChangeLog
inc/database.php
inc/interface.php
inc/ophandlers.php
install/init-dictbase.sql
upgrade.php

index 61ce4b9dbc78f2e89895a8eabc1f7c19489b6f23..9a92f1274941f1086c8536942149a7da1bca8ddc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,5 @@
+0.14.12
+       new feature: default value for RS inservice status
 0.14.11 2008-02-15
        bugfix: rackspace allocation was broken by magic_quotes fix
        bugfix: don't generate error messages by accessing _GET array
index 735b356cada4c11844fd204a9ed4e78f62e03a1b..fe0651e3cac449efc05e7fd86c2bdb3d665d3573 100644 (file)
@@ -2207,7 +2207,7 @@ function getRSPoolInfo ($id = 0)
        return $ret;
 }
 
-function addRStoRSPool ($pool_id = 0, $rsip = '', $rsport = 0, $rsconfig = '')
+function addRStoRSPool ($pool_id = 0, $rsip = '', $rsport = 0, $inservice = 'no', $rsconfig = '')
 {
        if ($pool_id <= 0 or $rsport <= 0)
        {
@@ -2222,6 +2222,7 @@ function addRStoRSPool ($pool_id = 0, $rsip = '', $rsport = 0, $rsconfig = '')
                        'rsip' => "inet_aton('${rsip}')",
                        'rsport' => $rsport,
                        'rspool_id' => $pool_id,
+                       'inservice' => ($inservice == 'yes' ? 'yes' : 'no'),
                        'rsconfig' => (empty ($rsconfig) ? 'NULL' : "'${rsconfig}'")
                )
        );
index dd2e5951412bfb2e9d69960bca16661c280144fd..3789072f82767ac05f04b6fb222e126b91c4ebd3 100644 (file)
@@ -3900,41 +3900,48 @@ function renderRSPoolServerForm ($pool_id = 0)
        showMessageOrError();
        $poolInfo = getRSPoolInfo ($pool_id);
 
-       $rsc = count ($poolInfo['rslist']);
-       startPortlet ("Manage existing (${rsc})");
-       echo "<table cellspacing=0 cellpadding=5 align=center class=cooltable>\n";
-       echo "<tr><th>&nbsp;</th><th>Address</th><th>Port</th><th>configuration</th><th>&nbsp;</th></tr>\n";
-       $order = 'odd';
-       foreach ($poolInfo['rslist'] as $rsid => $rs)
+       if (($rsc = count ($poolInfo['rslist']))
        {
-               echo "<form action='${root}process.php'>";
-               echo "<input type=hidden name=page value='${pageno}'>\n";
-               echo "<input type=hidden name=tab value='${tabno}'>\n";
-               echo "<input type=hidden name=op value=updRS>";
-               echo "<input type=hidden name=rs_id value='${rsid}'>";
-               echo "<input type=hidden name=id value='${pool_id}'>";
-               echo "<tr valign=top class=row_${order}><td><a href='${root}process.php?page=${pageno}&tab=${tabno}";
-               echo "&op=delRS&pool_id=${pool_id}&id=${rsid}'>";
-               printImageHREF ('delete', 'Delete this real server');
-               echo "</td><td><input type=text name=rsip value='${rs['rsip']}'></td>";
-               echo "<td><input type=text name=rsport size=5 value='${rs['rsport']}'></td>";
-               echo "<td><textarea name=rsconfig>${rs['rsconfig']}</textarea></td>";
-               echo "<td><input type=submit value='OK'></td>";
-               echo "</tr></form>\n";
-               $order = $nextorder[$order];
+               startPortlet ("Manage existing (${rsc})");
+               echo "<table cellspacing=0 cellpadding=5 align=center class=cooltable>\n";
+               echo "<tr><th>&nbsp;</th><th>Address</th><th>Port</th><th>configuration</th><th>&nbsp;</th></tr>\n";
+               $order = 'odd';
+               foreach ($poolInfo['rslist'] as $rsid => $rs)
+               {
+                       echo "<form action='${root}process.php'>";
+                       echo "<input type=hidden name=page value='${pageno}'>\n";
+                       echo "<input type=hidden name=tab value='${tabno}'>\n";
+                       echo "<input type=hidden name=op value=updRS>";
+                       echo "<input type=hidden name=rs_id value='${rsid}'>";
+                       echo "<input type=hidden name=id value='${pool_id}'>";
+                       echo "<tr valign=top class=row_${order}><td><a href='${root}process.php?page=${pageno}&tab=${tabno}";
+                       echo "&op=delRS&pool_id=${pool_id}&id=${rsid}'>";
+                       printImageHREF ('delete', 'Delete this real server');
+                       echo "</td><td><input type=text name=rsip value='${rs['rsip']}'></td>";
+                       echo "<td><input type=text name=rsport size=5 value='${rs['rsport']}'></td>";
+                       echo "<td><textarea name=rsconfig>${rs['rsconfig']}</textarea></td>";
+                       echo "<td><input type=submit value='OK'></td>";
+                       echo "</tr></form>\n";
+                       $order = $nextorder[$order];
+               }
+               echo "</table>\n";
+               finishPortlet();
        }
-       echo "</table>\n";
-       finishPortlet();
 
        startPortlet ('Add one');
        echo "<table cellspacing=0 cellpadding=5 align=center class=widetable>\n";
-       echo "<tr><th>Address</th><th>Port</th><th>&nbsp;</th></tr>\n";
+       echo "<tr><th>in service</th><th>Address</th><th>Port</th><th>&nbsp;</th></tr>\n";
        echo "<form name=addone action='${root}process.php'>";
        echo "<input type=hidden name=page value='${pageno}'>\n";
        echo "<input type=hidden name=tab value='${tabno}'>\n";
        echo "<input type=hidden name=op value=addRS>";
        echo "<input type=hidden name=id value='${pool_id}'>";
-       echo "<tr><td><input type=text name=rsip tabindex=1></td>";
+       echo "<tr><td>";
+       if (getConfigVar ('DEFAULT_IPV4_RS_INSERVICE') == 'yes')
+               printImageHREF ('inservice', 'in service');
+       else
+               printImageHREF ('notinservice', 'NOT in service');
+       echo "</td><td><input type=text name=rsip tabindex=1></td>";
        $default_port = getConfigVar ('DEFAULT_SLB_RS_PORT');
        if ($default_port == 0)
                $default_port = '';
index 9e75dc60a0c00790c532e4ab9ec602a70507c784..d430e5a20f3177deb7babbddb1e71d8fcd222533 100644 (file)
@@ -938,7 +938,7 @@ function addRealServer ()
        assertUIntArg ('rsport');
        assertStringArg ('rsconfig', TRUE);
        $pool_id = $_REQUEST['id'];
-       if (!addRStoRSPool ($pool_id, $_REQUEST['rsip'], $_REQUEST['rsport'], $_REQUEST['rsconfig']))
+       if (!addRStoRSPool ($pool_id, $_REQUEST['rsip'], $_REQUEST['rsport'], getConfigVar ('DEFAULT_IPV4_RS_INSERVICE'), $_REQUEST['rsconfig']))
                return "${root}?page=${pageno}&tab=${tabno}&id=${pool_id}&error=" . urlencode ('addRStoRSPool() failed');
        else
                return "${root}?page=${pageno}&tab=${tabno}&id=${pool_id}&message=" . urlencode ("Real server was successfully added");
@@ -967,7 +967,7 @@ function addRealServers ()
                        case 'ipvs_2': // address and port only
                                if (!preg_match ('/^  -&gt; ([0-9\.]+):([0-9]+) /', $line, $match))
                                        continue;
-                               if (addRStoRSPool ($pool_id, $match[1], $match[2], ''))
+                               if (addRStoRSPool ($pool_id, $match[1], $match[2], getConfigVar ('DEFAULT_IPV4_RS_INSERVICE'), ''))
                                        $ngood++;
                                else
                                        $nbad++;
@@ -975,7 +975,7 @@ function addRealServers ()
                        case 'ipvs_3': // address, port and weight
                                if (!preg_match ('/^  -&gt; ([0-9\.]+):([0-9]+) +[a-zA-Z]+ +([0-9]+) /', $line, $match))
                                        continue;
-                               if (addRStoRSPool ($pool_id, $match[1], $match[2], 'weight ' . $match[3]))
+                               if (addRStoRSPool ($pool_id, $match[1], $match[2], getConfigVar ('DEFAULT_IPV4_RS_INSERVICE'), 'weight ' . $match[3]))
                                        $ngood++;
                                else
                                        $nbad++;
index 2aa4994c34417e953e3f992d7b2f1921945cbc38..6ad175453cad205053e8ad5e0411af6423304cd7 100644 (file)
@@ -238,6 +238,7 @@ INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, descriptio
 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('USER_AUTH_SRC','database','string','no','no','User authentication source');
 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('DETECT_URLS','no','string','yes','no','Detect URLs in text fields');
 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('RACK_PRESELECT_THRESHOLD','1','uint','no','no','Rack pre-selection threshold');
+INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('DEFAULT_IPV4_RS_INSERVICE','no','string','no','no','Inservice status for new SLB real servers');
 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('DB_VERSION','0.14.11','string','no','yes','Database version.');
 
 INSERT INTO `UserPermission` (`user_id`, `page`, `tab`, `access`) VALUES (1,'%','%','yes');
index ad123ff9824ff31e86079ec801f0674461681b91..9896d4cd71b8809a5a0e3b6dfc288ec7105cc8d8 100644 (file)
@@ -713,11 +713,15 @@ CREATE TABLE `IPVirtualService` (
                        $query[] = "update Rack set thumb_data = NULL";
                        $query[] = "update Config set varvalue = '0.14.11' where varname = 'DB_VERSION'";
                        break; // --------------------------------------------
-#              case '0.14.12':
+               case '0.14.12':
+                       $query[] = "INSERT INTO `Config` VALUES (DEFAULT_IPV4_RS_INSERVICE','no','string','no','no','Inservice status for new SLB real servers')";
+                       $query[] = "update Config set varvalue = '0.14.12' where varname = 'DB_VERSION'";
+                       break; // --------------------------------------------
+#              case '0.14.13':
 #                      $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('AUTO_PORTS_CONFIG','FIXME','string','yes','no','Autoports configuration')";
 #                      $query[] = "alter table Rack add column left_is_front enum ('yes', 'no') not null default 'yes' after height";
 #                      $query[] = "alter table Rack add column bottom_is_unit1 enum ('yes', 'no') not null default 'yes' after left_is_front";
-#                      $query[] = "update Config set varvalue = '0.14.12' where varname = 'DB_VERSION'";
+#                      $query[] = "update Config set varvalue = '0.14.13' where varname = 'DB_VERSION'";
 #                      break; // --------------------------------------------
                default:
                        showError ("executeUpgradeBatch () failed, because batch '${batchid}' isn't defined");