def test_hostinfo_get_vendor(sysobject): handler = SnmpHandler(host='1.1.1.1', version='2c', community='public') hostinfo = HostInfo(handler) hostinfo.get_vendor() assert hostinfo.vendor == 'cisco'
def test_hostinfo_get_vendor(declared_hostinfo): dev = SnmpHandler(host='1.1.1.1', version='2c', community='public') hostinfo = HostInfo(dev) hostinfo.get_vendor() assert hostinfo.vendor == 'cisco'
def test_hostinfo_get_vendor_unknown(declared_hostinfo_unknown_vendor): dev = SnmpHandler(host='1.1.1.1', version='2c', community='public') hostinfo = HostInfo(dev) hostinfo.get_vendor() assert hostinfo.vendor == 'UNKNOWN'
def main(): argparser = SnmpArguments(description) args = argparser.parser.parse_nelmon_args() snmp = NelmonSnmp(args) hostinfo = HostInfo(snmp) hostinfo.get_vendor() if hostinfo.vendor != 'cisco': nelmon_exit(C.UNKNOWN, '%s v%s only works with Cisco devices' % (C.CURRENT_PLUGIN, NelmonGlobals.PLUGIN_VERSION)) env_tables = snmp.getnext(O.ciscoEnvMonObjects) volt_sensors = {} temp_sensors = {} fan_sensors = {} pw_sensors = {} s = SensorCollection() for env_table in env_tables: for oid, value in env_table: if O.ciscoEnvMonVoltageStatusTable in oid: sensor_id = oid.rsplit('.', 1)[-1] if not sensor_id in volt_sensors.keys(): volt_sensors[sensor_id] = Sensor(sensor_id) if O.ciscoEnvMonVoltageStatusDescr in oid: volt_sensors[sensor_id].set_description(value) if O.ciscoEnvMonVoltageStatusValue in oid: volt_sensors[sensor_id].set_value(value) if O.ciscoEnvMonVoltageState in oid: volt_sensors[sensor_id].set_state(value) if O.ciscoEnvMonTemperatureStatusTable in oid: sensor_id = oid.rsplit('.', 1)[-1] if not sensor_id in temp_sensors.keys(): temp_sensors[sensor_id] = Sensor(sensor_id) if O.ciscoEnvMonTemperatureStatusDescr in oid: temp_sensors[sensor_id].set_description(value) if O.ciscoEnvMonTemperatureStatusValue in oid: temp_sensors[sensor_id].set_value(value) if O.ciscoEnvMonTemperatureState in oid: temp_sensors[sensor_id].set_state(value) if O.ciscoEnvMonFanStatusTable in oid: sensor_id = oid.rsplit('.', 1)[-1] if not sensor_id in fan_sensors.keys(): fan_sensors[sensor_id] = Sensor(sensor_id) if O.ciscoEnvMonFanStatusDescr in oid: fan_sensors[sensor_id].set_description(value) if O.ciscoEnvMonFanState in oid: fan_sensors[sensor_id].set_state(value) if O.ciscoEnvMonSupplyStatusTable in oid: sensor_id = oid.rsplit('.', 1)[-1] if not sensor_id in pw_sensors.keys(): pw_sensors[sensor_id] = Sensor(sensor_id) if O.ciscoEnvMonSupplyStatusDescr in oid: pw_sensors[sensor_id].set_description(value) if O.ciscoEnvMonSupplyState in oid: pw_sensors[sensor_id].set_state(value) for sensor in volt_sensors: s.add_sensor('volt', volt_sensors[sensor].description, volt_sensors[sensor].state) for sensor in temp_sensors: s.add_sensor('temp', temp_sensors[sensor].description, temp_sensors[sensor].state) for sensor in fan_sensors: s.add_sensor('fan', fan_sensors[sensor].description, fan_sensors[sensor].state) for sensor in pw_sensors: s.add_sensor('pw', pw_sensors[sensor].description, pw_sensors[sensor].state) s.set_message() nelmon_exit(s.status, s.output)