Commit | Line | Data |
---|---|---|
b325120a | 1 | <?php |
641fe9b0 DO |
2 | /* |
3 | * | |
4 | * This file is a library of tab triggers for RackTables. | |
5 | * | |
6 | */ | |
7 | ||
8 | // Triggers may be optionally referred by some tabs of a page. | |
9 | // In case they are defined, the given tab is only displayed if | |
10 | // the trigger returned true. In certain cases, a key is necessary | |
11 | // to decide (the 'bypass' hint of a page), and in some cases, | |
12 | // other data can be used. | |
13 | ||
14 | // This trigger filters out everything except switches with known-good | |
15 | // software. | |
16 | // FIXME: That's a bit of hardcoding at the moment, but | |
17 | // let's thinks about fixing it later. | |
18 | function trigger_switchvlans () | |
19 | { | |
20 | assertUIntArg ('object_id'); | |
21 | $object_id = $_REQUEST['object_id']; | |
22 | $object = getObjectInfo ($object_id); | |
23 | if ($object['objtype_id'] != 8) | |
24 | return FALSE; | |
25 | $values = getAttrValues ($object_id); | |
26 | foreach ($values as $record) | |
27 | { | |
dce5a9e7 | 28 | if ($record['id'] != 4) // SW type |
641fe9b0 | 29 | continue; |
dce5a9e7 DO |
30 | // Cisco IOS 12.0 |
31 | // Cisco IOS 12.1 | |
32 | // Cisco IOS 12.2 | |
33 | if (in_array ($record['key'], array (244, 251, 252))) | |
641fe9b0 DO |
34 | return TRUE; |
35 | else | |
36 | return FALSE; | |
37 | } | |
38 | return FALSE; | |
39 | } | |
40 | ||
9c67f713 DO |
41 | // SNMP port finder tab trigger. At the moment we decide on showing it |
42 | // for pristine switches only. Once a user has begun | |
43 | // filling the data in, we stop showing the tab. | |
44 | function trigger_snmpportfinder () | |
45 | { | |
46 | assertUIntArg ('object_id'); | |
47 | $object_id = $_REQUEST['object_id']; | |
48 | $object = getObjectInfo ($object_id); | |
49 | if ($object['objtype_id'] != 8) | |
50 | return FALSE; | |
51 | $tails = getObjectPortsAndLinks ($object_id); | |
52 | if (count ($tails)) | |
53 | return FALSE; | |
54 | return TRUE; | |
55 | } | |
56 | ||
9b0cf84f DO |
57 | // Output "click me" in an empty rackspace. |
58 | function trigger_emptyRackspace () | |
59 | { | |
60 | return (count (readChapter ('RackRow')) == 0); | |
61 | } | |
62 | ||
3ee1252b DO |
63 | function trigger_lvsconfig () |
64 | { | |
65 | assertUIntArg ('object_id'); | |
6dbdc7c7 DO |
66 | return count (getRSPoolsForObject ($_REQUEST['object_id'])) > 0; |
67 | } | |
68 | ||
69 | function trigger_ipv4 () | |
70 | { | |
71 | assertUIntArg ('object_id'); | |
72 | $info = getObjectInfo ($_REQUEST['object_id']); | |
73 | return in_array ($info['objtype_id'], explode (',', getConfigVar ('IPV4_PERFORMERS'))); | |
74 | } | |
75 | ||
76 | function trigger_natv4 () | |
77 | { | |
78 | assertUIntArg ('object_id'); | |
79 | $info = getObjectInfo ($_REQUEST['object_id']); | |
80 | return in_array ($info['objtype_id'], explode (',', getConfigVar ('NATV4_PERFORMERS'))); | |
3ee1252b DO |
81 | } |
82 | ||
641fe9b0 | 83 | ?> |