0

My script sometimes raport an errors when works, what I do wrong

File "/current/chudini/cga4236ver5dhcp1.py", line 73, in snmp_set = session.set('.1.3.6.1.2.1.69.1.3.3.0','1') File "/usr/local/lib/python3.8/dist-packages/easysnmp/session.py", line 348, in set success = interface.set(self, varlist) SystemError: returned NULL without setting an error

My script:

#!/usr/bin/python3


import pymysql.cursors
import warnings
import pymysql
import mysql.connector
from mysql.connector import Error
import os
from easysnmp import Session

l1=[]
l2=[]

try:

  connection= mysql.connector.connect(host= "IP", database = 'database', user='user' , password = 'password')

  if connection.is_connected():
        db_Info = connection.get_server_info()
        print("Connected to MySQL Server version ", db_Info)
        cursor = connection.cursor()
        cursor.execute("select ipaddr from docsis_modem where serialnum like 'CGA4236%' and ipaddr like '10%';")
        records = cursor.fetchall()
        print("Total number of CM IP in table: ", cursor.rowcount)
        #print("\nPrinting each row<br>")
        for row in records:
            l1.append(row[0])

except Error as e:
    print("Error while connecting to MySQL", e)
finally:
    if connection.is_connected():
        cursor.close()
        connection.close()
        print("MySQL connection is closed")


with warnings.catch_warnings():
      warnings.simplefilter("ignore")


if os.path.exists('/current/chudini/previous_list.txt'):
    with open("/current/chudini/previous_list.txt", "r") as f2:
        for line in f2:
            x = line[:-1]

            l2.append(x)


c = [i for i in l1 if i not in l2]

licznik =0
for element in c:
    licznik +=1
    #print(liczniki)
    try:
        session = Session(hostname = element, community = 'community', version =2, retries=0 )

        snmp_get = session.get('.1.3.6.1.2.1.69.1.3.5.0')
        result = snmp_get.value.encode('ascii')
    except:
        print(licznik,'. No response CM of IP %s ' %element)
        continue
    if b'220425' in result:
        print(licznik, '. Software in CM of IP  %s      OK' %element)
        with open("/current/chudini/previous_list.txt", "a") as f2:
            f2.write("%s\n" %element)
    else:
        print(licznik, '. Software in CM of IP  %s      !!!!!!!!WRONG!!!!!' %element)
        # .1.3.6.1.2.1.69.1.3.3.0 i 1
        try:
            snmp_set = session.set('.1.3.6.1.2.1.69.1.3.3.0','1')
            with open("/var/log/cga4236softproblem.txt", "a") as f:
                f.write(str(element)+'\n')
        except:
            with open("/var/log/cga4236softproblem.txt", "a") as f:
                f.write(str(element) + ' Something Wrong\n')
homcioq
  • 15
  • 4

0 Answers0