function save_mibs($device, $mibname, $oids, $mibdef, &$graphs) { $usedoids = array(); foreach ($oids as $index => $array) { foreach ($array as $oid => $val) { $type = oid_rrd_type($oid, $mibdef); if ($type === false) { continue; } $usedoids[$index][$oid] = $val; rrd_create_update($device, array($mibname, $mibdef[$oid]['shortname'], $index), array("DS:" . $mibdef[$oid]['dsname'] . ":{$type}"), "N:{$val}"); } } tag_graphs($mibname, $usedoids, $mibdef, $graphs); update_mib_graph_types($mibname, $usedoids, $mibdef, $graphs); }
function save_mibs($device, $mibname, $oids, $mibdef, &$graphs) { $usedoids = array(); $deviceoids = array(); foreach ($oids as $index => $array) { foreach ($array as $obj => $val) { // build up the device_oid row for saving into the database $numvalue = is_numeric($val) ? $val + 0 : 0; $deviceoids[] = array('device_id' => $device['device_id'], 'oid' => $mibdef[$obj]['oid'] . "." . $index, 'module' => $mibdef[$obj]['module'], 'mib' => $mibdef[$obj]['mib'], 'object_type' => $obj, 'value' => $val, 'numvalue' => $numvalue); $type = oid_rrd_type($obj, $mibdef); if ($type === false) { continue; } $usedoids[$index][$obj] = $val; // if there's a file from the previous version of MIB-based polling, rename it if (rrd_file_exists($device, array($mibname, $mibdef[$obj]['object_type'], $index)) && !rrd_file_exists($device, array($mibname, $mibdef[$obj]['shortname'], $index))) { rrd_file_rename($device, array($mibname, $mibdef[$obj]['object_type'], $index), array($mibname, $mibdef[$obj]['shortname'], $index)); // Note: polling proceeds regardless of rename result } rrd_create_update($device, array($mibname, $mibdef[$obj]['shortname'], $index), array("DS:mibval:{$type}"), array("mibval" => $val)); } } tag_graphs($mibname, $usedoids, $mibdef, $graphs); update_mib_graph_types($mibname, $usedoids, $mibdef, $graphs); // update database $columns = array('device_id', 'oid', 'module', 'mib', 'object_type', 'value', 'numvalue'); update_db_table('device_oids', $columns, 2, $deviceoids); }