Python Forum
first try with python class, suggestion for improvement please
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
first try with python class, suggestion for improvement please
#15
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.

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 output

Output:
('NumOfFantrays', '1') ('NumofFans', '3') ('FanSpeed', 'Half Speed') ('FanStatus', 'Up')
Reply


Messages In This Thread
RE: first try with python class, suggestion for improvement please - by anna - Oct-27-2019, 04:07 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Suggestion on how to speed up this code? sawtooth500 1 252 May-04-2024, 07:13 PM
Last Post: sawtooth500
  Can you give me some suggestion about PCEP Newbie1114 0 1,048 Oct-14-2021, 03:02 PM
Last Post: Newbie1114
  instagram followers name without suggestion for you jacklee26 1 3,215 Oct-02-2021, 04:57 AM
Last Post: ndc85430
  Random coordinate generator speed improvement saidc 0 2,079 Aug-01-2021, 11:09 PM
Last Post: saidc
  Python Dev suggestion: Combining line-wrap with comments inside functions NikoNiels 2 1,774 Sep-26-2020, 07:45 PM
Last Post: bowlofred
  Function Improvement Santino 1 1,836 May-23-2020, 03:30 PM
Last Post: jefsummers
  Name Mashup Program Improvement in Python rhat398 3 2,624 Apr-05-2020, 12:09 PM
Last Post: perfringo
  Optimization suggestion Julia 2 1,768 Mar-29-2020, 12:02 PM
Last Post: Julia
  Need suggestion how to handle this error farrukh 1 2,318 Dec-21-2019, 03:21 PM
Last Post: DeaD_EyE
  Python Based Data QA Automation tool suggestion Sonia567 1 2,030 Nov-19-2019, 04:46 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020