. * * @link http://librenms.org * @copyright 2018 Tony Murray * @author Tony Murray */ namespace LibreNMS\OS; use App\Models\Device; use LibreNMS\Device\Processor; use LibreNMS\Interfaces\Discovery\ProcessorDiscovery; use LibreNMS\OS; class Comware extends OS implements ProcessorDiscovery { public function discoverOS(Device $device): void { parent::discoverOS($device); // yaml // serial $serial_nums = explode("\n", snmp_walk($this->getDeviceArray(), 'hh3cEntityExtManuSerialNum', '-Osqv', 'HH3C-ENTITY-EXT-MIB')); $this->getDevice()->serial = $serial_nums[0]; // use the first s/n } /** * Discover processors. * Returns an array of LibreNMS\Device\Processor objects that have been discovered * * @return array Processors */ public function discoverProcessors() { $procdata = $this->getCacheByIndex('hh3cEntityExtCpuUsage', 'HH3C-ENTITY-EXT-MIB'); if (! empty($procdata)) { $entity_data = $this->getCacheByIndex('entPhysicalName', 'ENTITY-MIB'); } $processors = []; foreach ($procdata as $index => $usage) { if ($usage != 0) { $processors[] = Processor::discover( $this->getName(), $this->getDeviceId(), ".1.3.6.1.4.1.25506.2.6.1.1.1.1.6.$index", $index, $entity_data[$index], 1, $usage, null, $index ); } } return $processors; } }