Commit | Line | Data |
---|---|---|
6dc745d2 | 1 | <?php |
fbbb74fb DO |
2 | |
3 | // At the moment we assume, that for any two releases we can | |
4 | // sequentally execute all batches, that separate them, and | |
5 | // nothing will break. If this changes one day, the function | |
6 | // below will have to generate smarter upgrade paths, while | |
7 | // the upper layer will remain the same. | |
8 | // Returning an empty array means that no upgrade is necessary. | |
9 | function getDBUpgradePath ($v1, $v2) | |
10 | { | |
a6f83a72 DO |
11 | $versionhistory = array |
12 | ( | |
13 | '0.14.4', | |
14 | '0.14.5', | |
15 | '0.14.6', | |
16 | '0.14.7', | |
17 | '0.14.8', | |
18 | '0.14.9', | |
2ff234d6 | 19 | '0.14.10', |
2c53a252 | 20 | '0.14.11', |
86fc1740 | 21 | '0.14.12', |
3861eef6 | 22 | '0.15.0', |
fe782367 DO |
23 | '0.15.1', |
24 | '0.16.0', | |
4a6a28f1 | 25 | '0.16.1', |
52c836b1 | 26 | '0.16.2', |
a6f83a72 | 27 | ); |
fbbb74fb DO |
28 | if (!in_array ($v1, $versionhistory) || !in_array ($v2, $versionhistory)) |
29 | { | |
30 | showError ("An upgrade path has been requested for versions '${v1}' and '${v2}', " . | |
b0348307 | 31 | "and at least one of those isn't known to me.", __FILE__); |
fbbb74fb DO |
32 | die; |
33 | } | |
34 | $skip = TRUE; | |
35 | $path = array(); | |
36 | // Now collect all versions > $v1 and <= $v2 | |
37 | foreach ($versionhistory as $v) | |
38 | { | |
39 | if ($v == $v1) | |
40 | { | |
41 | $skip = FALSE; | |
42 | continue; | |
43 | } | |
44 | if ($skip) | |
45 | continue; | |
46 | $path[] = $v; | |
47 | if ($v == $v2) | |
48 | break; | |
49 | } | |
50 | return $path; | |
51 | } | |
52 | ||
5f4027b8 DO |
53 | function printReleaseNotes ($batchid) |
54 | { | |
55 | switch ($batchid) | |
56 | { | |
57 | case '0.16.0': | |
7cd8e779 | 58 | echo "<font color=red><strong>Release notes for ${batchid}</strong></font><br>"; |
5f4027b8 DO |
59 | echo 'The user permission records of this system have been automatically converted '; |
60 | echo 'to switch to the new RackCode authorization system. To prevent possible data '; | |
61 | echo 'leak, the second line of the automatically created configuration bans everything '; | |
62 | echo '(and the first allows everything to you, the administrator). The whole config can '; | |
ceeacd3c | 63 | echo "be reviewed on the Permissions page (under Configuration). Sorry for the inconvenience.<br><br>\n"; |
5f4027b8 | 64 | break; |
7cd8e779 DO |
65 | case '0.16.1': |
66 | echo "<font color=red><strong>Release notes for ${batchid}</strong></font><br>"; | |
67 | echo 'This release fixes a missing UNIQUE key in the database. However, this fix may sometimes fail, '; | |
8608b285 DO |
68 | echo 'if the table contains duplicate records. If the 0.16.0-0.16.1 upgrade batch completed without errors, '; |
69 | echo 'no action needs to be taken. If you see a failed ADD UNIQUE query during upgrade, the only solution is to delete the duplicates manually. '; | |
70 | echo 'To do this, open a MySQL console and issue the failed query again:<br><br>'; | |
71 | echo 'mysql> alter table IPVirtualService ADD UNIQUE endpoint (vip, vport, proto);<br><br>'; | |
e4fed8ef | 72 | echo 'The IP address of the duplicate VS will be known from the "Duplicate entry" message. For example,'; |
8608b285 DO |
73 | echo " to decode "Duplicate entry '180879877-80-TCP' for key 2" error message, issue:<br><br>"; |
74 | echo 'mysql> select inet_ntoa(180879877);<br><br>'; | |
75 | echo 'Then go to "virtual services" web-interface page and adjust the data as '; | |
76 | echo 'necessary. You would need to get rid of the duplicates accurately one by one, repeating the ADD UNIQUE '; | |
77 | echo 'query until it succeeds.<br><br>'; | |
7cd8e779 | 78 | break; |
5f4027b8 DO |
79 | default: |
80 | break; | |
81 | } | |
82 | } | |
83 | ||
fbbb74fb DO |
84 | // Upgrade batches are name exactly as the release where they first appear. |
85 | // That simple, but seems sufficient for beginning. | |
86 | function executeUpgradeBatch ($batchid) | |
87 | { | |
88 | $query = array(); | |
ce109ff2 | 89 | global $dbxlink; |
fbbb74fb DO |
90 | switch ($batchid) |
91 | { | |
92 | case '0.14.5': | |
93 | // We can't realiably distinguish between 0.14.4 and 0.14.5, but | |
94 | // luckily the SQL statements below can be safely executed for both. | |
95 | ||
96 | ||
97 | // This has to be checked once more to be sure IPAddress allocation | |
98 | // conventions are correct. | |
99 | $query[] = "delete from IPAddress where name = '' and reserved = 'no'"; | |
100 | ||
101 | // In the 0.14.4 release we had AUTO_INCREMENT low in the dictionary and auth | |
102 | // data tables, thus causing new user's data to take primary keys equal to | |
103 | // the values of shipped data in future releases. Let's shift user's data | |
104 | // up and keep DB consistent. | |
105 | $query[] = "alter table Attribute AUTO_INCREMENT = 10000"; | |
106 | $query[] = "alter table Chapter AUTO_INCREMENT = 10000"; | |
107 | $query[] = "alter table Dictionary AUTO_INCREMENT = 10000"; | |
108 | $query[] = "alter table UserAccount AUTO_INCREMENT = 10000"; | |
109 | $query[] = "update UserAccount set user_id = user_id + 10000 where user_id between 2 and 10000"; | |
110 | $query[] = "update UserPermission set user_id = user_id + 10000 where user_id between 2 and 10000"; | |
111 | $query[] = "update Attribute set attr_id = attr_id + 10000 where attr_id between 25 and 10000"; | |
112 | $query[] = "update AttributeMap set attr_id = attr_id + 10000 where attr_id between 25 and 10000"; | |
113 | $query[] = "update Chapter set chapter_no = chapter_no + 10000 where chapter_no between 21 and 10000"; | |
114 | $query[] = "update AttributeMap set chapter_no = chapter_no + 10000 where chapter_no between 21 and 10000"; | |
115 | break; // -------------------------------------------- | |
116 | case '0.14.6': | |
117 | // This version features new dictionary entries, the correction above should allow us | |
118 | // inject them w/o a problem. | |
119 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (13,25,'FreeBSD 1.x')"; | |
120 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (13,26,'FreeBSD 2.x')"; | |
121 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (13,27,'FreeBSD 3.x')"; | |
122 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (13,28,'FreeBSD 4.x')"; | |
123 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (13,29,'FreeBSD 5.x')"; | |
124 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (13,30,'FreeBSD 6.x')"; | |
125 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (13,31,'RHFC8')"; | |
126 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (13,32,'ALTLinux Master 4.0')"; | |
127 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (20,20)"; | |
128 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (21,21)"; | |
129 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (22,22)"; | |
130 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (23,23)"; | |
131 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (24,24)"; | |
132 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (25,25)"; | |
133 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (26,26)"; | |
134 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (27,27)"; | |
135 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (28,28)"; | |
136 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,20,'KVM')"; | |
137 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,21,'1000Base-ZX')"; | |
138 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,22,'10GBase-ER')"; | |
139 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,23,'10GBase-LR')"; | |
140 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,24,'10GBase-LRM')"; | |
141 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,25,'10GBase-ZR')"; | |
142 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,26,'10GBase-LX4')"; | |
143 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,27,'10GBase-CX4')"; | |
144 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (2,28,'10GBase-Kx')"; | |
145 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (12,114,'Cisco Catalyst 2970G-24T')"; | |
146 | $query[] = "INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) VALUES (12,115,'Cisco Catalyst 2970G-24TS')"; | |
147 | $query[] = "INSERT INTO `UserPermission` (`user_id`, `page`, `tab`, `access`) VALUES (0,'help','%','yes')"; | |
148 | // And 0.14.6 is the first release, which features Config table. Let's create | |
149 | // and fill it with default values. | |
150 | $query[] = " | |
151 | CREATE TABLE `Config` ( | |
152 | `varname` char(32) NOT NULL, | |
153 | `varvalue` char(64) NOT NULL, | |
154 | `vartype` enum('string','uint') NOT NULL default 'string', | |
155 | `emptyok` enum('yes','no') NOT NULL default 'no', | |
156 | `is_hidden` enum('yes','no') NOT NULL default 'yes', | |
157 | `description` text, | |
158 | PRIMARY KEY (`varname`) | |
159 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | |
160 | "; | |
161 | $query[] = "INSERT INTO `Config` VALUES ('rtwidth_0','9','uint','no','yes','')"; | |
162 | $query[] = "INSERT INTO `Config` VALUES ('rtwidth_1','21','uint','no','yes','')"; | |
163 | $query[] = "INSERT INTO `Config` VALUES ('rtwidth_2','9','uint','no','yes','')"; | |
164 | $query[] = "INSERT INTO `Config` VALUES ('color_F','8fbfbf','string','no','no','HSV: 180-25-75. Free atoms, they are available for allocation to objects.')"; | |
165 | $query[] = "INSERT INTO `Config` VALUES ('color_A','bfbfbf','string','no','no','HSV: 0-0-75. Absent atoms.')"; | |
166 | $query[] = "INSERT INTO `Config` VALUES ('color_U','bf8f8f','string','no','no','HSV: 0-25-75. Unusable atoms. Some problems keep them from being free.')"; | |
167 | $query[] = "INSERT INTO `Config` VALUES ('color_T','408080','string','no','no','HSV: 180-50-50. Taken atoms, object_id should be set for such.')"; | |
168 | $query[] = "INSERT INTO `Config` VALUES ('color_Th','80ffff','string','no','no','HSV: 180-50-100. Taken atoms with highlight. They are not stored in the database and are only used for highlighting.')"; | |
169 | $query[] = "INSERT INTO `Config` VALUES ('color_Tw','804040','string','no','no','HSV: 0-50-50. Taken atoms with object problem. This is detected at runtime.')"; | |
170 | $query[] = "INSERT INTO `Config` VALUES ('color_Thw','ff8080','string','no','no','HSV: 0-50-100. An object can be both current and problematic. We run highlightObject() first and markupObjectProblems() second.')"; | |
171 | $query[] = "INSERT INTO `Config` VALUES ('default_port_type','11','uint','no','no','Default value for port type selects.')"; | |
172 | $query[] = "INSERT INTO `Config` VALUES ('MASSCOUNT','15','uint','no','no','Number of lines in object mass-adding form.')"; | |
173 | $query[] = "INSERT INTO `Config` VALUES ('MAXSELSIZE','30','uint','no','no','Maximum size of a SELECT HTML element.')"; | |
174 | $query[] = "INSERT INTO `Config` VALUES ('enterprise','MyCompanyName','string','no','no','Fit to your needs.')"; | |
175 | $query[] = "INSERT INTO `Config` VALUES ('NAMEFUL_OBJTYPES','4,7,8','string','yes','no','These are the object types, which assume a common name to be normally configured. If a name is absent for an object of one of such types, HTML output is corrected to accent this misconfiguration.')"; | |
176 | $query[] = "INSERT INTO `Config` VALUES ('ROW_SCALE','2','uint','no','no','Row-scope picture scale factor.')"; | |
177 | $query[] = "INSERT INTO `Config` VALUES ('PORTS_PER_ROW','12','uint','no','yes','Max switch port per one row on the switchvlans dynamic tab.')"; | |
178 | $query[] = "INSERT INTO `Config` VALUES ('DB_VERSION','0.14.6','string','no','yes','Database version.')"; | |
179 | break; // -------------------------------------------- | |
803338c1 | 180 | case '0.14.7': |
ce109ff2 | 181 | // IPAddress is hopefully fixed now finally. |
803338c1 | 182 | $query[] = "delete from IPAddress where name = '' and reserved != 'yes'"; |
ce109ff2 DO |
183 | |
184 | // Now rebuild the dictionary into a new table with the same data, | |
185 | // but proper indexing. We are going to convert compound index | |
186 | // into 1-field one to employ AUTO_INCREMENT properly. This means | |
187 | // renumbering lots of records in Dictionary and adjusting records | |
188 | // in related tables. After that we can safely swap the tables. | |
9bf70f70 DO |
189 | $query[] = " |
190 | CREATE TABLE `Dictionary_0_14_7_new` ( | |
191 | `chapter_no` int(10) unsigned NOT NULL, | |
192 | `dict_key` int(10) unsigned NOT NULL auto_increment, | |
193 | `dict_value` char(128) default NULL, | |
194 | PRIMARY KEY (`dict_key`), | |
195 | UNIQUE KEY `chap_to_key` (`chapter_no`,`dict_key`), | |
196 | UNIQUE KEY `chap_to_val` (`chapter_no`,`dict_value`) | |
197 | ) TYPE=MyISAM AUTO_INCREMENT=50000 | |
198 | "; | |
ce109ff2 | 199 | |
758fe24c | 200 | echo '<pre>'; |
ce109ff2 DO |
201 | // Find all chapter numbers, which will require AttributeValue adjustment. |
202 | $q2 = 'select distinct chapter_no from AttributeMap where chapter_no != 0'; | |
203 | $r2 = $dbxlink->query ($q2); | |
758fe24c DO |
204 | $chaplist = array(); |
205 | while ($row = $r2->fetch (PDO::FETCH_NUM)) | |
206 | $chaplist[] = $row[0]; | |
ce109ff2 | 207 | $r2->closeCursor(); |
758fe24c | 208 | unset ($r2); |
ce109ff2 DO |
209 | |
210 | $stock = array(); | |
211 | // Below I list the records, which are known to be the stock | |
212 | // dictionary records of 0.14.6 release. | |
213 | $stock[1] = array | |
214 | ( | |
215 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16 | |
216 | ); | |
217 | $stock[2] = array | |
218 | ( | |
219 | 3, 4, 5, 6, 7, 8, 9, | |
220 | 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, | |
221 | 20, 21, 22, 23, 24, 25, 26, 27, 28 | |
222 | ); | |
223 | $stock[11] = array | |
224 | ( | |
225 | 1, 3, 4, 5, 6, 7, 8, 9, | |
226 | 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
227 | 21, 22, 24, 25, 26, 27, 28, 29, | |
228 | 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
229 | 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
230 | 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, | |
231 | 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, | |
232 | 70, 71, 72, 73, 74, 75, 76 | |
233 | ); | |
234 | $stock[12] = array | |
235 | ( | |
236 | 1, 11, 13, 14, 15, 16, 17, 18, 19, 20, 26, 29, | |
237 | 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
238 | 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
239 | 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, | |
240 | 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, | |
241 | 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
242 | 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, | |
243 | 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, | |
244 | 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, | |
db1147d2 | 245 | 110, 111, 112, 113, 114, 115 |
ce109ff2 DO |
246 | ); |
247 | $stock[13] = array | |
248 | ( | |
249 | 1, 2, 3, 4, 5, 6, 7, 8, 9, | |
250 | 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
251 | 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, | |
252 | 30, 31, 32 | |
253 | ); | |
254 | $stock[14] = array | |
255 | ( | |
256 | 1, 2, 9, 11, 13, 15, 19, 20, 21, 22 | |
257 | ); | |
258 | $stock[16] = array | |
259 | ( | |
260 | 1, 2, 3, 4, 5, 6, 7, 8 | |
261 | ); | |
262 | $stock[17] = array | |
263 | ( | |
264 | 1, 2, 3, 4, 5, 6, 7, 8, 9, | |
265 | 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
266 | 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, | |
267 | 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
268 | 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
269 | 50 | |
270 | ); | |
271 | $stock[18] = array | |
272 | ( | |
273 | 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 | |
274 | ); | |
275 | $stock[19] = array | |
276 | ( | |
277 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 | |
278 | ); | |
279 | $stock[20] = array | |
280 | ( | |
281 | 1, 2 | |
282 | ); | |
283 | ||
284 | // Load dictionary and transform into two tree structures for | |
285 | // stock and user record sets. | |
286 | $dict = array(); | |
264b07b4 | 287 | $q3 = 'select chapter_no, dict_key, dict_value from Dictionary order by chapter_no, dict_key'; |
ce109ff2 DO |
288 | $r3 = $dbxlink->query ($q3); |
289 | ||
9e7f8a4b | 290 | while ($row = $r3->fetch (PDO::FETCH_ASSOC)) |
ce109ff2 DO |
291 | { |
292 | $tree = 'user'; | |
293 | $dict_key = $row['dict_key']; | |
294 | $chapter_no = $row['chapter_no']; | |
295 | switch ($chapter_no) | |
296 | { | |
297 | case 1: // RackObjectType | |
298 | case 2: // PortType | |
299 | case 11: // server models | |
300 | case 12: // network switch models | |
301 | case 13: // server OS type | |
302 | case 14: // network switch OS type | |
303 | case 16: // router OS type | |
304 | case 17: // router models | |
305 | case 18: // disk array models | |
306 | case 19: // tape library models | |
307 | case 20: // Protocols | |
308 | if (in_array ($dict_key, $stock[$chapter_no])) | |
309 | $tree = 'stock'; | |
310 | break; | |
311 | } | |
a07a39b1 | 312 | $dict[$tree][$chapter_no][$dict_key] = array ('value' => $row['dict_value']); |
ce109ff2 DO |
313 | } |
314 | $r3->closeCursor(); | |
758fe24c | 315 | unset ($r3); |
ce109ff2 DO |
316 | |
317 | ||
318 | // Now we store stock dataset first, bump up key value and store | |
319 | // user's data. After that we will know the new dict_key for all | |
320 | // records. | |
321 | // The result of both datasets processing is saved in $new_dict. | |
322 | // Save on calling LAST_ISERT_ID() each time by keeping own key. | |
323 | $newkey = 1; | |
324 | $new_dict = array(); | |
325 | foreach ($dict['stock'] as $chapter_no => $words) | |
326 | { | |
327 | $new_dict[$chapter_no] = array(); | |
328 | foreach ($words as $dict_key => $entry) | |
329 | { | |
1b5942be | 330 | $query[] = "insert into Dictionary_0_14_7_new (chapter_no, dict_key, dict_value) " . |
ce109ff2 DO |
331 | "values (${chapter_no}, ${newkey}, '${entry['value']}')"; |
332 | $new_dict[$chapter_no][$dict_key] = $entry; | |
333 | $new_dict[$chapter_no][$dict_key]['newkey'] = $newkey; | |
334 | $newkey++; | |
335 | } | |
336 | } | |
e7882270 | 337 | $newkey = 50000; |
ce109ff2 DO |
338 | foreach ($dict['user'] as $chapter_no => $words) |
339 | { | |
340 | // Some chapters may appear on the user dataset only. | |
341 | if (!isset ($new_dict[$chapter_no])) | |
342 | $new_dict[$chapter_no] = array(); | |
343 | foreach ($words as $dict_key => $entry) | |
344 | { | |
345 | $query[] = "insert into Dictionary_0_14_7_new " . | |
346 | "values (${chapter_no}, ${newkey}, '${entry['value']}')"; | |
347 | $new_dict[$chapter_no][$dict_key] = $entry; | |
348 | $new_dict[$chapter_no][$dict_key]['newkey'] = $newkey; | |
349 | $newkey++; | |
350 | } | |
351 | } | |
352 | // The new table should now have adequate AUTO_INCREMENT w/o our care. | |
758fe24c DO |
353 | // Install the new data. |
354 | $query[] = 'drop table Dictionary'; | |
355 | $query[] = 'alter table Dictionary_0_14_7_new rename to Dictionary'; | |
ce109ff2 DO |
356 | |
357 | // Now we iterate over the joint dataset, picking some chapters and | |
358 | // performing additional processing: | |
359 | // 1 (RackObjectType) --- adjust RackObject and regenerate AttributeMap | |
a07a39b1 | 360 | // 2 (PortType) --- adjust Port and regenerate PortCompat (at a latter point) |
ce109ff2 DO |
361 | // 3 (RackRow) --- adjust Rack |
362 | // 20 (Protocols) --- adjust PortForwarding | |
363 | // All other chapters listed in $chaplist --- adjust AttributeValue | |
364 | ||
365 | $query[] = "delete from AttributeMap"; | |
366 | foreach ($new_dict as $chapter_no => $words) | |
367 | { | |
368 | foreach ($words as $oldkey => $data) | |
369 | { | |
370 | $value = $data['value']; | |
371 | $newkey = $data['newkey']; | |
264b07b4 DO |
372 | // Even if the key doesn't change, go on to have |
373 | // AttributeMap regenerated completely. | |
ce109ff2 DO |
374 | if ($chapter_no == 1) |
375 | { | |
376 | $q4 = "select id from RackObject where objtype_id = ${oldkey}"; | |
377 | $r4 = $dbxlink->query ($q4); | |
378 | while ($row = $r4->fetch (PDO::FETCH_ASSOC)) | |
379 | $query[] = "update RackObject set objtype_id = ${newkey} where id = ${row['id']} limit 1"; | |
380 | $r4->closeCursor(); | |
264b07b4 | 381 | unset ($r4); |
ce109ff2 | 382 | |
758fe24c DO |
383 | $q5 = "select attr_id, chapter_no from AttributeMap where objtype_id = ${oldkey}"; |
384 | $r5 = $dbxlink->query ($q5); | |
385 | while ($row = $r5->fetch (PDO::FETCH_ASSOC)) | |
ce109ff2 | 386 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (${newkey}, ${row['attr_id']}, ${row['chapter_no']})"; |
758fe24c | 387 | $r5->closeCursor(); |
264b07b4 | 388 | unset ($r5); |
ce109ff2 | 389 | } |
a07a39b1 DO |
390 | elseif ($chapter_no == 2) |
391 | { | |
758fe24c | 392 | $q46 = "select id from Port where type = ${oldkey}"; |
758fe24c DO |
393 | $r46 = $dbxlink->query ($q46); |
394 | if ($r46 == NULL) | |
395 | echo 'ERROR'; | |
396 | while ($row = $r46->fetch (PDO::FETCH_ASSOC)) | |
a07a39b1 | 397 | $query[] = "update Port set type = ${newkey} where id = ${row['id']} limit 1"; |
758fe24c | 398 | $r46->closeCursor(); |
264b07b4 | 399 | unset ($r46); |
a07a39b1 | 400 | } |
ce109ff2 DO |
401 | elseif ($chapter_no == 3) |
402 | { | |
758fe24c DO |
403 | $q7 = "select id from Rack where row_id = ${oldkey}"; |
404 | $r7 = $dbxlink->query ($q7); | |
405 | while ($row = $r7->fetch (PDO::FETCH_ASSOC)) | |
ce109ff2 | 406 | $query[] = "update Rack set row_id = ${newkey} where id = ${row['id']} limit 1"; |
758fe24c | 407 | $r7->closeCursor(); |
264b07b4 | 408 | unset ($r7); |
ce109ff2 | 409 | } |
a07a39b1 DO |
410 | elseif ($chapter_no == 20) |
411 | { | |
264b07b4 DO |
412 | $q8 = "select object_id, localip, localport, remoteip, remoteport from PortForwarding where proto = ${oldkey}"; |
413 | $r8 = $dbxlink->query ($q8); | |
758fe24c | 414 | while ($row = $r8->fetch (PDO::FETCH_ASSOC)) |
264b07b4 DO |
415 | $query[] = "update PortForwarding set proto = ${newkey} where " . |
416 | "object_id = ${row['object_id']} and localip = ${row['localip']} and " . | |
417 | "localport = ${row['localport']} and remoteip = ${row['remoteip']} and " . | |
418 | "remoteport = ${row['remoteport']} and proto = ${oldkey} limit 1"; | |
758fe24c | 419 | $r8->closeCursor(); |
264b07b4 | 420 | unset ($r8); |
758fe24c DO |
421 | } |
422 | elseif (in_array ($chapter_no, $chaplist)) | |
423 | { | |
5b1d68c5 | 424 | $q81 = "select object_id, AttributeValue.attr_id from " . |
264b07b4 DO |
425 | "AttributeValue natural join Attribute natural join AttributeMap " . |
426 | "inner join RackObject on RackObject.id = object_id and RackObject.objtype_id = AttributeMap.objtype_id " . | |
427 | "where attr_type = 'dict' and chapter_no = ${chapter_no} and uint_value = ${oldkey}"; | |
428 | $r81 = $dbxlink->query ($q81); | |
429 | while ($row = $r81->fetch (PDO::FETCH_ASSOC)) | |
1b5942be DO |
430 | $query[] = "update AttributeValue set uint_value = ${newkey} " . |
431 | "where object_id = ${row['object_id']} and attr_id = ${row['attr_id']}"; | |
264b07b4 DO |
432 | $r81->closeCursor(); |
433 | unset ($r81); | |
a07a39b1 | 434 | } |
ce109ff2 DO |
435 | } |
436 | } | |
a07a39b1 | 437 | // Now it's possible to schedule PortCompat regeneration. |
1b5942be DO |
438 | // Convert the fields to unsigned on occasion. |
439 | $query[] = 'drop table PortCompat'; | |
440 | $query[] = 'create table PortCompat (type1 int(10) unsigned NOT NULL, type2 int(10) unsigned NOT NULL)'; | |
758fe24c DO |
441 | $q9 = "select type1, type2 from PortCompat"; |
442 | $r9 = $dbxlink->query ($q9); | |
443 | while ($row = $r9->fetch (PDO::FETCH_ASSOC)) | |
a07a39b1 DO |
444 | { |
445 | $new_type1 = $new_dict[2][$row['type1']]['newkey']; | |
446 | $new_type2 = $new_dict[2][$row['type2']]['newkey']; | |
447 | $query[] = "insert into PortCompat (type1, type2) values (${new_type1}, ${new_type2})"; | |
448 | } | |
758fe24c | 449 | $r9->closeCursor(); |
264b07b4 | 450 | unset ($r9); |
758fe24c | 451 | echo '</pre>'; |
a07a39b1 DO |
452 | |
453 | // Give the configuration some finish | |
454 | $query[] = "update Config set is_hidden = 'yes' where varname = 'color_F'"; | |
455 | $query[] = "update Config set is_hidden = 'yes' where varname = 'color_A'"; | |
456 | $query[] = "update Config set is_hidden = 'yes' where varname = 'color_U'"; | |
457 | $query[] = "update Config set is_hidden = 'yes' where varname = 'color_T'"; | |
458 | $query[] = "update Config set is_hidden = 'yes' where varname = 'color_Th'"; | |
459 | $query[] = "update Config set is_hidden = 'yes' where varname = 'color_Tw'"; | |
460 | $query[] = "update Config set is_hidden = 'yes' where varname = 'color_Thw'"; | |
461 | $query[] = "update Config set description = 'Default port type' where varname = 'default_port_type'"; | |
462 | $query[] = "update Config set description = 'Picture scale for rack row display' where varname = 'ROW_SCALE'"; | |
463 | $query[] = "update Config set description = 'Organization name' where varname = 'enterprise'"; | |
464 | $query[] = "update Config set description = 'Expect common name configured for the following object types' where varname = 'NAMEFUL_OBJTYPES'"; | |
465 | $query[] = "update Config set description = '<SELECT> lists height' where varname = 'MAXSELSIZE'"; | |
466 | $query[] = "update Config set description = '"Fast" form is this many records tall' where varname = 'MASSCOUNT'"; | |
264b07b4 | 467 | $query[] = "update Config set is_hidden = 'no', description = 'Ports per row in VLANs tab' where varname = 'PORTS_PER_ROW'"; |
a07a39b1 | 468 | $query[] = "INSERT INTO `Config` VALUES ('IPV4_ADDRS_PER_PAGE','256','uint','no','no','IPv4 addresses per page')"; |
9e7f8a4b | 469 | $query[] = "INSERT INTO `Config` VALUES ('DEFAULT_RACK_HEIGHT','42','uint','yes','no','Default rack height')"; |
bd912758 DO |
470 | // After Dictionary transformation we ought to list 337 stock records in DB. Add more. |
471 | $new_words = array(); | |
472 | $new_words[338] = array (12 => 'Dell PowerConnect 2216'); | |
473 | $new_words[] = array (12 => 'Dell PowerConnect 2224'); | |
474 | $new_words[] = array (12 => 'Dell PowerConnect 2324'); | |
475 | $new_words[] = array (12 => 'Dell PowerConnect 2708'); | |
476 | $new_words[] = array (12 => 'Dell PowerConnect 2716'); | |
477 | $new_words[] = array (12 => 'Dell PowerConnect 2724'); | |
478 | $new_words[] = array (12 => 'Dell PowerConnect 2748'); | |
479 | $new_words[] = array (12 => 'Dell PowerConnect 3424'); | |
480 | $new_words[] = array (12 => 'Dell PowerConnect 3424P'); | |
481 | $new_words[] = array (12 => 'Dell PowerConnect 3448'); | |
482 | $new_words[] = array (12 => 'Dell PowerConnect 3448P'); | |
483 | $new_words[] = array (12 => 'Dell PowerConnect 5324'); | |
484 | $new_words[] = array (12 => 'Dell PowerConnect 6224'); | |
485 | $new_words[] = array (12 => 'Dell PowerConnect 6224P'); | |
486 | $new_words[] = array (12 => 'Dell PowerConnect 6224F'); | |
487 | $new_words[] = array (12 => 'Dell PowerConnect 6248'); | |
488 | $new_words[] = array (12 => 'Dell PowerConnect 6248P'); | |
489 | $new_words[] = array (11 => 'Dell PowerEdge 6850'); | |
490 | $new_words[] = array (11 => 'Dell PowerEdge 6950'); | |
491 | $new_words[] = array (11 => 'Dell PowerEdge R900'); | |
492 | $new_words[] = array (11 => 'Dell PowerEdge 4400'); | |
493 | $new_words[] = array (11 => 'Dell PowerEdge 2650'); | |
494 | $new_words[] = array (11 => 'Dell PowerEdge 2550'); | |
495 | $new_words[] = array (11 => 'Dell PowerEdge 750'); | |
496 | $new_words[] = array (11 => 'Dell PowerEdge 2450'); | |
497 | $new_words[] = array (11 => 'Dell PowerEdge 850'); | |
498 | $new_words[] = array (11 => 'Dell PowerEdge 1850'); | |
499 | $new_words[] = array (11 => 'Dell PowerEdge 860'); | |
500 | $new_words[] = array (11 => 'Dell PowerEdge 2900'); | |
501 | $new_words[] = array (11 => 'Dell PowerEdge 2970'); | |
502 | $new_words[] = array (11 => 'Dell PowerEdge SC1435'); | |
503 | $new_words[] = array (12 => 'Cisco Catalyst 6509'); | |
504 | $new_words[] = array (12 => 'Cisco ME 6524GS-8S'); | |
505 | $new_words[] = array (12 => 'Cisco ME 6524GT-8S'); | |
506 | $new_words[] = array (12 => 'Cisco Catalyst 4503-E'); | |
507 | $new_words[] = array (12 => 'Cisco Catalyst 4506-E'); | |
508 | $new_words[] = array (12 => 'Cisco Catalyst 4507R-E'); | |
509 | $new_words[] = array (12 => 'Cisco Catalyst 4510R-E'); | |
510 | $new_words[] = array (12 => 'Cisco Catalyst 3750-24TE-M'); | |
511 | $new_words[] = array (12 => 'Cisco Catalyst 4948-10GE'); | |
512 | $new_words[] = array (12 => 'Cisco ME 4924-10GE'); | |
513 | $new_words[] = array (12 => 'Cisco Catalyst 2960-24'); | |
514 | $new_words[] = array (12 => 'Cisco Catalyst 2950-24'); | |
515 | $new_words[] = array (12 => 'Cisco Catalyst 2950-12'); | |
516 | $new_words[] = array (12 => 'Cisco Catalyst 2950C-24'); | |
517 | $new_words[] = array (12 => 'Cisco Catalyst 2950G-24-DC'); | |
518 | $new_words[] = array (12 => 'Cisco Catalyst 2950SX-48'); | |
519 | $new_words[] = array (12 => 'Cisco Catalyst 2950SX-24'); | |
520 | $new_words[] = array (12 => 'Cisco Catalyst 2950T-24'); | |
521 | $new_words[] = array (12 => 'Cisco Catalyst 2950T-48'); | |
522 | $new_words[] = array (12 => 'Cisco Catalyst 2950G-12'); | |
523 | $new_words[] = array (12 => 'Cisco Catalyst 2950G-24'); | |
524 | $new_words[] = array (12 => 'Cisco Catalyst 2950G-48'); | |
bd912758 DO |
525 | $new_words[] = array (12 => 'Cisco Catalyst 3508G XL'); |
526 | $new_words[] = array (12 => 'Cisco Catalyst 3512 XL'); | |
527 | $new_words[] = array (12 => 'Cisco Catalyst 3524 XL'); | |
528 | $new_words[] = array (12 => 'Cisco Catalyst 3524 PWR XL'); | |
529 | $new_words[] = array (12 => 'Cisco Catalyst 3548 XL'); | |
530 | $new_words[] = array (12 => 'Cisco ME 2400-24TS-A'); | |
531 | $new_words[] = array (12 => 'Cisco ME 2400-24TS-D'); | |
532 | $new_words[] = array (12 => 'Cisco Catalyst 3550-12T'); | |
533 | $new_words[] = array (12 => 'Cisco Catalyst 3550-12G'); | |
534 | $new_words[] = array (12 => 'Cisco Catalyst 3550-24'); | |
535 | $new_words[] = array (12 => 'Cisco Catalyst 3550-24 FX'); | |
536 | $new_words[] = array (12 => 'Cisco Catalyst 3550-24 DC'); | |
537 | $new_words[] = array (12 => 'Cisco Catalyst 3550-24 PWR'); | |
538 | $new_words[] = array (12 => 'Cisco Catalyst 3550-48'); | |
539 | $new_words[] = array (12 => 'Cisco ME 3400G-12CS-A'); | |
540 | $new_words[] = array (12 => 'Cisco ME 3400G-12CS-D'); | |
541 | $new_words[] = array (12 => 'Cisco ME 3400G-2CS-A'); | |
542 | $new_words[] = array (12 => 'Cisco ME 3400-24TS-A'); | |
543 | $new_words[] = array (12 => 'Cisco ME 3400-24TS-D'); | |
544 | $new_words[] = array (12 => 'Cisco ME 3400-24FS-A'); | |
7373a304 DO |
545 | $new_words[] = array (12 => 'Foundry FastIron GS 624XGP'); |
546 | $new_words[] = array (12 => 'Foundry FastIron GS 624XGP-POE'); | |
547 | $new_words[] = array (12 => 'Foundry FastIron LS 624'); | |
548 | $new_words[] = array (12 => 'Foundry FastIron LS 648'); | |
549 | $new_words[] = array (12 => 'Foundry NetIron M2404F'); | |
550 | $new_words[] = array (12 => 'Foundry NetIron M2404C'); | |
551 | $new_words[] = array (17 => 'Foundry BigIron RX-32'); | |
e7882270 DO |
552 | $new_words[] = array (13 => 'Debian 2.0 (hamm)'); |
553 | $new_words[] = array (13 => 'Debian 2.1 (slink)'); | |
554 | $new_words[] = array (13 => 'Debian 2.2 (potato)'); | |
555 | $new_words[] = array (13 => 'Debian 4.0 (etch)'); | |
556 | $new_words[] = array (13 => 'ALTLinux Server 4.0'); | |
e7882270 DO |
557 | $new_words[] = array (13 => 'ALTLinux Sisyphus'); |
558 | $new_words[] = array (13 => 'openSUSE 10.0'); | |
559 | $new_words[] = array (13 => 'openSUSE 10.1'); | |
560 | $new_words[] = array (13 => 'openSUSE 10.2'); | |
561 | $new_words[] = array (13 => 'openSUSE 10.3'); | |
562 | $new_words[] = array (13 => 'Ubuntu 4.10'); | |
563 | $new_words[] = array (13 => 'Ubuntu 5.04'); | |
564 | $new_words[] = array (13 => 'Ubuntu 5.10'); | |
565 | $new_words[] = array (13 => 'Ubuntu 6.06 LTS'); | |
566 | $new_words[] = array (13 => 'Ubuntu 6.10'); | |
567 | $new_words[] = array (13 => 'Ubuntu 7.04'); | |
568 | $new_words[] = array (13 => 'Ubuntu 7.10'); | |
569 | $new_words[] = array (13 => 'Ubuntu 8.04 LTS'); | |
570 | $new_words[] = array (13 => 'RHEL5'); | |
5f58747d DO |
571 | $new_words[] = array (18 => 'Dell PowerVault 210S'); |
572 | $new_words[] = array (18 => 'Dell PowerVault 221S'); | |
ab0ec3ef DO |
573 | $new_words[] = array (2 => 'dry contact'); |
574 | $new_words[] = array (2 => 'unknown'); | |
499dfa73 DO |
575 | // Two above records ought to take keys 439 and 440. |
576 | $query[] = "INSERT INTO `PortCompat` (`type1`, `type2`) VALUES (439,439)"; | |
efb6bab4 DO |
577 | $new_words[] = array (13 => 'CentOS-2'); |
578 | $new_words[] = array (13 => 'CentOS-3'); | |
579 | $new_words[] = array (13 => 'CentOS-4'); | |
580 | $new_words[] = array (13 => 'CentOS-5'); | |
bd912758 DO |
581 | foreach ($new_words as $dict_key => $tmp) |
582 | foreach ($tmp as $chapter_no => $dict_value) | |
583 | $query[] = 'INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) ' . | |
584 | "VALUES (${chapter_no}, ${dict_key}, '${dict_value}')"; | |
57913f20 DO |
585 | // Resetting to defaults is worse, than remapping, but better than |
586 | // leaving messed values. | |
587 | $query[] = "update Config set varvalue = '24' where varname = 'default_port_type' limit 1"; | |
ce109ff2 | 588 | // We are done. |
54c2a7a8 | 589 | $query[] = "update Config set varvalue = '0.14.7' where varname = 'DB_VERSION'"; |
803338c1 | 590 | break; // -------------------------------------------- |
a6305acc DO |
591 | case '0.14.8': |
592 | $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('REQUIRE_ASSET_TAG_FOR','4,7,8','string','yes','no','Require asset tag for the following object types')"; | |
78f44cbc DO |
593 | $query[] = "alter table Port modify column id int(10) unsigned NOT NULL auto_increment"; |
594 | $query[] = "alter table Port modify column object_id int(10) unsigned NOT NULL"; | |
595 | $query[] = "alter table Port modify column type int(10) unsigned NOT NULL"; | |
596 | $query[] = "alter table Link modify column porta int(10) unsigned"; | |
597 | $query[] = "alter table Link modify column portb int(10) unsigned"; | |
ba1c6d42 DO |
598 | $query[] = "alter table PortForwarding modify column object_id int(10) unsigned not null"; |
599 | $query[] = "alter table PortForwarding modify column localport smallint(5) unsigned not null"; | |
600 | $query[] = "alter table PortForwarding modify column remoteport smallint(5) unsigned not null"; | |
601 | $query[] = "alter table IPBonds modify column object_id int(10) unsigned not null"; | |
602 | $query[] = "alter table IPRanges modify column id int(10) unsigned not null"; | |
603 | $query[] = "alter table IPRanges modify column mask int(10) unsigned not null"; | |
78f44cbc DO |
604 | $query[] = "alter table Port add index `type` (type)"; |
605 | $query[] = "alter table PortCompat add index `type1` (type1)"; | |
606 | $query[] = "alter table PortCompat add index `type2` (type2)"; | |
992d2ec2 DO |
607 | $query[] = "update Dictionary set dict_value = 'Debian 3.0 (woody)' where dict_key = 234"; |
608 | $query[] = "update Dictionary set dict_value = 'Debian 3.1 (sarge)' where dict_key = 235"; | |
609 | $query[] = "update Dictionary set dict_value = 'Foundry BigIron 15000' where dict_key = 311"; | |
610 | $query[] = "update Dictionary set dict_value = 'RHF7' where dict_key = 232"; | |
611 | $query[] = "update Dictionary set dict_value = 'RHF8' where dict_key = 242"; | |
c8b74094 DO |
612 | $query[] = "INSERT INTO `Attribute` (`attr_id`, `attr_type`, `attr_name`) VALUES (25,'string','UUID');"; |
613 | $query[] = "INSERT INTO `AttributeMap` (`objtype_id`, `attr_id`, `chapter_no`) VALUES (4,25,0);"; | |
ba1c6d42 DO |
614 | $query[] = "update Dictionary set dict_value = '[[Cisco Catalyst 2970G-24T | http://www.cisco.com/en/US/products/hw/switches/ps5206/ps5313/index.html]]' where dict_key = 210"; |
615 | $query[] = "update Dictionary set dict_value = '[[Cisco Catalyst 2970G-24TS | http://www.cisco.com/en/US/products/hw/switches/ps5206/ps5437/index.html]]' where dict_key = 211"; | |
78f44cbc | 616 | $query[] = "update Config set varvalue = '0.14.8' where varname = 'DB_VERSION'"; |
a6305acc | 617 | break; // -------------------------------------------- |
cf48742e DO |
618 | case '0.14.9': |
619 | $query[] = "alter table IPRanges modify column id int(10) unsigned not null auto_increment"; | |
0a7136d4 | 620 | $query[] = "alter table Rack modify column height tinyint(3) unsigned not null default '42'"; |
86f94102 | 621 | $query[] = "alter table Rack add column thumb_data blob after comment"; |
2526f63c DO |
622 | $query[] = " |
623 | CREATE TABLE `IPLoadBalancer` ( | |
624 | `object_id` int(10) unsigned default NULL, | |
625 | `rspool_id` int(10) unsigned default NULL, | |
70c24883 | 626 | `vs_id` int(10) unsigned default NULL, |
2526f63c DO |
627 | `vsconfig` text, |
628 | `rsconfig` text, | |
70c24883 | 629 | UNIQUE KEY `LB-VS` (`object_id`,`vs_id`) |
2526f63c DO |
630 | ) ENGINE=MyISAM"; |
631 | $query[] = " | |
632 | CREATE TABLE `IPRSPool` ( | |
633 | `id` int(10) unsigned NOT NULL auto_increment, | |
2526f63c DO |
634 | `name` char(255) default NULL, |
635 | `vsconfig` text, | |
636 | `rsconfig` text, | |
637 | PRIMARY KEY (`id`) | |
638 | ) ENGINE=MyISAM"; | |
639 | $query[] = " | |
640 | CREATE TABLE `IPRealServer` ( | |
641 | `id` int(10) unsigned NOT NULL auto_increment, | |
35b72b35 | 642 | `inservice` enum('yes','no') NOT NULL default 'no', |
2526f63c DO |
643 | `rsip` int(10) unsigned default NULL, |
644 | `rsport` smallint(5) unsigned default NULL, | |
645 | `rspool_id` int(10) unsigned default NULL, | |
646 | `rsconfig` text, | |
70c24883 DO |
647 | PRIMARY KEY (`id`), |
648 | UNIQUE KEY `pool-endpoint` (`rspool_id`,`rsip`,`rsport`) | |
2526f63c DO |
649 | ) ENGINE=MyISAM"; |
650 | $query[] = " | |
651 | CREATE TABLE `IPVirtualService` ( | |
652 | `id` int(10) unsigned NOT NULL auto_increment, | |
653 | `vip` int(10) unsigned default NULL, | |
654 | `vport` smallint(5) unsigned default NULL, | |
655 | `proto` enum('TCP','UDP') NOT NULL default 'TCP', | |
656 | `name` char(255) default NULL, | |
657 | `vsconfig` text, | |
658 | `rsconfig` text, | |
d800a805 | 659 | PRIMARY KEY (`id`) |
2526f63c | 660 | ) ENGINE=MyISAM"; |
d800a805 | 661 | $query[] = "INSERT INTO `Config` VALUES ('DEFAULT_SLB_VS_PORT','','uint','yes','no','Default port of SLB virtual service')"; |
73e11958 | 662 | $query[] = "INSERT INTO `Config` VALUES ('DEFAULT_SLB_RS_PORT','','uint','yes','no','Default port of SLB real server')"; |
6dbdc7c7 DO |
663 | $query[] = "INSERT INTO `Config` VALUES ('IPV4_PERFORMERS','1,4,7,8,12,14','string','yes','no','IPv4-capable object types')"; |
664 | $query[] = "INSERT INTO `Config` VALUES ('NATV4_PERFORMERS','4,7,8','string','yes','no','NATv4-capable object types')"; | |
f2154c9f | 665 | $query[] = "INSERT INTO `Config` VALUES ('USER_AUTH_SRC','database','string','no','no','User authentication source')"; |
3e0fc4b6 | 666 | $query[] = "alter table RackSpace drop column problem_id"; |
d800a805 | 667 | $query[] = "update Config set varvalue = '0.14.9' where varname = 'DB_VERSION'"; |
cf48742e | 668 | break; // -------------------------------------------- |
a6f83a72 DO |
669 | case '0.14.10': |
670 | $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('DETECT_URLS','no','string','yes','no','Detect URLs in text fields')"; | |
f187f2ec DO |
671 | $query[] = "alter table RackHistory modify column height tinyint(3) unsigned"; |
672 | $query[] = "alter table RackHistory add column thumb_data blob after comment"; | |
4b8d413e | 673 | $query[] = "INSERT INTO `Config` VALUES ('RACK_PRESELECT_THRESHOLD','1','uint','no','no','Rack pre-selection threshold')"; |
a6f83a72 | 674 | $query[] = "update Config set varvalue = '0.14.10' where varname = 'DB_VERSION'"; |
81dbd3bc | 675 | break; // -------------------------------------------- |
2ff234d6 DO |
676 | case '0.14.11': |
677 | $new_words = array(); | |
678 | $new_words[445] = array (1 => 'KVM switch'); | |
679 | $new_words[] = array (2 => 'KVM (console)'); | |
680 | $new_words[] = array (1 => 'multiplexer'); | |
681 | $query[] = "update Dictionary set dict_value = 'network switch' where dict_key = 8"; | |
682 | $query[] = "update Dictionary set dict_value = 'KVM (host)' where dict_key = 33"; | |
683 | $query[] = "delete from PortCompat where type1 = 33 and type2 = 33"; | |
684 | $query[] = "insert into PortCompat (type1, type2) values (33, 446)"; | |
685 | $query[] = "insert into PortCompat (type1, type2) values (446, 33)"; | |
35d3ecaf DO |
686 | $query[] = "insert into Chapter (chapter_no, sticky, chapter_name) values (21, 'no', 'KVM switch models')"; |
687 | $query[] = "insert into Chapter (chapter_no, sticky, chapter_name) values (22, 'no', 'multiplexer models')"; | |
2ff234d6 DO |
688 | $query[] = "update Chapter set chapter_name = 'network switch models' where chapter_no = 12"; |
689 | $new_words[] = array (21 => '[[Avocent DSR1021 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2418]]'); | |
690 | $new_words[] = array (21 => '[[Avocent DSR1022 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2498]]'); | |
691 | $new_words[] = array (21 => '[[Avocent DSR1024 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2588]]'); | |
692 | $new_words[] = array (21 => '[[Avocent DSR1031 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2804]]'); | |
693 | $new_words[] = array (21 => '[[Avocent DSR1020 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2340]]'); | |
694 | $new_words[] = array (21 => '[[Avocent DSR2020 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2884]]'); | |
695 | $new_words[] = array (21 => '[[Avocent DSR4020 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=3100]]'); | |
696 | $new_words[] = array (21 => '[[Avocent DSR8020 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=3358]]'); | |
697 | $new_words[] = array (21 => '[[Avocent DSR1030 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2726]]'); | |
698 | $new_words[] = array (21 => '[[Avocent DSR2030 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2988]]'); | |
699 | $new_words[] = array (21 => '[[Avocent DSR2035 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=3050]]'); | |
700 | $new_words[] = array (21 => '[[Avocent DSR4030 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=3196]]'); | |
701 | $new_words[] = array (21 => '[[Avocent DSR8030 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=3472]]'); | |
702 | $new_words[] = array (21 => '[[Avocent DSR8035 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=3580]]'); | |
703 | $new_words[] = array (21 => '[[Avocent AutoView 1415 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=1612]]'); | |
704 | $new_words[] = array (21 => '[[Avocent AutoView 1515 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=1736]]'); | |
705 | $new_words[] = array (21 => '[[Avocent AutoView 2015 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=1930]]'); | |
706 | $new_words[] = array (21 => '[[Avocent AutoView 2020 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2012]]'); | |
707 | $new_words[] = array (21 => '[[Avocent AutoView 2030 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2114]]'); | |
708 | $new_words[] = array (21 => '[[Avocent AutoView 3100 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2222]]'); | |
709 | $new_words[] = array (21 => '[[Avocent AutoView 3200 | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=2266]]'); | |
710 | $new_words[] = array (21 => '[[Avocent SwitchView 1000 4-port | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=4016]]'); | |
711 | $new_words[] = array (21 => '[[Avocent SwitchView 1000 8-port | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=4094]]'); | |
712 | $new_words[] = array (21 => '[[Avocent SwitchView 1000 16-port | http://www.avocent.com/WorkArea/linkit.aspx?LinkIdentifier=id&ItemID=3934]]'); | |
713 | $new_words[] = array (22 => '[[Cronyx FMUX/S-4E1 | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
714 | $new_words[] = array (22 => '[[Cronyx FMUX/S-4E1/ETS | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
715 | $new_words[] = array (22 => '[[Cronyx FMUX/S-4E1/M | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
716 | $new_words[] = array (22 => '[[Cronyx FMUX/S-8E1 | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
717 | $new_words[] = array (22 => '[[Cronyx FMUX/S-8E1/ETS | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
718 | $new_words[] = array (22 => '[[Cronyx FMUX/S-8E1/M | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
719 | $new_words[] = array (22 => '[[Cronyx FMUX/S-16E1 | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
720 | $new_words[] = array (22 => '[[Cronyx FMUX/S-16E1/ETS | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
721 | $new_words[] = array (22 => '[[Cronyx FMUX/S-16E1/M | http://www.cronyx.ru/hardware/fmux-ring.html]]'); | |
722 | $new_words[] = array (22 => '[[Cronyx E1-XL/S | http://www.cronyx.ru/hardware/e1xl-s.html]]'); | |
723 | $new_words[] = array (22 => '[[Cronyx E1-DXC/S | http://www.cronyx.ru/hardware/e1dxc-s.html]]'); | |
724 | $new_words[] = array (22 => '[[Cronyx FMUX-4-E2 | http://www.cronyx.ru/hardware/fmux4-e2.html]]'); | |
725 | $new_words[] = array (22 => '[[Cronyx FMUX-4-E3 | http://www.cronyx.ru/hardware/fmux16-e3.html]]'); | |
726 | $new_words[] = array (22 => '[[Cronyx FMUX/SAT | http://www.cronyx.ru/hardware/fmux-sat.html]]'); | |
727 | $new_words[] = array (22 => '[[Cronyx E1-XL/S-IP | http://www.cronyx.ru/hardware/e1xl-ip.html]]'); | |
728 | $new_words[] = array (17 => '[[RAD FCD-IPM | http://www.rad.com/Article/0,6583,36426-E1_T1_or_Fractional_E1_T1_Modular_Access_Device_with_Integrated_Router,00.html]]'); | |
729 | $new_words[] = array (22 => '[[RAD FCD-E1M | http://www.rad.com/Article/0,6583,36723-E1_T1_Modular_Access_Multiplexer,00.html]]'); | |
730 | $new_words[] = array (22 => '[[RAD FCD-T1M | http://www.rad.com/Article/0,6583,36723-E1_T1_Modular_Access_Multiplexer,00.html]]'); | |
731 | $new_words[] = array (22 => '[[RAD FCD-155E | http://www.rad.com/Article/0,6583,36276-Ethernet_over_SDH_SONET_ADM,00.html]]'); | |
732 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (445, 1, 0)"; | |
733 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (445, 2, 21)"; | |
734 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (445, 3, 0)"; | |
735 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (445, 5, 0)"; | |
736 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (445, 14, 0)"; | |
737 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (445, 22, 0)"; | |
738 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (447, 1, 0)"; | |
739 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (447, 2, 22)"; | |
740 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (447, 3, 0)"; | |
741 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (447, 5, 0)"; | |
742 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (447, 14, 0)"; | |
743 | $query[] = "insert into AttributeMap (objtype_id, attr_id, chapter_no) values (447, 22, 0)"; | |
2ff234d6 DO |
744 | foreach ($new_words as $dict_key => $tmp) |
745 | foreach ($tmp as $chapter_no => $dict_value) | |
746 | $query[] = 'INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) ' . | |
747 | "VALUES (${chapter_no}, ${dict_key}, '${dict_value}')"; | |
f70bed91 | 748 | $query[] = "update Rack set thumb_data = NULL"; |
2ff234d6 DO |
749 | $query[] = "update Config set varvalue = '0.14.11' where varname = 'DB_VERSION'"; |
750 | break; // -------------------------------------------- | |
7e7a8387 | 751 | case '0.14.12': |
2c53a252 | 752 | $query[] = "INSERT INTO `Config` VALUES ('DEFAULT_IPV4_RS_INSERVICE','no','string','no','no','Inservice status for new SLB real servers')"; |
a52b9eb1 | 753 | $query[] = "INSERT INTO `Config` VALUES ('AUTOPORTS_CONFIG','4 = 1*33*kvm + 2*24*eth%u;15 = 1*446*kvm','string','yes','no','AutoPorts configuration')"; |
a477e405 | 754 | $query[] = "INSERT INTO `Config` VALUES ('DEFAULT_OBJECT_TYPE','4','uint','yes','no','Default object type for new objects')"; |
684bbcac DO |
755 | $query[] = "insert into Chapter (chapter_no, sticky, chapter_name) values (23, 'no', 'console models')"; |
756 | $query[] = "INSERT INTO `AttributeMap` (`objtype_id`, `attr_id`, `chapter_no`) VALUES (15, 2, 23)"; | |
b83abd29 | 757 | $query[] = "alter table Dictionary modify column dict_value char(255)"; |
03350e39 | 758 | $new_words[491] = array (21 => '[[Aten CS78 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20070319151852001&layerid=subClass2]]'); |
684bbcac DO |
759 | $new_words[] = array (21 => '[[Aten ACS1208A | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224111025006&layerid=subClass2]]'); |
760 | $new_words[] = array (21 => '[[Aten ACS1216A | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224111953008&layerid=subClass2]]'); | |
761 | $new_words[] = array (21 => '[[Aten CS1754 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050217161051008&layerid=subClass2]]'); | |
762 | $new_words[] = array (21 => '[[Aten CS1758 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224093143008&layerid=subClass2]]'); | |
763 | $new_words[] = array (21 => '[[Aten CS9134 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20070130133658002&pid=20050217172845005&layerid=subClass2]]'); | |
764 | $new_words[] = array (21 => '[[Aten CS9138 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224094519006&layerid=subClass2]]'); | |
765 | $new_words[] = array (21 => '[[Aten CS1708 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=2005022410563008&layerid=subClass2]]'); | |
766 | $new_words[] = array (21 => '[[Aten CS1716 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224110022008&layerid=subClass2]]'); | |
767 | $new_words[] = array (21 => '[[Aten CS1004 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224100546008&layerid=subClass2]]'); | |
768 | $new_words[] = array (21 => '[[Aten CS228 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224114323008&layerid=subClass2]]'); | |
769 | $new_words[] = array (21 => '[[Aten CS428 | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224114721008&layerid=subClass2]]'); | |
770 | $new_words[] = array (21 => '[[Aten CS138A | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=20050224111458007&layerid=subClass2]]'); | |
771 | $new_words[] = array (21 => '[[Aten CS88A | http://www.aten.com/products/productItem.php?pcid=20070130111936003&psid=20070130133658002&pid=2005022411042006&layerid=subClass2]]'); | |
772 | $new_words[] = array (21 => '[[Aten KM0832 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131626002&pid=20060628154826001&layerid=subClass1]]'); | |
773 | $new_words[] = array (21 => '[[Aten KM0216 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411131626002&pid=20060417153950007&layerid=subClass1]]'); | |
774 | $new_words[] = array (21 => '[[Aten KM0432 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411131626002&pid=2006041715359007&layerid=subClass1]]'); | |
775 | $new_words[] = array (21 => '[[Aten KH1508 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411130954001&pid=20061101174038001&layerid=subClass1]]'); | |
776 | $new_words[] = array (21 => '[[Aten KH1516 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411130954001&pid=20061101175320001&layerid=subClass1]]'); | |
777 | $new_words[] = array (21 => '[[Aten KH0116 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411130954001&pid=20060411145734003&layerid=subClass1]]'); | |
778 | $new_words[] = array (21 => '[[Aten KH98 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=2007012911116003&pid=20061221104352001&layerid=subClass1]]'); | |
779 | $new_words[] = array (23 => '[[Aten KL1100 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=20071225113046001&layerid=subClass1]]'); | |
780 | $new_words[] = array (23 => '[[Aten KL1508 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411131050002&pid=20070710020717009&layerid=subClass1]]'); | |
781 | $new_words[] = array (23 => '[[Aten KL1516 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411131050002&pid=20070716232614001&layerid=subClass1]]'); | |
782 | $new_words[] = array (23 => '[[Aten KL9108 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=20060811153413009&layerid=subClass1]]'); | |
783 | $new_words[] = array (23 => '[[Aten KL9116 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411131050002&pid=2006081115384001&layerid=subClass1]]'); | |
784 | $new_words[] = array (23 => '[[Aten KL3116 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=20060913162532009&layerid=subClass1]]'); | |
785 | $new_words[] = array (23 => '[[Aten KL1116 | http://www.aten.com/products/productItem.php?pcid=2006041110563001&psid=20060411131050002&pid=20060420101520005&layerid=subClass1]]'); | |
786 | $new_words[] = array (23 => '[[Aten CS1208DL | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=2005022413505007&layerid=subClass1]]'); | |
787 | $new_words[] = array (23 => '[[Aten CS1216DL | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=2005022413505007&layerid=subClass1]]'); | |
788 | $new_words[] = array (23 => '[[Aten CS1200L | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=20050224140854008&layerid=subClass1]]'); | |
789 | $new_words[] = array (23 => '[[Aten CL1758 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=20051229164553003&layerid=subClass1]]'); | |
790 | $new_words[] = array (23 => '[[Aten CL1208 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=2005072215482&layerid=subClass1]]'); | |
791 | $new_words[] = array (23 => '[[Aten CL1216 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=2005072215482&layerid=subClass1]]'); | |
792 | $new_words[] = array (23 => '[[Aten CL1200 | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=20050722165040002&layerid=subClass1]]'); | |
793 | $new_words[] = array (23 => '[[Aten ACS1208AL | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=2005022413597003&layerid=subClass1]]'); | |
794 | $new_words[] = array (23 => '[[Aten ACS1216AL | http://www.aten.com/products/productItem.php?pcid=2005010513171002&psid=20060411131050002&pid=2005022413597003&layerid=subClass1]]'); | |
b922bd97 DO |
795 | $new_words[] = array (22 => '[[Tainet MUXpro 8216 | http://www.tainet.net/Product/muxpro820_8216.htm]]'); |
796 | $new_words[] = array (22 => '[[Tainet Mercury 3600+ | http://www.tainet.net/Product/mercury.htm]]'); | |
797 | $new_words[] = array (22 => '[[Tainet Mercury 3820 | http://www.tainet.net/Product/mercury.htm]]'); | |
798 | $new_words[] = array (22 => '[[Tainet Mercury 3630 | http://www.tainet.net/Product/mercury.htm]]'); | |
799 | $new_words[] = array (22 => '[[Tainet Mercury 3630E | http://www.tainet.net/Product/mercury.htm]]'); | |
800 | $new_words[] = array (22 => '[[Tainet DSD-08A | http://www.tainet.net/Product/dsd08a.htm]]'); | |
7fc5565c | 801 | $new_words[] = array (11 => '[[HP ProLiant DL160 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-3580694.html]]'); |
7eee4cc8 DO |
802 | $new_words[] = array (11 => '[[HP ProLiant DL180 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-3580698.html]]'); |
803 | $new_words[] = array (11 => '[[HP ProLiant DL185 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-3579900.html]]'); | |
804 | $new_words[] = array (11 => '[[HP ProLiant DL365 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3186080.html]]'); | |
805 | $new_words[] = array (11 => '[[HP ProLiant DL320s | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3232017.html]]'); | |
806 | $new_words[] = array (11 => '[[HP ProLiant DL320p | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3579703.html]]'); | |
807 | $new_words[] = array (11 => '[[HP ProLiant ML115 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-3328424-3330535.html]]'); | |
808 | $old_words = array(); | |
809 | $old_words[487] = '[[RAD FCD-IPM | http://www.rad.com/Article/0,6583,36426-E1_T1_or_Fractional_E1_T1_Modular_Access_Device_with_Integrated_Router,00.html]]'; | |
810 | $old_words[484] = '[[Cronyx FMUX-16-E3 | http://www.cronyx.ru/hardware/fmux16-e3.html]]'; | |
811 | $old_words[101] = '[[HP ProLiant DL140 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-1842838.html]]'; | |
812 | $old_words[102] = '[[HP ProLiant DL145 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-3219755.html]]'; | |
813 | $old_words[103] = '[[HP ProLiant DL320 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3201178.html]]'; | |
814 | $old_words[104] = '[[HP ProLiant DL360 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-1121486.html]]'; | |
815 | $old_words[105] = '[[HP ProLiant DL380 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-1121516.html]]'; | |
816 | $old_words[106] = '[[HP ProLiant DL385 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3219233.html]]'; | |
817 | $old_words[107] = '[[HP ProLiant DL580 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328422-3454575.html]]'; | |
818 | $old_words[108] = '[[HP ProLiant DL585 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328422-3219717.html]]'; | |
819 | $old_words[109] = '[[HP ProLiant ML110 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-3328424-3577708.html]]'; | |
820 | $old_words[110] = '[[HP ProLiant ML150 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-3328424-3580609.html]]'; | |
821 | $old_words[111] = '[[HP ProLiant ML310 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-241477-3580655.html]]'; | |
822 | $old_words[112] = '[[HP ProLiant ML350 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-241477-1121586.html]]'; | |
823 | $old_words[113] = '[[HP ProLiant ML370 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-241477-1121474.html]]'; | |
824 | $old_words[114] = '[[HP ProLiant ML570 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-3328425-1842779.html]]'; | |
825 | foreach ($old_words as $dict_key => $dict_value) | |
48b11d4d | 826 | $query[] = "update Dictionary set dict_value = '${dict_value}' where dict_key = ${dict_key} limit 1"; |
f084b5c1 DO |
827 | foreach ($new_words as $dict_key => $tmp) |
828 | foreach ($tmp as $chapter_no => $dict_value) | |
829 | $query[] = 'INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) ' . | |
830 | "VALUES (${chapter_no}, ${dict_key}, '${dict_value}')"; | |
48329bfb | 831 | $query[] = "alter database character set utf8"; |
b83abd29 | 832 | $query[] = "update Config set varvalue = '0.14.12' where varname = 'DB_VERSION'"; |
7e7a8387 | 833 | break; // -------------------------------------------- |
68a3ab9c | 834 | case '0.15.0': |
f0b540a3 DO |
835 | $new_words[541] = array (12 => '[[Force10%GPASS%S2410CP | http://www.force10networks.com/products/s2410.asp]]'); |
836 | $new_words[] = array (12 => '[[Force10%GPASS%S50N | http://www.force10networks.com/products/s50n.asp]]'); | |
837 | $new_words[] = array (12 => '[[Force10%GPASS%S50V | http://www.force10networks.com/products/s50v.asp]]'); | |
838 | $new_words[] = array (12 => '[[Force10%GPASS%S25P | http://www.force10networks.com/products/s25p.asp]]'); | |
839 | $new_words[] = array (12 => '[[Force10%GPASS%C150| http://www.force10networks.com/products/cseries.asp]]'); | |
840 | $new_words[] = array (12 => '[[Force10%GPASS%C300| http://www.force10networks.com/products/cseries.asp]]'); | |
841 | $new_words[] = array (12 => '[[Force10%GPASS%E300 | http://www.force10networks.com/products/eseries.asp]]'); | |
842 | $new_words[] = array (12 => '[[Force10%GPASS%E600 | http://www.force10networks.com/products/eseries.asp]]'); | |
843 | $new_words[] = array (12 => '[[Force10%GPASS%E1200 | http://www.force10networks.com/products/eseries.asp]]'); | |
844 | $new_words[] = array (12 => '[[NETGEAR%GPASS%JGS524F | http://www.netgear.com/Products/Switches/UnmanagedSwitches/JGS524F.aspx]]'); | |
845 | $new_words[] = array (12 => '[[NETGEAR%GPASS%JGS516 | http://www.netgear.com/Products/Switches/UnmanagedSwitches/JGS516.aspx]]'); | |
846 | $new_words[] = array (12 => '[[NETGEAR%GPASS%JFS524 | http://www.netgear.com/Products/Switches/UnmanagedSwitches/JFS524.aspx]]'); | |
847 | $new_words[] = array (12 => '[[NETGEAR%GPASS%JFS524F | http://www.netgear.com/Products/Switches/UnmanagedSwitches/JFS524F.aspx]]'); | |
848 | $new_words[] = array (12 => '[[NETGEAR%GPASS%JGS524 | http://www.netgear.com/Products/Switches/UnmanagedSwitches/JGS524.aspx]]'); | |
849 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FS524 | http://www.netgear.com/Products/Switches/UnmanagedSwitches/FS524.aspx]]'); | |
850 | $new_words[] = array (12 => '[[NETGEAR%GPASS%JFS516 | http://www.netgear.com/Products/Switches/UnmanagedSwitches/JFS516.aspx]]'); | |
851 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7224R | http://www.netgear.com/Products/Switches/Layer2ManagedSwitches/GSM7224R.aspx]]'); | |
852 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7248 | http://www.netgear.com/Products/Switches/Layer2ManagedSwitches/GSM7248.aspx]]'); | |
853 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7212 | http://www.netgear.com/Products/Switches/Layer2ManagedSwitches/GSM7212.aspx]]'); | |
854 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FSM726S | http://www.netgear.com/Products/Switches/Layer2ManagedSwitches/FSM726S.aspx]]'); | |
855 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7248R | http://www.netgear.com/Products/Switches/Layer2ManagedSwitches/GSM7248R.aspx]]'); | |
856 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7224 | http://www.netgear.com/Products/Switches/Layer2ManagedSwitches/GSM7224.aspx]]'); | |
857 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FSM750S | http://www.netgear.com/Products/Switches/Layer2ManagedSwitches/FSM750S.aspx]]'); | |
858 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FSM726 | http://www.netgear.com/Products/Switches/Layer2ManagedSwitches/FSM726.aspx]]'); | |
859 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GS724TP | http://www.netgear.com/Products/Switches/SmartSwitches/GS724TP.aspx]]'); | |
860 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GS748TS | http://www.netgear.com/Products/Switches/SmartSwitches/GS748TS.aspx]]'); | |
861 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GS724T | http://www.netgear.com/Products/Switches/SmartSwitches/GS724T.aspx]]'); | |
862 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FS728TP | http://www.netgear.com/Products/Switches/SmartSwitches/FS728TP.aspx]]'); | |
863 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FS752TS | http://www.netgear.com/Products/Switches/SmartSwitches/FS752TS.aspx]]'); | |
864 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FS728TS | http://www.netgear.com/Products/Switches/SmartSwitches/FS728TS.aspx]]'); | |
865 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FS726T | http://www.netgear.com/Products/Switches/SmartSwitches/FS726T.aspx]]'); | |
866 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GS748TP | http://www.netgear.com/Products/Switches/SmartSwitches/GS748TP.aspx]]'); | |
867 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GS724TS | http://www.netgear.com/Products/Switches/SmartSwitches/GS724TS.aspx]]'); | |
868 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GS748T | http://www.netgear.com/Products/Switches/SmartSwitches/GS748T.aspx]]'); | |
869 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GS716T | http://www.netgear.com/Products/Switches/SmartSwitches/GS716T.aspx]]'); | |
870 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FS752TPS | http://www.netgear.com/Products/Switches/SmartSwitches/FS752TPS.aspx]]'); | |
871 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FS750T2 | http://www.netgear.com/Products/Switches/SmartSwitches/FS750T2.aspx]]'); | |
872 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FS726TP | http://www.netgear.com/Products/Switches/SmartSwitches/FS726TP.aspx]]'); | |
873 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FSM7328PS | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/FSM7328PS.aspx]]'); | |
874 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7352S | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/GSM7352S.aspx]]'); | |
875 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7324 | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/GSM7324.aspx]]'); | |
876 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FSM7326P | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/FSM7326P.aspx]]'); | |
877 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FSM7352PS | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/FSM7352PS.aspx]]'); | |
878 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7328FS | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/GSM7328FS.aspx]]'); | |
879 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7328S | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/GSM7328S.aspx]]'); | |
880 | $new_words[] = array (12 => '[[NETGEAR%GPASS%GSM7312 | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/GSM7312.aspx]]'); | |
881 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FSM7328S | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/FSM7328S.aspx]]'); | |
882 | $new_words[] = array (12 => '[[NETGEAR%GPASS%FSM7352S | http://www.netgear.com/Products/Switches/Layer3ManagedSwitches/FSM7352S.aspx]]'); | |
883 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-6500 | http://www.dlink.com/products/?sec=0&pid=341]]'); | |
884 | $new_words[] = array (12 => '[[D-Link%GPASS%DWS-3227 | http://www.dlink.com/products/?sec=0&pid=506]]'); | |
885 | $new_words[] = array (12 => '[[D-Link%GPASS%DWS-3227P | http://www.dlink.com/products/?sec=0&pid=507]]'); | |
886 | $new_words[] = array (12 => '[[D-Link%GPASS%DWS-3250 | http://www.dlink.com/products/?sec=0&pid=468]]'); | |
887 | $new_words[] = array (12 => '[[D-Link%GPASS%DWS-1008 | http://www.dlink.com/products/?sec=0&pid=434]]'); | |
888 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3612G | http://www.dlink.com/products/?sec=0&pid=557]]'); | |
889 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3627 | http://www.dlink.com/products/?sec=0&pid=639]]'); | |
890 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3650 | http://www.dlink.com/products/?sec=0&pid=640]]'); | |
891 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3324SR | http://www.dlink.com/products/?sec=0&pid=294]]'); | |
892 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3324SRi | http://www.dlink.com/products/?sec=0&pid=309]]'); | |
893 | $new_words[] = array (12 => '[[D-Link%GPASS%DXS-3326GSR | http://www.dlink.com/products/?sec=0&pid=339]]'); | |
894 | $new_words[] = array (12 => '[[D-Link%GPASS%DXS-3350SR | http://www.dlink.com/products/?sec=0&pid=340]]'); | |
895 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3828 | http://www.dlink.com/products/?sec=0&pid=439]]'); | |
896 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3828P | http://www.dlink.com/products/?sec=0&pid=440]]'); | |
897 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3100-24 | http://www.dlink.com/products/?sec=0&pid=635]]'); | |
898 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3100-24P | http://www.dlink.com/products/?sec=0&pid=636]]'); | |
899 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3100-48 | http://www.dlink.com/products/?sec=0&pid=637]]'); | |
900 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3100-48P | http://www.dlink.com/products/?sec=0&pid=638]]'); | |
901 | $new_words[] = array (12 => '[[D-Link%GPASS%DXS-3227 | http://www.dlink.com/products/?sec=0&pid=483]]'); | |
902 | $new_words[] = array (12 => '[[D-Link%GPASS%DXS-3227P | http://www.dlink.com/products/?sec=0&pid=497]]'); | |
903 | $new_words[] = array (12 => '[[D-Link%GPASS%DXS-3250 | http://www.dlink.com/products/?sec=0&pid=443]]'); | |
904 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3024 | http://www.dlink.com/products/?sec=0&pid=404]]'); | |
905 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3224TGR | http://www.dlink.com/products/?sec=0&pid=269]]'); | |
906 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-3048 | http://www.dlink.com/products/?sec=0&pid=496]]'); | |
907 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3228PA | http://www.dlink.com/products/?sec=0&pid=644]]'); | |
908 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3028 | http://www.dlink.com/products/?sec=0&pid=630]]'); | |
909 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3028P | http://www.dlink.com/products/?sec=0&pid=631]]'); | |
910 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3052 | http://www.dlink.com/products/?sec=0&pid=632]]'); | |
911 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3052P | http://www.dlink.com/products/?sec=0&pid=633]]'); | |
912 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3010FA | http://www.dlink.com/products/?sec=0&pid=423]]'); | |
913 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3010GA | http://www.dlink.com/products/?sec=0&pid=424]]'); | |
914 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3010PA | http://www.dlink.com/products/?sec=0&pid=469]]'); | |
915 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3226L | http://www.dlink.com/products/?sec=0&pid=298]]'); | |
916 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3526 | http://www.dlink.com/products/?sec=0&pid=330]]'); | |
917 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-3550 | http://www.dlink.com/products/?sec=0&pid=331]]'); | |
918 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-1216T | http://www.dlink.com/products/?sec=0&pid=324]]'); | |
919 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-1224T | http://www.dlink.com/products/?sec=0&pid=329]]'); | |
920 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-1248T | http://www.dlink.com/products/?sec=0&pid=367]]'); | |
921 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-1316 | http://www.dlink.com/products/?sec=0&pid=353]]'); | |
922 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-1228 | http://www.dlink.com/products/?sec=0&pid=540]]'); | |
923 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-1228P | http://www.dlink.com/products/?sec=0&pid=541]]'); | |
924 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-1252 | http://www.dlink.com/products/?sec=0&pid=555]]'); | |
925 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-1016D | http://www.dlink.com/products/?sec=0&pid=337]]'); | |
926 | $new_words[] = array (12 => '[[D-Link%GPASS%DGS-1024D | http://www.dlink.com/products/?sec=0&pid=338]]'); | |
927 | $new_words[] = array (12 => '[[D-Link%GPASS%DSS-24+ | http://www.dlink.com/products/?sec=0&pid=73]]'); | |
928 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-1024D | http://www.dlink.com/products/?sec=0&pid=75]]'); | |
929 | $new_words[] = array (12 => '[[D-Link%GPASS%DES-1026G | http://www.dlink.com/products/?sec=0&pid=76]]'); | |
930 | $new_words[] = array (21 => '[[D-Link%GPASS%DKVM-16 | http://www.dlink.com/products/?sec=0&pid=228]]'); | |
931 | $new_words[] = array (21 => '[[D-Link%GPASS%DKVM-8E | http://www.dlink.com/products/?sec=0&pid=161]]'); | |
932 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC702 | http://www.raisecom-international.com/p/RC702.htm]]'); | |
933 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC702-GE | http://www.raisecom-international.com/p/RC702GE.htm]]'); | |
934 | $new_words[] = array (22 => '[[Raisecom%GPASS%ISCOM4300 | http://www.raisecom-international.com/p/ISCOM4300.htm]]'); | |
935 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC953-FE4E1 | http://www.raisecom-international.com/p/RC953FE4E1.htm]]'); | |
936 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC953-FX4E1 | http://www.raisecom-international.com/p/RC953FE4E1.htm]]'); | |
937 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC953-FE8E1 | http://www.raisecom-international.com/p/RC953FE4E1.htm]]'); | |
938 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC953-FX8E1 | http://www.raisecom-international.com/p/RC953FE4E1.htm]]'); | |
939 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC953-8FE16E1 | http://www.raisecom-international.com/p/RC9538FE16E1.htm]]'); | |
940 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC953E-3FE16E1 | http://www.raisecom-international.com/p/RC953E-3FE16E1.htm]]'); | |
941 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC953-GESTM1 | http://www.raisecom-international.com/p/RC957.htm]]'); | |
942 | $new_words[] = array (22 => '[[Raisecom%GPASS%OPCOM3100-155 | http://www.raisecom-international.com/p/OPCOM3100.htm]]'); | |
943 | $new_words[] = array (22 => '[[Raisecom%GPASS%OPCOM3101-155 | http://www.raisecom-international.com/p/OPCOM3101.htm]]'); | |
944 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC831-120 | http://www.raisecom-international.com/p/RC831.htm]]'); | |
945 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC831-120-BL | http://www.raisecom-international.com/p/RC831.htm]]'); | |
946 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC831-240 | http://www.raisecom-international.com/p/RC831.htm]]'); | |
947 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC831-240E | http://www.raisecom-international.com/p/RC831.htm]]'); | |
948 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2801-480GE-BL | http://www.raisecom-international.com/p/RCMS280X.htm]]'); | |
949 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2801-120FE | http://www.raisecom-international.com/p/RCMS2801.htm]]'); | |
950 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2801-120FE-BL | http://www.raisecom-international.com/p/RCMS2801.htm]]'); | |
951 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2801-240FE | http://www.raisecom-international.com/p/RCMS2801.htm]]'); | |
952 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2801-240FE-BL | http://www.raisecom-international.com/p/RCMS2801.htm]]'); | |
953 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2801-240EFE | http://www.raisecom-international.com/p/RCMS2801.htm]]'); | |
954 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2811-120FE | http://www.raisecom-international.com/p/RCMS2811.htm]]'); | |
955 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2811-240FE | http://www.raisecom-international.com/p/RCMS2811.htm]]'); | |
956 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2811-240FE-BL | http://www.raisecom-international.com/p/RCMS2811.htm]]'); | |
957 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2811-480FE | http://www.raisecom-international.com/p/RCMS2811.htm]]'); | |
958 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2811-480FE-BL | http://www.raisecom-international.com/p/RCMS2811.htm]]'); | |
959 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2811-240EFE | http://www.raisecom-international.com/p/RCMS2811-240EFE.htm]]'); | |
960 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2104-120 | http://www.raisecom-international.com/p/RCMS2000120.htm]]'); | |
961 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2304-120 | http://www.raisecom-international.com/p/RCMS2000120.htm]]'); | |
962 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2504-120 | http://www.raisecom-international.com/p/RCMS2000120.htm]]'); | |
963 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2104-240 | http://www.raisecom-international.com/p/RCMS2000120.htm]]'); | |
964 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2304-240 | http://www.raisecom-international.com/p/RCMS2000120.htm]]'); | |
965 | $new_words[] = array (22 => '[[Raisecom%GPASS%RCMS2504-240 | http://www.raisecom-international.com/p/RCMS2000120.htm]]'); | |
966 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC801-120B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
967 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC801-240B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
968 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC801-480B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
969 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC803-120B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
970 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC803-240B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
971 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC803-480B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
972 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC805-120B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
973 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC805-240B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
974 | $new_words[] = array (22 => '[[Raisecom%GPASS%RC805-480B | http://www.raisecom-international.com/p/RC800120.htm]]'); | |
a0a199c7 DO |
975 | $new_words[] = array (2 => 'async serial (DB-9)'); // 681 |
976 | $new_words[] = array (2 => 'async serial (DB-25)'); // 682 | |
f0b540a3 DO |
977 | $new_words[] = array (12 => '[[Force10%GPASS%S2410P | http://www.force10networks.com/products/s2410.asp]]'); |
978 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X150-24t | http://www.extremenetworks.com/products/summit-x150.aspx]]'); | |
979 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X150-48t | http://www.extremenetworks.com/products/summit-x150.aspx]]'); | |
980 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X150-24p | http://www.extremenetworks.com/products/summit-x150.aspx]]'); | |
981 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X250e-24t | http://www.extremenetworks.com/products/summit-x250e.aspx]]'); | |
982 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X250e-48t | http://www.extremenetworks.com/products/summit-x250e.aspx]]'); | |
983 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X250e-24p | http://www.extremenetworks.com/products/summit-x250e.aspx]]'); | |
984 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X250e-48p | http://www.extremenetworks.com/products/summit-x250e.aspx]]'); | |
985 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X250e-24x | http://www.extremenetworks.com/products/summit-x250e.aspx]]'); | |
986 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X450-24t | http://www.extremenetworks.com/products/summit-x450.aspx]]'); | |
987 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X450-24x | http://www.extremenetworks.com/products/summit-x450.aspx]]'); | |
988 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X450a-24t | http://www.extremenetworks.com/products/summit-x450a.aspx]]'); | |
989 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X450a-48t | http://www.extremenetworks.com/products/summit-x450a.aspx]]'); | |
990 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X450a-24x | http://www.extremenetworks.com/products/summit-x450a.aspx]]'); | |
991 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X450e-24p | http://www.extremenetworks.com/products/summit-x450e.aspx]]'); | |
992 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit X450e-48p | http://www.extremenetworks.com/products/summit-x450e.aspx]]'); | |
993 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit 200-24fx | http://www.extremenetworks.com/products/summit-200.aspx]]'); | |
994 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit 200-24 | http://www.extremenetworks.com/products/summit-200.aspx]]'); | |
995 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit 200-48 | http://www.extremenetworks.com/products/summit-200.aspx]]'); | |
996 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit 300-24 | http://www.extremenetworks.com/products/summit-300.aspx]]'); | |
997 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit 300-48 | http://www.extremenetworks.com/products/summit-300.aspx]]'); | |
998 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit 400-24p | http://www.extremenetworks.com/products/summit-400-24p.aspx]]'); | |
999 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit 400-24t | http://www.extremenetworks.com/products/summit-400-24t.aspx]]'); | |
1000 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit 400-48t | http://www.extremenetworks.com/products/summit-400-48t.aspx]]'); | |
1001 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Summit48si | http://www.extremenetworks.com/products/summit-48si.aspx]]'); | |
1002 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Alpine 3804 | http://www.extremenetworks.com/products/Alpine-3800.aspx]]'); | |
1003 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%Alpine 3808 | http://www.extremenetworks.com/products/Alpine-3800.aspx]]'); | |
1004 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%BlackDiamond 6808 | http://www.extremenetworks.com/products/blackdiamond-6800.aspx]]'); | |
1005 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%BlackDiamond 8806 | http://www.extremenetworks.com/products/blackdiamond-8800.aspx]]'); | |
1006 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%BlackDiamond 8810 | http://www.extremenetworks.com/products/blackdiamond-8800.aspx]]'); | |
1007 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%BlackDiamond 10808 | http://www.extremenetworks.com/products/blackdiamond-10808.aspx]]'); | |
1008 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%BlackDiamond 12802R | http://www.extremenetworks.com/products/blackdiamond-12800r.aspx]]'); | |
1009 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%BlackDiamond 12804R | http://www.extremenetworks.com/products/blackdiamond-12800r.aspx]]'); | |
1010 | $new_words[] = array (12 => '[[Extreme Networks%GPASS%BlackDiamond 12804C | http://www.extremenetworks.com/products/blackdiamond-12804c.aspx]]'); | |
1011 | $new_words[] = array (17 => '[[Cisco%GPASS%ASR 1002 | http://cisco.com/en/US/products/ps9436/index.html]]'); | |
1012 | $new_words[] = array (17 => '[[Cisco%GPASS%ASR 1004 | http://cisco.com/en/US/products/ps9437/index.html]]'); | |
1013 | $new_words[] = array (17 => '[[Cisco%GPASS%ASR 1006 | http://cisco.com/en/US/products/ps9438/index.html]]'); | |
1014 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 3.3 | http://openbsd.org/33.html]]'); | |
1015 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 3.4 | http://openbsd.org/34.html]]'); | |
1016 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 3.5 | http://openbsd.org/35.html]]'); | |
1017 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 3.6 | http://openbsd.org/36.html]]'); | |
1018 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 3.7 | http://openbsd.org/37.html]]'); | |
1019 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 3.8 | http://openbsd.org/38.html]]'); | |
1020 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 3.9 | http://openbsd.org/39.html]]'); | |
1021 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 4.0 | http://openbsd.org/40.html]]'); | |
1022 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 4.1 | http://openbsd.org/41.html]]'); | |
1023 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 4.2 | http://openbsd.org/42.html]]'); | |
1024 | $new_words[] = array (13 => '[[BSD%GSKIP%OpenBSD 4.3 | http://openbsd.org/43.html]]'); | |
1025 | $new_words[] = array (12 => '[[Cisco Catalyst 4900M | http://www.cisco.com/en/US/products/ps9310/index.html]]'); | |
1026 | $new_words[] = array (13 => '[[BSD%GSKIP%FreeBSD 7.x | http://www.freebsd.org/releases/7.0R/announce.html]]'); | |
1027 | $new_words[] = array (13 => '[[BSD%GSKIP%NetBSD 2.0 | http://netbsd.org/releases/formal-2.0/]]'); | |
1028 | $new_words[] = array (13 => '[[BSD%GSKIP%NetBSD 2.1 | http://netbsd.org/releases/formal-2.0/NetBSD-2.1.html]]'); | |
1029 | $new_words[] = array (13 => '[[BSD%GSKIP%NetBSD 3.0 | http://netbsd.org/releases/formal-3/]]'); | |
1030 | $new_words[] = array (13 => '[[BSD%GSKIP%NetBSD 3.1 | http://netbsd.org/releases/formal-3/NetBSD-3.1.html]]'); | |
1031 | $new_words[] = array (13 => '[[BSD%GSKIP%NetBSD 4.0 | http://netbsd.org/releases/formal-4/NetBSD-4.0.html]]'); | |
1032 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2016 | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16470B]]'); | |
1033 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2024 | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16471B]]'); | |
1034 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2126-G | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16472]]'); | |
1035 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2816 | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16478]]'); | |
1036 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2824 | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16479]]'); | |
1037 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2226 Plus | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16475CS]]'); | |
1038 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2426-PWR Plus | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16491]]'); | |
1039 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2250 Plus | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16476CS]]'); | |
1040 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2916-SFP Plus | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CBLSG16]]'); | |
1041 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2924-SFP Plus | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CBLSG24]]'); | |
1042 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2924-PWR Plus | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CBLSG24PWR]]'); | |
1043 | $new_words[] = array (12 => '[[3Com%GPASS%Baseline 2948-SFP Plus | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CBLSG48]]'); | |
1044 | $new_words[] = array (12 => '[[3Com%GPASS%3870 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17450-91]]'); | |
1045 | $new_words[] = array (12 => '[[3Com%GPASS%3870 48-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17451-91]]'); | |
1046 | $new_words[] = array (12 => '[[3Com%GPASS%4200 26-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3C17300A&pathtype=purchase]]'); | |
1047 | $new_words[] = array (12 => '[[3Com%GPASS%4200 28-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3C17304A&pathtype=purchase]]'); | |
1048 | $new_words[] = array (12 => '[[3Com%GPASS%4200 50-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3C17302A&pathtype=purchase]]'); | |
1049 | $new_words[] = array (12 => '[[3Com%GPASS%4200G 12-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3CR17660-91&pathtype=purchase]]'); | |
1050 | $new_words[] = array (12 => '[[3Com%GPASS%4200G 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3CR17661-91&pathtype=purchase]]'); | |
1051 | $new_words[] = array (12 => '[[3Com%GPASS%4200G PWR 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3CR17671-91&pathtype=purchase]]'); | |
1052 | $new_words[] = array (12 => '[[3Com%GPASS%4200G 48-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3CR17662-91&pathtype=purchase]]'); | |
1053 | $new_words[] = array (12 => '[[3Com%GPASS%4210 26-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17333-91]]'); | |
1054 | $new_words[] = array (12 => '[[3Com%GPASS%4210 52-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17334-91]]'); | |
1055 | $new_words[] = array (12 => '[[3Com%GPASS%4210 26-port PWR | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17343-91]]'); | |
1056 | $new_words[] = array (12 => '[[3Com%GPASS%SS3 4400 48-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C17204-US]]'); | |
1057 | $new_words[] = array (12 => '[[3Com%GPASS%SS3 4400 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C17203-US]]'); | |
1058 | $new_words[] = array (12 => '[[3Com%GPASS%SS3 4400 PWR | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C17205-US]]'); | |
1059 | $new_words[] = array (12 => '[[3Com%GPASS%SS3 4400 SE 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C17206-US]]'); | |
1060 | $new_words[] = array (12 => '[[3Com%GPASS%4500 26-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17561-91]]'); | |
1061 | $new_words[] = array (12 => '[[3Com%GPASS%4500 50-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17562-91]]'); | |
1062 | $new_words[] = array (12 => '[[3Com%GPASS%4500 PWR 26-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17571-91]]'); | |
1063 | $new_words[] = array (12 => '[[3Com%GPASS%4500 PWR 50-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17572-91]]'); | |
1064 | $new_words[] = array (12 => '[[3Com%GPASS%4500G 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17761-91]]'); | |
1065 | $new_words[] = array (12 => '[[3Com%GPASS%4500G 48-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17762-91]]'); | |
1066 | $new_words[] = array (12 => '[[3Com%GPASS%4500G PWR 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17771-91]]'); | |
1067 | $new_words[] = array (12 => '[[3Com%GPASS%4500G PWR 48-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17772-91]]'); | |
1068 | $new_words[] = array (12 => '[[3Com%GPASS%5500-EI 28-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17161-91]]'); | |
1069 | $new_words[] = array (12 => '[[3Com%GPASS%5500-EI 52-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17162-91]]'); | |
1070 | $new_words[] = array (12 => '[[3Com%GPASS%5500-EI 28-port PWR | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17171-91]]'); | |
1071 | $new_words[] = array (12 => '[[3Com%GPASS%5500-EI 52-port PWR | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17172-91]]'); | |
1072 | $new_words[] = array (12 => '[[3Com%GPASS%5500-EI 28-port FX | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17181-91]]'); | |
1073 | $new_words[] = array (12 => '[[3Com%GPASS%5500G-EI 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17250-91]]'); | |
1074 | $new_words[] = array (12 => '[[3Com%GPASS%5500G-EI 48-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17251-91]]'); | |
1075 | $new_words[] = array (12 => '[[3Com%GPASS%5500G-EI PWR 24-port | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17252-91]]'); | |
1076 | $new_words[] = array (12 => '[[3Com%GPASS%5500G-EI 48-port PWR | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17253-91]]'); | |
1077 | $new_words[] = array (12 => '[[3Com%GPASS%5500G-EI 24-port SFP | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3CR17258-91]]'); | |
1078 | $new_words[] = array (12 => '[[3Com%GPASS%7754 | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16894]]'); | |
1079 | $new_words[] = array (12 => '[[3Com%GPASS%7757 | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16895]]'); | |
1080 | $new_words[] = array (12 => '[[3Com%GPASS%7758 | http://www.3com.com/products/en_US/detail.jsp?tab=features&pathtype=purchase&sku=3C16896]]'); | |
1081 | $new_words[] = array (12 => '[[3Com%GPASS%8807 | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3C17502A&pathtype=purchase]]'); | |
1082 | $new_words[] = array (12 => '[[3Com%GPASS%8810 | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3C17501A&pathtype=purchase]]'); | |
1083 | $new_words[] = array (12 => '[[3Com%GPASS%8814 | http://www.3com.com/products/en_US/detail.jsp?tab=features&sku=3C17500A&pathtype=purchase]]'); | |
b1bce3b6 | 1084 | $new_words[] = array (13 => 'Linux%GSKIP%RHF9'); |
d8515eff DO |
1085 | $query[] = "insert into PortCompat (type1, type2) values (29, 681)"; |
1086 | $query[] = "insert into PortCompat (type1, type2) values (29, 682)"; | |
1087 | $query[] = "insert into PortCompat (type1, type2) values (681, 29)"; | |
1088 | $query[] = "insert into PortCompat (type1, type2) values (681, 681)"; | |
1089 | $query[] = "insert into PortCompat (type1, type2) values (681, 682)"; | |
1090 | $query[] = "insert into PortCompat (type1, type2) values (682, 29)"; | |
1091 | $query[] = "insert into PortCompat (type1, type2) values (682, 681)"; | |
1092 | $query[] = "insert into PortCompat (type1, type2) values (682, 682)"; | |
71f42cdb DO |
1093 | $query[] = |
1094 | " | |
f9bc186f DO |
1095 | CREATE TABLE `TagStorage` ( |
1096 | `target_realm` enum('object','ipv4net','rack','ipv4vs','ipv4rspool') NOT NULL default 'object', | |
1097 | `target_id` int(10) unsigned NOT NULL, | |
71f42cdb | 1098 | `tag_id` int(10) unsigned default NULL, |
f9bc186f DO |
1099 | UNIQUE KEY `entity_tag` (`target_realm`,`target_id`,`tag_id`), |
1100 | KEY `target_id` (`target_id`) | |
71f42cdb DO |
1101 | ) TYPE=MyISAM; |
1102 | "; | |
1103 | $query[] = | |
1104 | " | |
1105 | CREATE TABLE `TagTree` ( | |
1106 | `id` int(10) unsigned NOT NULL auto_increment, | |
1107 | `parent_id` int(10) unsigned default NULL, | |
1108 | `tag` char(255) default NULL, | |
1109 | PRIMARY KEY (`id`), | |
1110 | UNIQUE KEY `tag` (`tag`) | |
1111 | ) TYPE=MyISAM; | |
1112 | "; | |
a0a199c7 DO |
1113 | $old_words[29] = 'async serial (RJ-45)'; |
1114 | ||
f0b540a3 DO |
1115 | $old_words[43] = 'IBM xSeries%GPASS%305'; |
1116 | $old_words[44] = 'IBM xSeries%GPASS%306'; | |
1117 | $old_words[45] = 'IBM xSeries%GPASS%306m'; | |
1118 | $old_words[46] = 'IBM xSeries%GPASS%326m'; | |
1119 | $old_words[47] = 'IBM xSeries%GPASS%330'; | |
1120 | $old_words[48] = 'IBM xSeries%GPASS%335'; | |
1121 | $old_words[54] = 'IBM xSeries%GPASS%346'; | |
1122 | $old_words[59] = 'IBM xSeries%GPASS%326'; | |
1123 | $old_words[68] = 'IBM xSeries%GPASS%3250'; | |
1124 | $old_words[69] = 'IBM xSeries%GPASS%3455'; | |
1125 | $old_words[70] = 'IBM xSeries%GPASS%3550'; | |
1126 | $old_words[71] = 'IBM xSeries%GPASS%3650'; | |
1127 | $old_words[72] = 'IBM xSeries%GPASS%3655'; | |
1128 | $old_words[73] = 'IBM xSeries%GPASS%3650 T'; | |
1129 | $old_words[74] = 'IBM xSeries%GPASS%3755'; | |
1130 | $old_words[75] = 'IBM xSeries%GPASS%3850'; | |
9d26ec21 | 1131 | |
f0b540a3 DO |
1132 | $old_words[92] = 'IBM pSeries%GPASS%185'; |
1133 | $old_words[93] = 'IBM pSeries%GPASS%505'; | |
1134 | $old_words[94] = 'IBM pSeries%GPASS%505Q'; | |
1135 | $old_words[95] = 'IBM pSeries%GPASS%510'; | |
1136 | $old_words[96] = 'IBM pSeries%GPASS%510Q'; | |
1137 | $old_words[97] = 'IBM pSeries%GPASS%520'; | |
1138 | $old_words[98] = 'IBM pSeries%GPASS%520Q'; | |
1139 | $old_words[99] = 'IBM pSeries%GPASS%550'; | |
1140 | $old_words[100] = 'IBM pSeries%GPASS%550Q'; | |
9d26ec21 | 1141 | |
f0b540a3 DO |
1142 | $old_words[212] = 'Linux%GSKIP%RHFC1'; |
1143 | $old_words[213] = 'Linux%GSKIP%RHFC2'; | |
1144 | $old_words[214] = 'Linux%GSKIP%RHFC3'; | |
1145 | $old_words[215] = 'Linux%GSKIP%RHFC4'; | |
1146 | $old_words[216] = 'Linux%GSKIP%RHFC5'; | |
1147 | $old_words[217] = 'Linux%GSKIP%RHFC6'; | |
1148 | $old_words[232] = 'Linux%GSKIP%RHF7'; | |
1149 | $old_words[242] = 'Linux%GSKIP%RHF8'; | |
1150 | $old_words[225] = 'Linux%GSKIP%RHEL1'; | |
1151 | $old_words[226] = 'Linux%GSKIP%RHEL2'; | |
1152 | $old_words[227] = 'Linux%GSKIP%RHEL3'; | |
1153 | $old_words[228] = 'Linux%GSKIP%RHEL4'; | |
1154 | $old_words[436] = 'Linux%GSKIP%RHEL5'; | |
9d26ec21 | 1155 | |
f0b540a3 DO |
1156 | $old_words[229] = 'Linux%GSKIP%ALTLinux Master 2.0'; |
1157 | $old_words[230] = 'Linux%GSKIP%ALTLinux Master 2.2'; | |
1158 | $old_words[231] = 'Linux%GSKIP%ALTLinux Master 2.4'; | |
1159 | $old_words[243] = 'Linux%GSKIP%ALTLinux Master 4.0'; | |
1160 | $old_words[231] = 'Linux%GSKIP%ALTLinux Master 2.4'; | |
1161 | $old_words[422] = 'Linux%GSKIP%ALTLinux Server 4.0'; | |
1162 | $old_words[423] = 'Linux%GSKIP%ALTLinux Sisyphus'; | |
9d26ec21 | 1163 | |
f0b540a3 DO |
1164 | $old_words[233] = 'Linux%GSKIP%SLES10'; |
1165 | $old_words[424] = 'Linux%GSKIP%openSUSE 10.0'; | |
1166 | $old_words[425] = 'Linux%GSKIP%openSUSE 10.1'; | |
1167 | $old_words[426] = 'Linux%GSKIP%openSUSE 10.2'; | |
1168 | $old_words[427] = 'Linux%GSKIP%openSUSE 10.3'; | |
9d26ec21 | 1169 | |
f0b540a3 DO |
1170 | $old_words[428] = 'Linux%GSKIP%Ubuntu 4.10'; |
1171 | $old_words[429] = 'Linux%GSKIP%Ubuntu 5.04'; | |
1172 | $old_words[430] = 'Linux%GSKIP%Ubuntu 5.10'; | |
1173 | $old_words[431] = 'Linux%GSKIP%Ubuntu 6.06 LTS'; | |
1174 | $old_words[432] = 'Linux%GSKIP%Ubuntu 6.10'; | |
1175 | $old_words[433] = 'Linux%GSKIP%Ubuntu 7.04'; | |
1176 | $old_words[434] = 'Linux%GSKIP%Ubuntu 7.10'; | |
1177 | $old_words[435] = 'Linux%GSKIP%Ubuntu 8.04 LTS'; | |
9d26ec21 | 1178 | |
f0b540a3 DO |
1179 | $old_words[418] = 'Linux%GSKIP%Debian 2.0 (hamm)'; |
1180 | $old_words[419] = 'Linux%GSKIP%Debian 2.1 (slink)'; | |
1181 | $old_words[420] = 'Linux%GSKIP%Debian 2.2 (potato)'; | |
1182 | $old_words[234] = 'Linux%GSKIP%Debian 3.0 (woody)'; | |
1183 | $old_words[235] = 'Linux%GSKIP%Debian 3.1 (sarge)'; | |
1184 | $old_words[421] = 'Linux%GSKIP%Debian 4.0 (etch)'; | |
9d26ec21 | 1185 | |
f0b540a3 DO |
1186 | $old_words[236] = 'BSD%GSKIP%FreeBSD 1.x'; |
1187 | $old_words[237] = 'BSD%GSKIP%FreeBSD 2.x'; | |
1188 | $old_words[238] = 'BSD%GSKIP%FreeBSD 3.x'; | |
1189 | $old_words[239] = 'BSD%GSKIP%FreeBSD 4.x'; | |
1190 | $old_words[240] = 'BSD%GSKIP%FreeBSD 5.x'; | |
1191 | $old_words[241] = 'BSD%GSKIP%FreeBSD 6.x'; | |
1192 | $old_words[732] = '[[BSD%GSKIP%FreeBSD 7.0 | http://www.freebsd.org/releases/7.0R/announce.html]]'; | |
9d26ec21 | 1193 | |
f0b540a3 DO |
1194 | $old_words[441] = 'Linux%GSKIP%CentOS-2'; |
1195 | $old_words[442] = 'Linux%GSKIP%CentOS-3'; | |
1196 | $old_words[443] = 'Linux%GSKIP%CentOS-4'; | |
1197 | $old_words[444] = 'Linux%GSKIP%CentOS-5'; | |
9d26ec21 | 1198 | |
f0b540a3 DO |
1199 | $old_words[218] = 'BSD%GSKIP%Solaris 8'; |
1200 | $old_words[219] = 'BSD%GSKIP%Solaris 9'; | |
1201 | $old_words[220] = 'BSD%GSKIP%Solaris 10'; | |
9d26ec21 | 1202 | |
f0b540a3 DO |
1203 | $old_words[49] = 'Sun%GPASS%Ultra 10'; |
1204 | $old_words[50] = 'Sun%GPASS%Enterprise 420R'; | |
1205 | $old_words[51] = '[[Sun%GPASS%Fire X2100 | http://www.sun.com/servers/entry/x2100/]]'; | |
1206 | $old_words[52] = '[[Sun%GPASS%Fire E4900 | http://www.sun.com/servers/midrange/sunfire_e4900/index.xml]]'; | |
1207 | $old_words[53] = 'Sun%GPASS%Netra X1'; | |
1208 | $old_words[57] = 'Sun%GPASS%Fire V210'; | |
1209 | $old_words[58] = 'Sun%GPASS%Fire V240'; | |
1210 | $old_words[60] = 'Sun%GPASS%Netra t1 105'; | |
1211 | $old_words[61] = 'Sun%GPASS%Enterprise 4500'; | |
1212 | $old_words[64] = 'Sun%GPASS%Ultra 5'; | |
1213 | $old_words[76] = '[[Sun%GPASS%Fire X4600 | http://www.sun.com/servers/x64/x4600/]]'; | |
1214 | $old_words[77] = '[[Sun%GPASS%Fire X4500 | http://www.sun.com/servers/x64/x4500/]]'; | |
1215 | $old_words[78] = '[[Sun%GPASS%Fire X4200 | http://www.sun.com/servers/entry/x4200/]]'; | |
1216 | $old_words[79] = '[[Sun%GPASS%Fire X4100 | http://www.sun.com/servers/entry/x4100/]]'; | |
1217 | $old_words[80] = '[[Sun%GPASS%Fire X2100 M2 | http://www.sun.com/servers/entry/x2100/]]'; | |
1218 | $old_words[81] = '[[Sun%GPASS%Fire X2200 M2 | http://www.sun.com/servers/x64/x2200/]]'; | |
1219 | $old_words[82] = 'Sun%GPASS%Fire V40z'; | |
1220 | $old_words[83] = 'Sun%GPASS%Fire V125'; | |
1221 | $old_words[84] = '[[Sun%GPASS%Fire V215 | http://www.sun.com/servers/entry/v215/]]'; | |
1222 | $old_words[85] = '[[Sun%GPASS%Fire V245 | http://www.sun.com/servers/entry/v245/]]'; | |
1223 | $old_words[86] = '[[Sun%GPASS%Fire V445 | http://www.sun.com/servers/entry/v445/]]'; | |
1224 | $old_words[87] = 'Sun%GPASS%Fire V440'; | |
1225 | $old_words[88] = '[[Sun%GPASS%Fire V490 | http://www.sun.com/servers/midrange/v490/]]'; | |
1226 | $old_words[89] = '[[Sun%GPASS%Fire V890 | http://www.sun.com/servers/midrange/v890/]]'; | |
1227 | $old_words[90] = '[[Sun%GPASS%Fire E2900 | http://www.sun.com/servers/midrange/sunfire_e2900/index.xml]]'; | |
1228 | $old_words[91] = 'Sun%GPASS%Fire V1280'; | |
9d26ec21 | 1229 | |
f0b540a3 DO |
1230 | $old_words[55] = 'Dell PowerEdge%GPASS%1650'; |
1231 | $old_words[56] = 'Dell PowerEdge%GPASS%2850'; | |
1232 | $old_words[62] = 'Dell PowerEdge%GPASS%1950'; | |
1233 | $old_words[63] = 'Dell PowerEdge%GPASS%1550'; | |
1234 | $old_words[65] = 'Dell PowerEdge%GPASS%2950'; | |
1235 | $old_words[66] = 'Dell PowerEdge%GPASS%650'; | |
1236 | $old_words[67] = 'Dell PowerEdge%GPASS%4600'; | |
1237 | $old_words[355] = 'Dell PowerEdge%GPASS%6850'; | |
1238 | $old_words[356] = 'Dell PowerEdge%GPASS%6950'; | |
1239 | $old_words[357] = 'Dell PowerEdge%GPASS%R900'; | |
1240 | $old_words[358] = 'Dell PowerEdge%GPASS%4400'; | |
1241 | $old_words[359] = 'Dell PowerEdge%GPASS%2650'; | |
1242 | $old_words[360] = 'Dell PowerEdge%GPASS%2550'; | |
1243 | $old_words[361] = 'Dell PowerEdge%GPASS%750'; | |
1244 | $old_words[362] = 'Dell PowerEdge%GPASS%2450'; | |
1245 | $old_words[363] = 'Dell PowerEdge%GPASS%850'; | |
1246 | $old_words[364] = 'Dell PowerEdge%GPASS%1850'; | |
1247 | $old_words[365] = 'Dell PowerEdge%GPASS%860'; | |
1248 | $old_words[366] = 'Dell PowerEdge%GPASS%2900'; | |
1249 | $old_words[367] = 'Dell PowerEdge%GPASS%2970'; | |
1250 | $old_words[368] = 'Dell PowerEdge%GPASS%SC1435'; | |
df4c3309 | 1251 | |
f0b540a3 DO |
1252 | $old_words[101] = '[[HP ProLiant%GPASS%DL140 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-1842838.html]]'; |
1253 | $old_words[102] = '[[HP ProLiant%GPASS%DL145 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-3219755.html]]'; | |
1254 | $old_words[103] = '[[HP ProLiant%GPASS%DL320 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3201178.html]]'; | |
1255 | $old_words[104] = '[[HP ProLiant%GPASS%DL360 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-1121486.html]]'; | |
1256 | $old_words[105] = '[[HP ProLiant%GPASS%DL380 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-1121516.html]]'; | |
1257 | $old_words[106] = '[[HP ProLiant%GPASS%DL385 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3219233.html]]'; | |
1258 | $old_words[107] = '[[HP ProLiant%GPASS%DL580 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328422-3454575.html]]'; | |
1259 | $old_words[108] = '[[HP ProLiant%GPASS%DL585 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328422-3219717.html]]'; | |
1260 | $old_words[109] = '[[HP ProLiant%GPASS%ML110 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-3328424-3577708.html]]'; | |
1261 | $old_words[110] = '[[HP ProLiant%GPASS%ML150 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-3328424-3580609.html]]'; | |
1262 | $old_words[111] = '[[HP ProLiant%GPASS%ML310 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-241477-3580655.html]]'; | |
1263 | $old_words[112] = '[[HP ProLiant%GPASS%ML350 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-241477-1121586.html]]'; | |
1264 | $old_words[113] = '[[HP ProLiant%GPASS%ML370 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-241477-1121474.html]]'; | |
1265 | $old_words[114] = '[[HP ProLiant%GPASS%ML570 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-3328425-1842779.html]]'; | |
1266 | $old_words[534] = '[[HP ProLiant%GPASS%DL160 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-3580694.html]]'; | |
1267 | $old_words[535] = '[[HP ProLiant%GPASS%DL180 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-3580698.html]]'; | |
1268 | $old_words[536] = '[[HP ProLiant%GPASS%DL185 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-3328421-3579900.html]]'; | |
1269 | $old_words[537] = '[[HP ProLiant%GPASS%DL365 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3186080.html]]'; | |
1270 | $old_words[538] = '[[HP ProLiant%GPASS%DL320s | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3232017.html]]'; | |
1271 | $old_words[539] = '[[HP ProLiant%GPASS%DL320p | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-3328412-241644-241475-3579703.html]]'; | |
1272 | $old_words[540] = '[[HP ProLiant%GPASS%ML115 | http://h10010.www1.hp.com/wwpc/us/en/en/WF05a/15351-15351-241434-241646-3328424-3330535.html]]'; | |
a0a199c7 | 1273 | |
86fc1740 DO |
1274 | foreach ($new_words as $dict_key => $tmp) |
1275 | foreach ($tmp as $chapter_no => $dict_value) | |
1276 | $query[] = 'INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) ' . | |
1277 | "VALUES (${chapter_no}, ${dict_key}, '${dict_value}')"; | |
9d26ec21 DO |
1278 | foreach ($old_words as $dict_key => $dict_value) |
1279 | $query[] = "update Dictionary set dict_value = '${dict_value}' where dict_key = ${dict_key} limit 1"; | |
3526c7c6 | 1280 | $query[] = "alter table Rack add unique name_in_row (row_id, name)"; |
dc327897 | 1281 | $query[] = "delete from UserPermission where page = 'help'"; |
5cffef42 | 1282 | $query[] = "alter table Config change column varvalue varvalue char(255) NOT NULL"; |
194e3748 DO |
1283 | $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('SHOW_EXPLICIT_TAGS','yes','string','no','no','Show explicit tags')"; |
1284 | $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('SHOW_IMPLICIT_TAGS','yes','string','no','no','Show implicit tags')"; | |
1285 | $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('SHOW_AUTOMATIC_TAGS','no','string','no','no','Show automatic tags')"; | |
eeb4a5d8 DO |
1286 | // Decommission the Protocols dictionary chapter. |
1287 | $query[] = "alter table PortForwarding add column proto_new enum('TCP','UDP') not null default 'TCP' after proto"; | |
1288 | $query[] = "update PortForwarding set proto_new = 'TCP' where proto = 336"; | |
1289 | $query[] = "update PortForwarding set proto_new = 'UDP' where proto = 337"; | |
1290 | $query[] = "alter table PortForwarding drop primary key"; | |
1291 | $query[] = "alter table PortForwarding drop column proto"; | |
1292 | $query[] = "alter table PortForwarding change column proto_new proto enum('TCP','UDP') not null default 'TCP'"; | |
1293 | $query[] = "alter table PortForwarding add primary key (`object_id`,`proto`,`localip`,`localport`,`remoteip`,`remoteport`)"; | |
1294 | $query[] = "delete from Dictionary where chapter_no = 20"; | |
1295 | $query[] = "delete from Chapter where chapter_no = 20"; | |
68a3ab9c | 1296 | $query[] = "update Config set varvalue = '0.15.0' where varname = 'DB_VERSION'"; |
86fc1740 | 1297 | break; // -------------------------------------------- |
3861eef6 DO |
1298 | case '0.15.1': |
1299 | $query[] = "INSERT INTO `Config` VALUES ('IPV4_AUTO_RELEASE','1','uint','no','no','Auto-release IPv4 addresses on allocation')"; | |
d824020c | 1300 | $query[] = "update Config set varvalue = '0.15.1' where varname = 'DB_VERSION'"; |
3861eef6 | 1301 | break; |
fe782367 | 1302 | case '0.16.0': |
04402f63 DO |
1303 | if (!defined ('MB_CASE_LOWER')) |
1304 | { | |
1305 | die ('<b>Cannot upgrade due to multibyte extension not present. See the README for details.</b>'); | |
1306 | } | |
fe782367 DO |
1307 | $query[] = 'alter table TagStorage modify column tag_id int(10) unsigned not null;'; |
1308 | $query[] = "alter table TagStorage modify column target_realm enum('object','ipv4net','rack','ipv4vs','ipv4rspool','user');"; | |
fe782367 DO |
1309 | $query[] = "create table Script (script_name char(64) not null primary key, script_text text)"; |
1310 | // Do the same getUserPermissions() does, but without the function. | |
1311 | // We need to generate more specific rules first, otherwise they will | |
1312 | // never work. | |
1313 | $tq = | |
1314 | "select UserPermission.user_id, user_name, page, tab, access from " . | |
1315 | "UserPermission natural left join UserAccount where (user_name is not null) or " . | |
5f4027b8 | 1316 | "(user_name is null and UserPermission.user_id = 0) order by user_id desc, page desc, tab desc"; |
fe782367 | 1317 | $tr = $dbxlink->query ($tq); |
d1e26db3 | 1318 | $code = "allow {\$userid_1}\ndeny true\n"; |
5f4027b8 DO |
1319 | // copied and pasted from fixContext() |
1320 | $pmap = array | |
1321 | ( | |
1322 | 'accounts' => 'userlist', | |
1323 | 'rspools' => 'ipv4rsplist', | |
1324 | 'rspool' => 'ipv4rsp', | |
1325 | 'vservices' => 'ipv4vslist', | |
1326 | 'vservice' => 'ipv4vs', | |
1327 | ); | |
1328 | $tmap = array(); | |
1329 | $tmap['objects']['newmulti'] = 'addmore'; | |
1330 | $tmap['objects']['newobj'] = 'addmore'; | |
1331 | $tmap['object']['switchvlans'] = 'livevlans'; | |
1332 | $tmap['object']['slb'] = 'editrspvs'; | |
72d8ced3 DO |
1333 | $tmap['object']['portfwrd'] = 'nat4'; |
1334 | $tmap['object']['network'] = 'ipv4'; | |
fe782367 DO |
1335 | while ($row = $tr->fetch (PDO::FETCH_ASSOC)) |
1336 | { | |
5f4027b8 DO |
1337 | // map, if appropriate |
1338 | $row['page'] = isset ($pmap[$row['page']]) ? $pmap[$row['page']] : $row['page']; | |
1339 | $row['tab'] = isset ($tmap[$row['page']][$row['tab']]) ? $tmap[$row['page']][$row['tab']] : $row['tab']; | |
1340 | // build a rule | |
d91674c6 | 1341 | $conjunction = ''; |
fe782367 | 1342 | $rule = $row['access'] == 'yes' ? 'allow' : 'deny'; |
d91674c6 DO |
1343 | if ($row['user_id'] != 0) |
1344 | { | |
1345 | $rule .= " {\$username_${row['user_name']}}"; | |
1346 | $conjunction = 'and '; | |
1347 | } | |
1348 | if ($row['page'] != '%') | |
1349 | { | |
1350 | $rule .= " ${conjunction}{\$page_${row['page']}}"; | |
1351 | $conjunction = 'and '; | |
1352 | } | |
1353 | if ($row['tab'] != '%') | |
1354 | $rule .= " ${conjunction}{\$tab_${row['tab']}}"; | |
fe782367 DO |
1355 | if ($rule == 'allow' or $rule == 'deny') |
1356 | continue; | |
d91674c6 | 1357 | $code .= "${rule}\n"; |
fe782367 DO |
1358 | } |
1359 | $query[] = "insert into Script (script_name, script_text) values ('RackCode', '${code}')"; | |
1360 | $query[] = 'drop table UserPermission'; | |
a69250c8 DO |
1361 | $new_words[791] = array (13 => '[[Linux%GSKIP%openSUSE 11.0 | http://en.opensuse.org/OpenSUSE_11.0]]'); |
1362 | $new_words[] = array (11 => '[[SGI%GPASS%Altix XE250 | http://www.sgi.com/products/servers/altix/xe/configs.html]]'); | |
1363 | $new_words[] = array (11 => '[[SGI%GPASS%Altix XE310 | http://www.sgi.com/products/servers/altix/xe/configs.html]]'); | |
1364 | $new_words[] = array (11 => '[[SGI%GPASS%Altix XE320 | http://www.sgi.com/products/servers/altix/xe/configs.html]]'); | |
1365 | foreach ($new_words as $dict_key => $tmp) | |
1366 | foreach ($tmp as $chapter_no => $dict_value) | |
1367 | $query[] = 'INSERT INTO `Dictionary` (`chapter_no`, `dict_key`, `dict_value`) ' . | |
1368 | "VALUES (${chapter_no}, ${dict_key}, '${dict_value}')"; | |
849f46c3 | 1369 | $query[] = "update Config set varvalue = '0.16.0' where varname = 'DB_VERSION'"; |
fe782367 | 1370 | break; |
4a6a28f1 DO |
1371 | case '0.16.1': |
1372 | $query[] = 'alter table Script modify column script_text longtext'; | |
7cd8e779 | 1373 | $query[] = 'alter table IPVirtualService ADD UNIQUE endpoint (vip, vport, proto)'; |
b0348307 DO |
1374 | $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('SHOW_LAST_TAB','no','string','yes','no','Remember last tab shown for each page')"; |
1375 | $query[] = "INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, description) VALUES ('COOKIE_TTL','1209600','uint','yes','no','Cookies lifetime in seconds')"; | |
1376 | $query[] = "update Config set varvalue = '0.16.1' where varname = 'DB_VERSION'"; | |
4a6a28f1 | 1377 | break; |
52c836b1 DO |
1378 | case '0.16.2': |
1379 | $query[] = "alter table IPBonds modify column type enum('regular','shared','virtual','router')"; | |
1380 | $query[] = "update Config set varvalue = '0.16.2' where varname = 'DB_VERSION'"; | |
1381 | break; | |
fbbb74fb | 1382 | default: |
b0348307 | 1383 | showError ("executeUpgradeBatch () failed, because batch '${batchid}' isn't defined", __FILE__); |
fbbb74fb DO |
1384 | die; |
1385 | break; | |
1386 | } | |
fbbb74fb | 1387 | $failures = array(); |
ce109ff2 | 1388 | $ndots = 0; |
22e40283 | 1389 | echo "<pre>Executing database upgrade batch '${batchid}':\n"; |
fbbb74fb DO |
1390 | foreach ($query as $q) |
1391 | { | |
1392 | $result = $dbxlink->query ($q); | |
1393 | if ($result != NULL) | |
fbbb74fb | 1394 | echo '.'; |
758fe24c DO |
1395 | else |
1396 | { | |
1397 | echo '!'; | |
1398 | $errorInfo = $dbxlink->errorInfo(); | |
1399 | $failures[] = array ($q, $errorInfo[2]); | |
1400 | } | |
1401 | if (++$ndots == 50) | |
1402 | { | |
1403 | echo "\n"; | |
15a50768 | 1404 | flush(); |
758fe24c | 1405 | $ndots = 0; |
fbbb74fb | 1406 | } |
fbbb74fb DO |
1407 | } |
1408 | echo '<br>'; | |
1409 | if (!count ($failures)) | |
1410 | echo "No errors!\n"; | |
1411 | else | |
1412 | { | |
7fc5565c | 1413 | echo "The following queries failed:\n<font color=red>"; |
fbbb74fb DO |
1414 | foreach ($failures as $f) |
1415 | { | |
1416 | list ($q, $i) = $f; | |
1417 | echo "${q} // ${i}\n"; | |
1418 | } | |
1419 | } | |
7fc5565c | 1420 | echo '</font></pre>'; |
fbbb74fb DO |
1421 | } |
1422 | ||
1423 | // ****************************************************************** | |
1424 | // | |
1425 | // Execution starts here | |
1426 | // | |
1427 | // ****************************************************************** | |
1428 | ||
1429 | $root = (empty($_SERVER['HTTPS'])?'http':'https'). | |
1430 | '://'. | |
1431 | (isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:($_SERVER['SERVER_NAME'].($_SERVER['SERVER_PORT']=='80'?'':$_SERVER['SERVER_PORT']))). | |
54c2a7a8 DO |
1432 | dirname($_SERVER['PHP_SELF']); |
1433 | if (substr ($root, -1) != '/') | |
1434 | $root .= '/'; | |
fbbb74fb DO |
1435 | |
1436 | // The below will be necessary as long as we rely on showError() | |
1437 | require_once 'inc/interface.php'; | |
1438 | ||
1439 | require_once 'inc/config.php'; | |
1440 | require_once 'inc/database.php'; | |
1441 | if (file_exists ('inc/secret.php')) | |
1442 | require_once 'inc/secret.php'; | |
1443 | else | |
1444 | die ("Database connection parameters are read from inc/secret.php file, " . | |
1445 | "which cannot be found.\nCopy provided inc/secret-sample.php to " . | |
1446 | "inc/secret.php and modify to your setup.\n\nThen reload the page."); | |
1447 | ||
1448 | try | |
1449 | { | |
1450 | $dbxlink = new PDO ($pdo_dsn, $db_username, $db_password); | |
1451 | } | |
1452 | catch (PDOException $e) | |
1453 | { | |
1454 | die ("Database connection failed:\n\n" . $e->getMessage()); | |
1455 | } | |
1456 | ||
fbbb74fb DO |
1457 | // Now we need to be sure that the current user is the administrator. |
1458 | // The rest doesn't matter within this context. | |
1459 | // We still continue to use the current authenticator though, but this will | |
1460 | // last only till the UserAccounts remains the same. After that this file | |
1461 | // will have to dig into the DB for the user accounts. | |
1462 | require_once 'inc/auth.php'; | |
1463 | ||
a1f3710a DO |
1464 | // 1. This didn't fail sanely, because getUserAccounts() depended on showError() |
1465 | // 2. getUserAccounts() doesn't work for old DBs since 0.16.0. Let's have own | |
1466 | // copy until it breaks too. | |
1467 | ||
1468 | function getUserAccounts_local () | |
1469 | { | |
1470 | global $dbxlink; | |
1471 | $query = 'select user_id, user_name, user_password_hash from UserAccount order by user_name'; | |
1472 | if (($result = $dbxlink->query ($query)) == NULL) | |
1473 | die ('SQL query failed in ' . __FUNCTION__); | |
1474 | $ret = array(); | |
1475 | while ($row = $result->fetch (PDO::FETCH_ASSOC)) | |
1476 | foreach (array ('user_id', 'user_name', 'user_password_hash') as $cname) | |
1477 | $ret[$row['user_name']][$cname] = $row[$cname]; | |
1478 | return $ret; | |
1479 | } | |
1480 | ||
1481 | $accounts = getUserAccounts_local(); | |
fbbb74fb | 1482 | |
d78fdaea DO |
1483 | // Only administrator is always authenticated locally, so reject others |
1484 | // for authenticate() to succeed. | |
99ee5479 DO |
1485 | |
1486 | if | |
1487 | ( | |
1488 | !isset ($_SERVER['PHP_AUTH_USER']) or | |
1489 | !isset ($_SERVER['PHP_AUTH_PW']) or | |
1490 | $accounts[$_SERVER['PHP_AUTH_USER']]['user_id'] != 1 or | |
1491 | !authenticated_via_database (escapeString ($_SERVER['PHP_AUTH_USER']), escapeString ($_SERVER['PHP_AUTH_PW'])) | |
1492 | ) | |
1493 | { | |
c0142c01 DO |
1494 | header ('WWW-Authenticate: Basic realm="RackTables upgrade"'); |
1495 | header ('HTTP/1.0 401 Unauthorized'); | |
b0348307 | 1496 | showError ('You must be authenticated as an administrator to complete the upgrade.', __FILE__); |
99ee5479 DO |
1497 | die; |
1498 | } | |
fbbb74fb DO |
1499 | |
1500 | $dbver = getDatabaseVersion(); | |
5f4027b8 DO |
1501 | echo 'Code version: ' . CODE_VERSION . '<br>'; |
1502 | echo 'Database version: ' . $dbver . '<br>'; | |
fbbb74fb | 1503 | if ($dbver == CODE_VERSION) |
758fe24c | 1504 | { |
5f4027b8 DO |
1505 | die ("<p align=justify>No action is necessary. " . |
1506 | "Proceed to the <a href='${root}'>main page</a>, " . | |
1507 | "check your data and have a nice day.</p>"); | |
758fe24c | 1508 | } |
fbbb74fb DO |
1509 | |
1510 | foreach (getDBUpgradePath ($dbver, CODE_VERSION) as $batchid) | |
5f4027b8 | 1511 | { |
fbbb74fb | 1512 | executeUpgradeBatch ($batchid); |
5f4027b8 DO |
1513 | printReleaseNotes ($batchid); |
1514 | } | |
fbbb74fb DO |
1515 | |
1516 | echo '<br>Database version == ' . getDatabaseVersion(); | |
1517 | echo "<p align=justify>Your database seems to be up-to-date. " . | |
1518 | "Now the best thing to do would be to follow to the <a href='${root}'>main page</a> " . | |
1519 | "and explore your data. Have a nice day.</p>"; | |
1520 | ||
1521 | ?> |