Python wrapper sql cleanup (#11628)
* Clean up wrapp mysql connect a bit * fix typo
This commit is contained in:
parent
3985ce74ce
commit
0b68c70a97
|
@ -134,68 +134,13 @@ def get_config_data(install_dir):
|
|||
|
||||
def db_open(db_socket, db_server, db_port, db_username, db_password, db_dbname):
|
||||
try:
|
||||
options = dict(host=db_server, port=int(db_port), user=db_username, passwd=db_password, db=db_dbname)
|
||||
|
||||
if db_socket:
|
||||
database = MySQLdb.connect(host=db_server, unix_socket=db_socket, user=db_username, passwd=db_password,
|
||||
db=db_dbname)
|
||||
else:
|
||||
database = MySQLdb.connect(host=db_server, port=db_port, user=db_username, passwd=db_password, db=db_dbname)
|
||||
return database
|
||||
options['unix_socket'] = db_socket
|
||||
|
||||
return MySQLdb.connect(**options)
|
||||
except Exception as dbexc:
|
||||
print('ERROR: Could not connect to MySQL database!')
|
||||
print('ERROR: %s' % dbexc)
|
||||
sys.exit(2)
|
||||
|
||||
|
||||
class DB:
|
||||
conn = None
|
||||
|
||||
def __init__(self, db_socket, db_server, db_port, db_username, db_password, db_dbname):
|
||||
self.db_socket = db_socket
|
||||
self.db_server = db_server
|
||||
self.db_port = db_port
|
||||
self.db_username = db_username
|
||||
self.db_password = db_password
|
||||
self.db_dbname = db_dbname
|
||||
self.in_use = threading.Lock()
|
||||
self.connect()
|
||||
|
||||
def connect(self):
|
||||
self.in_use.acquire(True)
|
||||
while True:
|
||||
try:
|
||||
self.conn.close()
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
if self.db_port == 0:
|
||||
self.conn = MySQLdb.connect(host=self.db_server, user=self.db_username, passwd=self.db_password, db=self.db_dbname)
|
||||
else:
|
||||
self.conn = MySQLdb.connect(host=self.db_server, port=self.db_port, user=self.db_username, passwd=self.db_password,
|
||||
db=self.db_dbname)
|
||||
break
|
||||
except (AttributeError, MySQLdb.OperationalError):
|
||||
logger.warning('WARNING: MySQL Error, reconnecting.')
|
||||
time.sleep(.5)
|
||||
|
||||
self.conn.autocommit(True)
|
||||
self.conn.ping(True)
|
||||
self.in_use.release()
|
||||
|
||||
def query(self, sql):
|
||||
self.in_use.acquire(True)
|
||||
while True:
|
||||
try:
|
||||
cursor = self.conn.cursor()
|
||||
cursor.execute(sql)
|
||||
ret = cursor.fetchall()
|
||||
cursor.close()
|
||||
self.in_use.release()
|
||||
return ret
|
||||
except (AttributeError, MySQLdb.OperationalError):
|
||||
logger.warning('WARNING: MySQL Operational Error during query, reconnecting.')
|
||||
self.in_use.release()
|
||||
self.connect()
|
||||
except (AttributeError, MySQLdb.ProgrammingError):
|
||||
logger.warning('WARNING: MySQL Programming Error during query, attempting query again.')
|
||||
cursor.close()
|
||||
|
|
|
@ -191,20 +191,6 @@ if __name__ == '__main__':
|
|||
discovery_path = config['install_dir'] + '/discovery.php'
|
||||
log_dir = config['log_dir']
|
||||
|
||||
# TODO: Use LibreNMS.DB
|
||||
db_username = config['db_user']
|
||||
db_password = config['db_pass']
|
||||
db_port = int(config['db_port'])
|
||||
|
||||
if config['db_socket']:
|
||||
db_server = config['db_host']
|
||||
db_socket = config['db_socket']
|
||||
else:
|
||||
db_server = config['db_host']
|
||||
db_socket = None
|
||||
|
||||
db_dbname = config['db_name']
|
||||
|
||||
# (c) 2015, GPLv3, Daniel Preussker <f0o@devilcode.org> <<<EOC1
|
||||
if 'distributed_poller_group' in config:
|
||||
discovery_group = str(config['distributed_poller_group'])
|
||||
|
@ -288,7 +274,7 @@ if __name__ == '__main__':
|
|||
query = "select device_id from devices where disabled = 0 order by last_polled_timetaken desc"
|
||||
# EOC2
|
||||
|
||||
db = LNMS.db_open(db_socket, db_server, db_port, db_username, db_password, db_dbname)
|
||||
db = LNMS.db_open(config['db_socket'], config['db_host'], int(config['db_port']), config['db_user'], config['db_pass'], config['db_name'])
|
||||
cursor = db.cursor()
|
||||
cursor.execute(query)
|
||||
devices = cursor.fetchall()
|
||||
|
|
|
@ -183,20 +183,6 @@ if __name__ == '__main__':
|
|||
poller_path = config['install_dir'] + '/poller.php'
|
||||
log_dir = config['log_dir']
|
||||
|
||||
# TODO: Use LibreNMS.DB
|
||||
db_username = config['db_user']
|
||||
db_password = config['db_pass']
|
||||
db_port = int(config['db_port'])
|
||||
|
||||
if config['db_socket']:
|
||||
db_server = config['db_host']
|
||||
db_socket = config['db_socket']
|
||||
else:
|
||||
db_server = config['db_host']
|
||||
db_socket = None
|
||||
|
||||
db_dbname = config['db_name']
|
||||
|
||||
if 'rrd' in config and 'step' in config['rrd']:
|
||||
step = config['rrd']['step']
|
||||
else:
|
||||
|
@ -292,7 +278,7 @@ if __name__ == '__main__':
|
|||
query = 'select device_id from devices where disabled = 0 order by last_polled_timetaken desc'
|
||||
# EOC2
|
||||
|
||||
db = LNMS.db_open(db_socket, db_server, db_port, db_username, db_password, db_dbname)
|
||||
db = LNMS.db_open(config['db_socket'], config['db_host'], config['db_port'], config['db_user'], config['db_pass'], config['db_name'])
|
||||
cursor = db.cursor()
|
||||
cursor.execute(query)
|
||||
devices = cursor.fetchall()
|
||||
|
@ -366,7 +352,7 @@ if __name__ == '__main__':
|
|||
|
||||
show_stopper = False
|
||||
|
||||
db = LNMS.db_open(db_socket, db_server, db_port, db_username, db_password, db_dbname)
|
||||
db = LNMS.db_open(config['db_socket'], config['db_host'], config['db_port'], config['db_user'], config['db_pass'], config['db_name'])
|
||||
cursor = db.cursor()
|
||||
query = "update pollers set last_polled=NOW(), devices='%d', time_taken='%d' where poller_name='%s'" % (
|
||||
polled_devices,
|
||||
|
|
|
@ -198,21 +198,6 @@ if __name__ == '__main__':
|
|||
service_path = config['install_dir'] + '/check-services.php'
|
||||
log_dir = config['log_dir']
|
||||
|
||||
# TODO: Use LibreNMS.DB
|
||||
db_username = config['db_user']
|
||||
db_password = config['db_pass']
|
||||
db_port = int(config['db_port'])
|
||||
|
||||
if config['db_socket']:
|
||||
db_server = config['db_host']
|
||||
db_socket = config['db_socket']
|
||||
else:
|
||||
db_server = config['db_host']
|
||||
db_socket = None
|
||||
|
||||
db_dbname = config['db_name']
|
||||
|
||||
|
||||
# (c) 2015, GPLv3, Daniel Preussker <f0o@devilcode.org> <<<EOC1
|
||||
if 'distributed_poller_group' in config:
|
||||
service_group = str(config['distributed_poller_group'])
|
||||
|
@ -290,8 +275,7 @@ if __name__ == '__main__':
|
|||
query = "SELECT DISTINCT(`services`.`device_id`) FROM `services` LEFT JOIN `devices` ON `services`.`device_id` = `devices`.`device_id` WHERE `devices`.`disabled` = 0"
|
||||
# EOC2
|
||||
|
||||
|
||||
db = LNMS.db_open(db_socket, db_server, db_port, db_username, db_password, db_dbname)
|
||||
db = LNMS.db_open(config['db_socket'], config['db_host'], config['db_port'], config['db_user'], config['db_pass'], config['db_name'])
|
||||
cursor = db.cursor()
|
||||
cursor.execute(query)
|
||||
devices = cursor.fetchall()
|
||||
|
|
Loading…
Reference in New Issue