Пример #1
0
    def callDevices(self):
        Log("Calling devices...")

        for port in self.ports:
            errorIndication, errorStatus, errorIndex, self.varBinds = self.cmdGen.getCmd(
            cmdgen.CommunityData('public'),
            cmdgen.UdpTransportTarget((self.ip, port)),
            O_ID,
            O_DESCR,
            O_FPORTS,
            O_UPORTS,
            O_NETUP,
            O_NETDOWN,
            O_FANSPEED,
            O_VOLTAGE,
            O_TEMP,
            O_BANDLOAD,
            lookupNames=True, lookupValues=True)

            if errorIndication:
                print "Calling device error:"+port
                #logging.warning("Call device error. Port:" + port)
                Log("Call device error. Port:" + port,1) 
                #raise Exception("Call device error.Port "+port)
            elif errorStatus:
                #print (errorStatus,port),"Call device Error."
                #raise Exception("Error occured: port-"+port+" status-"+errorStatus)
                Log("Error occured: port-"+port+" status-"+errorStatus,1) 
            else:
                self.devices.append(self.varBinds)

        Log("Finished")
        self.makeXml()
Пример #2
0
    def printToFile(self):
        Log("Printing data to file(data/device_info.txt...") 

        output = open("data/device_info.txt",'r+')
        for dev in self.devices:
            for name,val in dev:
                output.write(str(name) + '\n' + str(val) + '\n' )
            output.write('\n--------------\n')
        Log("Finished.")
Пример #3
0
    def getDevicePorts(self):
        Log("Getting device ports...")
        
        infile = open('src/devices.txt','r')

        data = infile.readline()

        ports = []
        ports = re.findall('\d+',data)
        self.ports = ports

        Log("Finished.")
Пример #4
0
    def printInventory(self):
        Log("Printing inventory data...") 
        ftp = FTP(self.ip)
        ftp.login()
        invent_file = open("inventory.txt",'wb')
        ftp.retrbinary('RETR inventory.txt',invent_file.write,8*1024)
        invent_file.close()
        
        with open("inventory.txt",'r') as f:
            for line in f:
                print line.rstrip()
        

        Log("Finished.")
Пример #5
0
    def printDataForDevice(self,info_type,device_id):
        dic = self.getDictionary()
        errorIndication, errorStatus, errorIndex, varBinds = self.cmdGen.getCmd(
            cmdgen.CommunityData('public'),
            cmdgen.UdpTransportTarget((self.ip, device_id)),
            dic[info_type],
            lookupNames=True, lookupValues=True)

        if errorIndication:
            raise Exception("Call device error.Port "+port)
            Log("Call device error. Port:" + port,1) 

        elif errorStatus:
            raise Exception("Error occured: port-"+port+" status-"+errorStatus)
            Log("Call device error. Port:" + port + "Error status:" + errorStatus,1) 
        else:
            self.printVarBinds(varBinds,0)
Пример #6
0
    def __init__(self,_ip):
        cm = ConfigManager()
        Log("Network manager started")
        
        self.ip = cm.getSnmpIp()
        self.ports = ()
        self.cmdGen = cmdgen.CommandGenerator()
        self.devices = []
        self.inventory = []

        self.getDevicePorts()
        self.callDevices()
Пример #7
0
    def makeXml(self):
        Log("Start making xml...")
        devices = []
        xmlFile = open('data/xml/device_info.xml','w')
        
        out = open('data/out','r+')
        for dev in self.devices:
            for name,val in dev:
                out.write(str(val)+'&&')
            out.write('\n')

        out.close()

        xml = etree.Element('xml')
        performanceData = []

        with open('data/out','r') as infile:
            for line in infile:
                performanceData = line.split('&&')
            
                root = etree.Element("Device")
                devId = etree.Element("Id")
                devId.text = performanceData[0]
                root.append(devId)

                sysDescr = etree.Element(SYSDESCR)
                sysDescr.text = performanceData[1]
                root.append(sysDescr)
                self.inventory.append(performanceData[1])

                freePorts = etree.Element(FREEPORTS)
                freePorts.text = performanceData[2]
                root.append(freePorts)

                usedPorts = etree.Element(USEDPORTS)
                usedPorts.text = performanceData[3]
                root.append(usedPorts)

                netUp = etree.Element(NETUP)
                netUp.text = performanceData[4]
                root.append(netUp)

                netDown = etree.Element(NETDOWN)
                netDown.text = performanceData[5]
                root.append(netDown)

                fanSpeed = etree.Element(FANSPEED)
                fanSpeed.text = performanceData[6]
                root.append(fanSpeed)
            
                voltage = etree.Element(VOLTAGE)
                voltage.text = performanceData[7]
                root.append(voltage)

                temp = etree.Element(TEMP)
                temp.text = performanceData[8]
                root.append(temp)

                bandLoad = etree.Element(BANDLOAD)
                bandLoad.text = performanceData[9]
                root.append(bandLoad)

                xml.append(root)

            xmlFile.write(etree.tostring(xml,pretty_print=True))

            Log("Finished.")