r3081 - dismiss default_port_type parameter
authorDenis Ovsienko <infrastation@yandex.ru>
Fri, 28 Aug 2009 11:01:26 +0000 (11:01 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Fri, 28 Aug 2009 11:01:26 +0000 (11:01 +0000)
 - sync upgrade batch with real data

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

index 7b01386..3f71268 100644 (file)
@@ -3693,7 +3693,7 @@ function getPortInterfaceCompat()
        $query = 'SELECT iif_id, iif_name, oif_id, dict_value AS oif_name ' .
                'FROM PortInterfaceCompat INNER JOIN PortInnerInterface ON id = iif_id ' .
                'INNER JOIN Dictionary ON dict_key = oif_id ' .
-               'ORDER BY iif_id, oif_name';
+               'ORDER BY iif_name, oif_name';
        $result = useSelectBlade ($query, __FUNCTION__);
        return $result->fetchAll (PDO::FETCH_ASSOC);
 }
index 03914ca..17ed2a5 100644 (file)
@@ -6161,7 +6161,21 @@ function renderPortIFCompatEditor()
                echo '</th></tr></form>';
        }
 
-       startPortlet ('[WDM helpers]');
+       startPortlet ('[turbo switches]');
+       echo '<table border=0 align=center cellspacing=0 cellpadding=5>';
+       echo '<tr><th>&nbsp;</th><th>1000Base-CWDM80</th><th>1000Base-DWDM80</th></tr>';
+       echo '<tr class=row_odd><th class=tdleft>GBIC</th><td>+/-</td><td>+/-</td></tr>';
+       echo '<tr class=row_even><th class=tdleft>SFP-1000</th><td>+/-</td><td>+/-</td></tr>';
+       echo '</table>';
+       echo '<br>';
+       echo '<table border=0 align=center cellspacing=0 cellpadding=5>';
+       echo '<tr><th>&nbsp;</th><th>10GBase-ZR-DWDM80</th></tr>';
+       echo '<tr class=row_odd><th class=tdleft>SFP+</th><td>+/-</td></tr>';
+       echo '<tr class=row_even><th class=tdleft>X2</th><td>+/-</td></tr>';
+       echo '<tr class=row_odd><th class=tdleft>XENPAK</th><td>+/-</td></tr>';
+       echo '<tr class=row_even><th class=tdleft>XFP</th><td>+/-</td></tr>';
+       echo '<tr class=row_odd><th class=tdleft>XPAK</th><td>+/-</td></tr>';
+       echo '</table>';
        finishPortlet();
 
        startPortlet ('interface by interface');
index fc7fd90..a2e323d 100644 (file)
@@ -978,7 +978,6 @@ function updateUI ()
 $msgcode['resetUIConfig']['OK'] = 57;
 function resetUIConfig()
 {
-       setConfigVar ('default_port_type','24');
        setConfigVar ('MASSCOUNT','15');
        setConfigVar ('MAXSELSIZE','30');
        setConfigVar ('ROW_SCALE','2');
@@ -1025,6 +1024,8 @@ function resetUIConfig()
        setConfigVar ('TAGS_QUICKLIST_SIZE','20');
        setConfigVar ('TAGS_QUICKLIST_THRESHOLD','50');
        setConfigVar ('ENABLE_MULTIPORT_FORM', 'no');
+       setConfigVar ('DEFAULT_PORT_IIF_ID', '1');
+       setConfigVar ('DEFAULT_PORT_OIF_IDS', '1=24; 3=1078; 4=1077; 5=1079; 6=1080; 8=1082; 9=1084');
        return buildRedirectURL (__FUNCTION__, 'OK');
 }
 
@@ -1946,4 +1947,33 @@ function delPortInterfaceCompat ()
        return buildRedirectURL (__FUNCTION__, 'ERR');
 }
 
+$ifcompatpack = array
+(
+       '1000cwdm80' => array (1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216),
+       '1000dwdm80' => array // ITU channels 20~61
+       (
+               1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
+               1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
+               1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
+               1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
+               1257, 1258
+       ),
+       '10000dwdm80' => array // same channels for 10GE
+       (
+               1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
+               1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
+               1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288,
+               1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298,
+               1299, 1300
+       ),
+);
+
+function addPortInterfaceCompatPack ()
+{
+}
+
+function delPortInterfaceCompatPack ()
+{
+}
+
 ?>
index c3c2f03..1863ed8 100644 (file)
@@ -139,7 +139,7 @@ INSERT INTO `PortInterfaceCompat` VALUES
 (7,1081),(7,30),(7,35),(7,36),(7,37),(7,38),(7,39),(7,40),
 (8,1082),(8,30),(8,35),(8,36),(8,37),(8,38),(8,39),(8,40),
 (9,1084),(9,30),(9,35),(9,36),(9,37),(9,38),(9,39),(9,40),
-(1,16),(1,19),(1,24),(1,29),(1,31),(1,33),(1,446),(1,681),(1,682),(1,1087);
+(1,16),(1,19),(1,24),(1,29),(1,31),(1,33),(1,446),(1,681),(1,682);
 
 INSERT INTO `PortCompat` (`type1`, `type2`) VALUES
 (17,17),
@@ -331,7 +331,6 @@ INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, descriptio
 ('color_Th','80ffff','string','no','yes','HSV: 180-50-100. Taken atoms with highlight. They are not stored in the database and are only used for highlighting.'),
 ('color_Tw','804040','string','no','yes','HSV: 0-50-50. Taken atoms with object problem. This is detected at runtime.'),
 ('color_Thw','ff8080','string','no','yes','HSV: 0-50-100. An object can be both current and problematic. We run highlightObject() first and markupObjectProblems() second.'),
-('default_port_type','24','uint','no','no','Default port type'),
 ('MASSCOUNT','15','uint','no','no','&quot;Fast&quot; form is this many records tall'),
 ('MAXSELSIZE','30','uint','no','no','&lt;SELECT&gt; lists height'),
 ('enterprise','MyCompanyName','string','no','no','Organization name'),
index 8cd6c33..7f28751 100644 (file)
@@ -297,6 +297,40 @@ CREATE TABLE `LDAPCache` (
                        $query[] = "ALTER TABLE TagStorage ENGINE=InnoDB";
                        $query[] = "ALTER TABLE TagStorage ADD CONSTRAINT `TagStorage-FK-tag_id` FOREIGN KEY (tag_id) REFERENCES TagTree (id)";
                        $query[] = "ALTER TABLE TagTree ADD CONSTRAINT `TagTree-K-parent_id` FOREIGN KEY (parent_id) REFERENCES TagTree (id)";
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (21,1195)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (22,1196)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (23,1196)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (20,1195)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (25,1202)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (26,1202)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (27,1204)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (28,1204)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1083,1195)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1084,1084)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1195,20)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1195,21)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1195,1083)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1195,1195)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1196,22)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1196,23)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1196,1196)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1197,1197)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1198,1199)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1199,1198)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1200,1200)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1201,1201)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1202,25)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1202,26)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1202,1202)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1203,1203)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1204,27)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1204,28)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1204,1204)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1205,1205)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1206,1207)';
+                       $query[] = 'INSERT INTO PortCompat (type1, type2) VALUES (1207,1206)';
+                       for ($i = 1209; $i <= 1300; $i++)
+                               $query[] = "INSERT INTO PortCompat (type1, type2) VALUES (${i}, ${i})";
                        $query[] = "
 CREATE TABLE `PortInnerInterface` (
   `id` int(10) unsigned NOT NULL auto_increment,
@@ -304,12 +338,21 @@ CREATE TABLE `PortInnerInterface` (
   PRIMARY KEY  (`id`),
   UNIQUE KEY `inner_if` (`iif_name`)
 ) ENGINE=InnoDB";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (1,'hardwired')";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (2,'SFP-100')";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (3,'GBIC')";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (4,'SFP-1000')";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (5,'XENPAK')";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (6,'X2')";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (7,'XPAK')";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (8,'XFP')";
+                       $query[] = "INSERT INTO `PortInnerInterface` VALUES (9,'SFP+')";
                        $query[] = "
 CREATE TABLE `PortInterfaceCompat` (
   `iif_id` int(10) unsigned NOT NULL,
   `oif_id` int(10) unsigned NOT NULL,
   UNIQUE KEY `pair` (`iif_id`,`oif_id`),
-  CONSTRAINT `PortInterfaceCompat-FK-iif_id` FOREIGN KEY (`iif_id`) REFERENCES `PortInnerIF` (`id`)
+  CONSTRAINT `PortInterfaceCompat-FK-iif_id` FOREIGN KEY (`iif_id`) REFERENCES `PortInnerInterface` (`id`)
 ) ENGINE=InnoDB";
                        $query[] = "ALTER TABLE Port ADD COLUMN iif_id int unsigned NOT NULL AFTER name"; // will set iif_id to 0
                        $query[] = "UPDATE Port SET iif_id = 2 WHERE type = 1208";
@@ -321,7 +364,36 @@ CREATE TABLE `PortInterfaceCompat` (
                        $query[] = "UPDATE Port SET iif_id = 8 WHERE type = 1082";
                        $query[] = "UPDATE Port SET iif_id = 9 WHERE type = 1084";
                        $query[] = "UPDATE Port SET iif_id = 1 WHERE iif_id = 0";
+                       $base1000 = array (24, 34, 1202, 1203, 1204, 1205, 1206, 1207);
+                       $base10000 = array (30, 35, 36, 37, 38, 39, 40);
+                       $PICdata = array
+                       (
+                               1 => array (16, 19, 24, 29, 31, 33, 446, 681, 682),
+                               2 => array (1208, 1195, 1196, 1197, 1198, 1199, 1200, 1201),
+                               3 => array_merge (array (1078), $base1000),
+                               4 => array_merge (array (1077), $base1000),
+                               5 => array_merge (array (1079), $base10000),
+                               6 => array_merge (array (1080), $base10000),
+                               7 => array_merge (array (1081), $base10000),
+                               8 => array_merge (array (1082), $base10000),
+                               9 => array_merge (array (1084), $base10000),
+                       );
+                       // make sure all IIF/OIF pairs referenced from Port exist in PortInterfaceCompat before enabling FK
+                       // iif_id doesn't exist at this point
+                       $result = $dbxlink->query ('SELECT DISTINCT type FROM Port WHERE type NOT IN (1208, 1078, 1077, 1079, 1080, 1081, 1082, 1084)');
+                       while ($row = $result->fetch (PDO::FETCH_ASSOC))
+                               if (FALSE === array_search ($row['type'], $PICdata[1]))
+                                       array_push ($PICdata[1], $row['type']);
+                       unset ($result);
+                       foreach ($PICdata as $iif_id => $oif_ids)
+                               foreach ($oif_ids as $oif_id)
+                                       $query[] = "INSERT INTO PortInterfaceCompat (iif_id, oif_id) VALUES (${iif_id}, ${oif_id})";
                        $query[] = "ALTER TABLE Port ADD CONSTRAINT `Port-FK-iif-oif` FOREIGN KEY (`iif_id`, `type`) REFERENCES `PortInterfaceCompat` (`iif_id`, `oif_id`)";
+                       $query = array_merge ($query, reloadDictionary ($batchid));
+                       $query[] = "DELETE FROM Config WHERE varname = 'default_port_type'";
+                       $query[] = "INSERT INTO Config VALUES ('DEFAULT_PORT_IIF_ID','1','uint','no','no','Default port inner interface ID')";
+                       $query[] = "INSERT INTO Config VALUES ('DEFAULT_PORT_OIF_IDS','1=24; 3=1078; 4=1077; 5=1079; 6=1080; 8=1082; 9=1084','string','no','no','Default port outer interface IDs')";
+
                        $query[] = "UPDATE Config SET varvalue = '0.17.5' WHERE varname = 'DB_VERSION'";
                        break;
                default: