Oct-27-2019, 04:07 PM
thanks,Gribouillis and all admin and moderator
Changed code, its working for me, but having small question, how can I can parse data inside class and return dict.
Changed code, its working for me, but having small question, how can I can parse data inside class and return dict.
from easysnmp import Session import time from datetime import datetime import datetime #from collections import namedtuple class fan: """\ this class to collect information about fan speed and fan status final output will be like below ------------------------------------------------------------------------------- Environment Information Number of fan trays : 1 Number of fans : 3 Fan tray number : 1 Speed : half speed Status : up -------------------------------------------------------------------------------""" #convert oid number in to fan speed , str oid value # dict for FanSpeed oid output value fan_speed = { 0:'Not Applicable', 1:'Unknown', 2:'Half Speed', 3:'Full Speed', 4:'Low Speed' } #convert oid output in fan status, str oid value #Dict for Fanstatus oid output values fan_status = { '1':'Unknown', '2':'Fan Removed', '3':'Up', '4':'Fail', '5':'Out of Service' } def __init__(self,host,community,version,timeout): self.host = host self.community = community self.version = version self.timeout = timeout def get_fan_details(self): # establish easysnmp session with host session = Session(hostname=self.host, community='cacti', version=2,timeout=5) # start bulkwalking snmp oids tmnxChassisNumFanTrays = session.bulkwalk('1.3.6.1.4.1.6527.3.1.2.2.1.3.1.10') NumFanTrays = str(u"{value}".format(value=tmnxChassisNumFanTrays[0].value)) tmnxChassisNumFans = session.bulkwalk('1.3.6.1.4.1.6527.3.1.2.2.1.3.1.11') NumFans = str(u"{value}".format(value=tmnxChassisNumFans[0].value)) tmnxChassisFanSpeed = session.bulkwalk('1.3.6.1.4.1.6527.3.1.2.2.1.4.1.3') FanSpeed = str(u"{value}".format(value=tmnxChassisFanSpeed[0].value)) tmnxChassisFanOperStatus = session.bulkwalk('1.3.6.1.4.1.6527.3.1.2.2.1.4.1.2') FanOperStatus = str(u"{value}".format(value=tmnxChassisFanOperStatus[0].value)) # returning dict return { 'NumOfFantrays':NumFanTrays, 'NumofFans':NumFans, 'FanSpeed':FanSpeed, 'FanStatus':FanOperStatus } """ how can I return dict value from this class... like return { 'NumOfFantrays':NumFanTrays, 'NumofFans':NumFans, 'FanSpeed':fan.get_fan_speed(FanSpeed), 'FanStatus':fan.fan_status.get(FanOperStatus) } """ # return fan speed and parameter will be oid value def get_fan_speed(self, value): return self.fan_speed.get(value,"other") #return fan status, parameter will be oid value def get_fan_status(self,value): return self.fan_status.get(value,"other") if __name__ == "__main__": a = fan('10.124.209.66','cacti',2,5) data = a.get_fan_details() for item in data.items(): print(item)current out put
Output:'NumOfFantrays', '1')
('NumofFans', '3')
('FanSpeed', '2')
('FanStatus', '3')
expected outputOutput:('NumOfFantrays', '1')
('NumofFans', '3')
('FanSpeed', 'Half Speed')
('FanStatus', 'Up')