r1930 + merge killsystem's patch (SNMP and OEM S/N)
authorDenis Ovsienko <infrastation@yandex.ru>
Tue, 20 May 2008 13:50:25 +0000 (13:50 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Tue, 20 May 2008 13:50:25 +0000 (13:50 +0000)
ChangeLog
inc/interface.php

index 829d688d9c176c2110c871f1dab5138fa02c22bd..39497810b185a20eef245886d992e06d59017051 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
 0.15.1
        bugfix: fix auth headers in upgrade script (broken in 0.15.0)
 0.15.1
        bugfix: fix auth headers in upgrade script (broken in 0.15.0)
+       new feature: fetch switch serial number via SNMP (by killsystem)
 0.15.0 2008-05-10
        new feature: tags
        new feature: automatic option groups
 0.15.0 2008-05-10
        new feature: tags
        new feature: automatic option groups
index 15848ed21db3a50dbfabe37d38453a1c0d1ccc2b..01c436037f8132bcf2e5650a367261608740f007 100644 (file)
@@ -3831,8 +3831,10 @@ function renderSNMPPortFinder ($object_id = 0)
                $endpoints = findAllEndpoints ($object_id, $objectInfo['name']);
                $sysName = substr (snmpget ($endpoints[0], $community, 'sysName.0'), strlen ('STRING: '));
                $sysDescr = snmpget ($endpoints[0], $community, 'sysDescr.0');
                $endpoints = findAllEndpoints ($object_id, $objectInfo['name']);
                $sysName = substr (snmpget ($endpoints[0], $community, 'sysName.0'), strlen ('STRING: '));
                $sysDescr = snmpget ($endpoints[0], $community, 'sysDescr.0');
+               $sysChassi = snmpget ($endpoints[0], $community, '1.3.6.1.4.1.9.3.6.3.0');
                // Strip the object type, it's always string here.
                $sysDescr = substr ($sysDescr, strlen ('STRING: '));
                // Strip the object type, it's always string here.
                $sysDescr = substr ($sysDescr, strlen ('STRING: '));
+               $sysChassi = str_replace ('"', '', substr ($sysChassi, strlen ('STRING: ')));
                if (strpos ($sysDescr, 'Cisco IOS Software') === 0 or strpos ($sysDescr, 'Cisco Internetwork Operating System Software') === 0)
                        $log[] = array ('code' => 'success', 'message' => 'Seems to be a Cisco box');
                else
                if (strpos ($sysDescr, 'Cisco IOS Software') === 0 or strpos ($sysDescr, 'Cisco Internetwork Operating System Software') === 0)
                        $log[] = array ('code' => 'success', 'message' => 'Seems to be a Cisco box');
                else
@@ -3866,6 +3868,15 @@ function renderSNMPPortFinder ($object_id = 0)
                                $log[] = array ('code' => 'error', 'message' => 'Failed settig SW version: ' . $error);
                }
 
                                $log[] = array ('code' => 'error', 'message' => 'Failed settig SW version: ' . $error);
                }
 
+               if (empty ($attrs[1]['value']) and strlen ($sysChassi) > 0) // OEM Serial #1
+               {
+                       $error = commitUpdateAttrValue ($object_id, 1, $sysChassi);
+                       if ($error == TRUE)
+                               $log[] = array ('code' => 'success', 'message' => 'OEM S/N 1 set to ' . $sysChassi);
+                       else
+                               $log[] = array ('code' => 'error', 'message' => 'Failed settig OEM S/N 1: ' . $error);
+               }
+
                if (empty ($attrs[4]['value'])) // switch OS type
                        switch (substr ($IOSversion, 0, 4))
                        {
                if (empty ($attrs[4]['value'])) // switch OS type
                        switch (substr ($IOSversion, 0, 4))
                        {