r3054 - editRSPools(): do not block deletion of RS pool with servers in it
authorDenis Ovsienko <infrastation@yandex.ru>
Tue, 11 Aug 2009 14:28:32 +0000 (14:28 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Tue, 11 Aug 2009 14:28:32 +0000 (14:28 +0000)
 - renderCell(): display RS counter for RS pool, if it is not zero; align text to left

ChangeLog
inc/interface.php
install/init-sample-racks.sql
install/init-structure.sql
upgrade.php

index 4d17736b98d2bb1400931fab79229a351441e55f..b926678e8e301f10e484a8fc4a774a1874686d74 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 0.17.4
        bugfix: remove PHP warnings on IPv4 space management tab (ticket:277)
        bugfix: work around array_fill_keys() from PHP 5.2 (ticket:278)
+       bugfix: delete real servers on RS pool deletion (ticket:233)
 0.17.3 2009-08-08
        update: even better search function (ticket:20)
        update: suggest tag selector for new files and users (ticket:205)
index aa32a645ddd210a202d173b0b72fb0034224f37e..4732e67505c8f4d796284a380959d0a7a8d9d637 100644 (file)
@@ -4432,7 +4432,7 @@ function editRSPools ()
                foreach ($pool_list as $pool_info)
                {
                        echo "<tr valign=top class=row_${order}><td valign=middle>";
-                       if ($pool_info['refcnt'] or $pool_info['rscount'])
+                       if ($pool_info['refcnt'])
                                printImageHREF ('NODESTROY', 'RS pool is used ' . $pool_info['refcnt'] . ' time(s)');
                        else
                        {
@@ -5682,11 +5682,13 @@ function renderCell ($cell)
                echo "</td></tr></table>";
                break;
        case 'ipv4rspool':
-               echo "<table class=slbcell><tr><td>";
+               echo "<table class='slbcell vscell'><tr><td>";
                echo "<a href='${root}?page=ipv4rspool&pool_id=${cell['id']}'>";
                echo !strlen ($cell['name']) ? "ANONYMOUS pool [${cell['id']}]" : niftyString ($cell['name']);
                echo "</a></td></tr><tr><td>";
                printImageHREF ('RS pool');
+               if ($cell['rscount'])
+                       echo ' <small>(' . $cell['rscount'] . ')</small>';
                echo "</td></tr><tr><td>";
                echo count ($cell['etags']) ? ("<small>" . serializeTags ($cell['etags']) . "</small>") : '&nbsp;';
                echo "</td></tr></table>";
index 4514670be09f3dfe5f218eee0b10caf440ce35c5..1780b817a9434fa3de04f820e4933bb638493b8c 100644 (file)
@@ -161,6 +161,9 @@ INSERT INTO `IPv4Network` (`id`, `ip`, `mask`, `name`) VALUES (105,180879366,31,
 INSERT INTO `IPv4Network` (`id`, `ip`, `mask`, `name`) VALUES (106,180880384,26,'Moscow network devices');
 INSERT INTO `IPv4Network` (`id`, `ip`, `mask`, `name`) VALUES (107,180880448,26,'Moscow servers');
 
+INSERT INTO `IPv4RSPool` VALUES (1,'Apache servers',NULL,NULL);
+INSERT INTO `IPv4RSPool` VALUES (2,'Resin servers',NULL,NULL);
+
 INSERT INTO `IPv4RS` VALUES (1,'yes',180879973,80,1,NULL);
 INSERT INTO `IPv4RS` VALUES (2,'yes',180879974,80,1,NULL);
 INSERT INTO `IPv4RS` VALUES (3,'no',180879975,80,1,NULL);
@@ -172,9 +175,6 @@ INSERT INTO `IPv4RS` VALUES (8,'yes',180879980,8080,2,NULL);
 INSERT INTO `IPv4RS` VALUES (9,'yes',180879981,8080,2,NULL);
 INSERT INTO `IPv4RS` VALUES (10,'yes',180879982,8080,2,NULL);
 
-INSERT INTO `IPv4RSPool` VALUES (1,'Apache servers',NULL,NULL);
-INSERT INTO `IPv4RSPool` VALUES (2,'Resin servers',NULL,NULL);
-
 INSERT INTO `IPv4VS` VALUES (1,180879877,80,'TCP','virtual web','lvs_sched wlc\r\nlvs_method NAT\r\ndelay_loop 3\r\nalpha\r\nomega\r\nquorum 3\r\nhysteresis 1\r\n\r\n# this is a comment\r\n# VS name is %VNAME%\r\n#\r\n','HTTP_GET {\r\nurl {\r\npath /\r\nstatus_code 200\r\n}\r\nconnect_timeout 1\r\n}');
 INSERT INTO `IPv4VS` VALUES (2,180879878,80,'TCP','virtual app','lvs_sched wlc\r\nlvs_method NAT\r\ndelay_loop 3\r\nalpha\r\nomega\r\nquorum 3\r\nhysteresis 1\r\n\r\n','HTTP_GET {\r\nurl {\r\npath /\r\nstatus_code 200\r\n}\r\nconnect_timeout 1\r\n}');
 
index fa9a2471fcecddd551bbc29d50f974fd5e6a412a..3f15eee4dbd69b84d895ae0074b65e2ad53efa2f 100644 (file)
@@ -113,7 +113,7 @@ CREATE TABLE `IPv4RSPool` (
   `vsconfig` text,
   `rsconfig` text,
   PRIMARY KEY  (`id`)
-) ENGINE=MyISAM;
+) ENGINE=InnoDB;
 
 CREATE TABLE `IPv4Network` (
   `id` int(10) unsigned NOT NULL auto_increment,
@@ -133,8 +133,9 @@ CREATE TABLE `IPv4RS` (
   `rspool_id` int(10) unsigned default NULL,
   `rsconfig` text,
   PRIMARY KEY  (`id`),
-  UNIQUE KEY `pool-endpoint` (`rspool_id`,`rsip`,`rsport`)
-) ENGINE=MyISAM;
+  UNIQUE KEY `pool-endpoint` (`rspool_id`,`rsip`,`rsport`),
+  CONSTRAINT `IPv4RS-FK` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`) ON DELETE CASCADE
+) ENGINE=InnoDB;
 
 CREATE TABLE `IPv4VS` (
   `id` int(10) unsigned NOT NULL auto_increment,
index b00270f942a0731bc8dda750f180cabe98bb719d..e483b6749a882824a46597256de1a75481599dd1 100644 (file)
@@ -271,8 +271,12 @@ CREATE TABLE `LDAPCache` (
                case '0.17.4':
                        $query[] = "ALTER TABLE Link ENGINE=InnoDB";
                        $query[] = "ALTER TABLE Port ENGINE=InnoDB";
+                       $query[] = "ALTER TABLE IPv4RS ENGINE=InnoDB";
+                       $query[] = "ALTER TABLE IPv4RSPool ENGINE=InnoDB";
+                       $query[] = "DELETE FROM IPv4RS WHERE rspool_id NOT IN (SELECT id FROM IPv4RSPool)";
                        $query[] = "ALTER TABLE Link ADD CONSTRAINT `Link-FK-a` FOREIGN KEY (porta) REFERENCES Port (id)";
                        $query[] = "ALTER TABLE Link ADD CONSTRAINT `Link-FK-b` FOREIGN KEY (portb) REFERENCES Port (id)";
+                       $query[] = "ALTER TABLE IPv4RS ADD CONSTRAINT `IPv4RS-FK` FOREIGN KEY (rspool_id) REFERENCES IPv4RSPool (id) ON DELETE CASCADE";
                        $query[] = "UPDATE Config SET varvalue = '0.17.4' WHERE varname = 'DB_VERSION'";
                        break;
                default: