- rebase against master branch
authorAaron Dummer <aaron@dummer.info>
Wed, 17 Jul 2013 22:27:10 +0000 (15:27 -0700)
committerAaron Dummer <aaron@dummer.info>
Wed, 17 Jul 2013 22:27:10 +0000 (15:27 -0700)
ChangeLog
README
README.patchpanel [deleted file]
wwwroot/inc/config.php
wwwroot/inc/popup.php
wwwroot/inc/upgrade.php

index de1209b74cea6ff37933cc02eb3561cb6d88e272..55a4a174e45fd9407250301f2d24cc4477ad780a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
        bugfix: SLB config was generated incrorrectly when multiple 
                rspools were linked with the same balancer-vsg pair
        update: support of Huawei CE5800 series switch
+       new feature: port tracing (#333)
 0.20.5 2013-06-23
        bugfix: 500 server error if protocol was not specified in
                terminal_settings subroutine
diff --git a/README b/README
index 76a56b41317e69d520e87249d50f7b1b745b9ad4..34841e156b6686ebe28a16680ddca7b1df658192 100644 (file)
--- a/README
+++ b/README
@@ -102,14 +102,14 @@ should be sufficient:
 *                                                     *
 *******************************************************
 
-*** Upgrading to 0.21.0 ***
+*** Upgrading to 0.20.6 ***
 
 Database triggers are used for some data consistency measures.  The database
 user account must have the 'TRIGGER' privilege, which was introduced in
 MySQL 5.1.7.
 
 Cable paths can be traced and displayed in a graphical format. This requires
-the Image_GraphViz  PEAR module (http://pear.php.net/package/Image_GraphViz).
+the Image_GraphViz PEAR module (http://pear.php.net/package/Image_GraphViz).
 
 *** Upgrading to 0.20.5 ***
 
diff --git a/README.patchpanel b/README.patchpanel
deleted file mode 100644 (file)
index 4fc51fc..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-OVERVIEW
-The patchpanel branch was created by adoom42. It adds support for linking ports 
-multiple times and tracing cable paths.  Several people have created patches 
-for this already.  I haven't seen one which handles all potential use cases.  
-
-Generally speaking, a port is linked to one other port, but there are 
-exceptions.
-1.  Patch panels.  The front of the port is linked to an object's port.  The 
-back of the port is usually linked to the back of a port on another patch panel.
-2.  "Y" power cables and other splitters.  Example: the male end connects to an 
-outlet, and each female end connects to an object's power supply.  The cable 
-has a varying number of female ends (my personal favorite is the 'octo-cable').
-3.  Multi-point wireless links.  Although less common in data centers, they are
-used in areas such as college campuses.  An access point is mounted in a central
-location and multiple buildings have client units, with multiple clients 
-associating to the same AP.
-
-CHANGELOG
-The installer & upgrader check for the GraphViz PEAR module.  A non-blocking 
-warning is displayed if it is not found.
-
-The port linker pop-up includes a checkbox which allows already-linked ports to 
-be linked again.
-
-Triggers are used to prevent duplicate links.  They ensure that the value of 
-portb is always greater than porta, which forces the UNIQUE KEY (porta,portb) 
-to take effect.  They also ensure that porta is compatible with portb.
-
-The (porta,portb) primary key was removed from the Link table.  An 
-auto-increment id column was added to uniquely identify links.  This results in
-less PHP code.  For example, assume that rows exist where porta > portb 
-(they were entered manually before the triggers were installed).  In that case,
-all update and delete operations would need to identify a specific row using 
-something like ((porta = X AND portb = Y) OR (porta = Y AND portb = X)).  Now 
-such operations can identify the row using a single id.
-
-Triggers are used to maintain integrity of the PortCompat table.  Without them,
-you would be able to add a compatibility rule, link ports using that rule, then
-delete the rule without warning.  The ports would still be linked, even though
-they are now incompatible.  The trigger checks for the existence of such links
-before allowing rules to be updated or deleted.  MySQL doesn't support trigger
-exceptions, so I used a workaround to display a more meaningful error message:
-UPDATE `Cannot update: rule still used` SET x = 1.
-
-
-HELP/FEEDBACK REQUESTED
-fetchPortList() has been modified to include all links as a nested array.  The
-SQL query works but is not optimal.  Performance tips would be appreciated.
-
-A new pop-up provides the ability to link two patch panels.  The link is only
-displayed for objects of the type "PatchPanel".  The list includes all patch
-panels with the same number of ports.  It doesn't check for port compatibility.
-When the form is submitted, the handler function adds a link for each port.
-The handler function does check for port compatibility.  If any port is
-incompatible, the entire linking operation is rolled back.  Ideally, the pop-up
-would only list panels which are fully compatible.  SQL help in this area would
-also be appreciated.  It should be possible using a single query, but I'm not
-sure how to do it.
-
-A common usage scenario involves connecting an object's port to patch panel A,
-which is connected to patch panel B, which is then connected to another
-object's port.  When the patch panel A's ports are linked to patch panel B's,
-the ports will be excluded from the 'Link this port' pop-up unless you check
-the 'Include linked ports' box.  Patch panel ports which are linked less than
-twice should be included without having to check the 'Include linked ports'
-box.  I'm not sure how to deal with this efficiently.
-
-MISC. NOTES
-This branch should only be tested in a development environment.  It sets the
-RackTables version to 0.21.0 which will break any future upgrades to 0.20.x.
\ No newline at end of file
index a46c89025349be51693a64dfad1dec50df6fd8fa..941510649f5ff893c508acca12136ddd7ce39727 100644 (file)
@@ -13,6 +13,6 @@ committers' copies) can run into issues:
    have already been executed.
 */
 
-define ('CODE_VERSION', '0.20.5');
+define ('CODE_VERSION', '0.20.6');
 
 ?>
index baf60aa497a2bc742c55ae679105fd7be1ae2770..fafcd9c527a7f3edb33ca69ba21091469f925402 100644 (file)
@@ -607,7 +607,7 @@ function renderPopupTraceRoute ()
                if (!array_key_exists ($object_id, $objects))
                {
                        $objects[$object_id] = $port_details['object_name'];
-                       $graph->addCluster("${object_id}Cluster", $port_details['object_name'], array ('URL' => "index.php?page=object&object_id=${object_id}"));
+                       $graph->addCluster("${object_id}Cluster", $port_details['object_name'], array ('URL' => "index.php?module=popup&helper=traceroute&object_id=${object_id}"));
                }
        }
 
@@ -615,7 +615,7 @@ function renderPopupTraceRoute ()
        foreach ($port_data as $port_id => $port_details)
        {
                $object_id = $port_details['object_id'];
-               $graph->addNode("${port_id}Node", array ('fontsize' => 8, 'label' => $port_details['port_name'], 'tooltip' => $port_details['port_name']), "${object_id}Cluster");
+               $graph->addNode("${port_id}Node", array ('fontsize' => 8, 'label' => $port_details['port_name'], 'tooltip' => $port_details['port_name'], 'URL' => "index.php?module=popup&helper=traceroute&port=${port_id}"), "${object_id}Cluster");
        }
 
        // identify the links
index 21d90da1fc5632a96c4ae41fbd30221646bdf1c1..05074dd0bd28dcdddadac63b0a7a3459c75f3a71 100644 (file)
@@ -204,6 +204,15 @@ major releases. So it is strongly recommended to convert it to the new format.
 ENDOFTEXT
 ,
 
+       '0.20.6' => <<<ENDOFTEXT
+0.20.6 uses database triggers for consistency measures.  The database
+user account must have the 'TRIGGER' privilege, which was introduced in
+MySQL 5.1.7.
+
+Cable paths can be traced and displayed in a graphical format. This requires
+the Image_GraphViz PEAR module (http://pear.php.net/package/Image_GraphViz).
+ENDOFTEXT
+,
 );
 
 // At the moment we assume, that for any two releases we can
@@ -261,7 +270,7 @@ function getDBUpgradePath ($v1, $v2)
                '0.20.3',
                '0.20.4',
                '0.20.5',
-               '0.21.0',
+               '0.20.6',
        );
        if (!in_array ($v1, $versionhistory) or !in_array ($v2, $versionhistory))
                return NULL;
@@ -1773,7 +1782,7 @@ CREATE TABLE `VSEnabledPorts` (
                        $query[] = "ALTER TABLE `UserConfig` DROP FOREIGN KEY `UserConfig-FK-user`";
                        $query[] = "UPDATE Config SET varvalue = '0.20.5' WHERE varname = 'DB_VERSION'";
                        break;
-               case '0.21.0':
+               case '0.20.6':
                        if (!isInnoDBSupported ())
                        {
                                showUpgradeError ("Cannot upgrade because triggers are not supported by your MySQL server.", __FUNCTION__);
@@ -1847,7 +1856,7 @@ BEGIN
   END IF;
 END;
 ";
-                       $query[] = "UPDATE Config SET varvalue = '0.21.0' WHERE varname = 'DB_VERSION'";
+                       $query[] = "UPDATE Config SET varvalue = '0.20.6' WHERE varname = 'DB_VERSION'";
                        break;
                case 'dictionary':
                        $query = reloadDictionary();