From 96ccd6e2312707e5ffa7e51154f27e92ba639292 Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Tue, 23 Jan 2018 17:14:06 +0300 Subject: [PATCH] Fix importing when changed settings path --- agent/netflow/netflow_handler.py | 47 ++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/agent/netflow/netflow_handler.py b/agent/netflow/netflow_handler.py index 018846c..f88a4ea 100755 --- a/agent/netflow/netflow_handler.py +++ b/agent/netflow/netflow_handler.py @@ -2,12 +2,11 @@ import MySQLdb import sys import os -import imp - +from importlib import import_module if __name__ == '__main__': if len(sys.argv) < 2: - print("Нужно имя файла дампа netflow") + print("File name of netflow required") exit(1) FNAME = sys.argv[1] @@ -22,18 +21,22 @@ if __name__ == '__main__': os.mkdir(tmp_dir) os.rename('/tmp/djing_flow/%s' % FNAME, tmp_dump_file) - settings = imp.load_source('djing.settings.DATABASES', '../../djing/settings.py') + sys.path.append('../../') + local_settings = import_module('djing.local_settings') db = MySQLdb.connect( - host=settings.DATABASES['default']['HOST'], - user=settings.DATABASES['default']['USER'], - passwd=settings.DATABASES['default']['PASSWORD'], - db=settings.DATABASES['default']['NAME'], - charset='utf8' - ) + host=local_settings.DATABASES['default']['HOST'], + user=local_settings.DATABASES['default']['USER'], + passwd=local_settings.DATABASES['default']['PASSWORD'], + db=local_settings.DATABASES['default']['NAME'], + charset='utf8' + ) cursor = db.cursor() - sql = r'SELECT abonent.ip_address, acc.username FROM abonent LEFT JOIN accounts_app_userprofile AS acc ON (acc.id = abonent.userprofile_ptr_id) WHERE abonent.ip_address != 0' + sql = r'SELECT abonent.ip_address, acc.username ' \ + r'FROM abonent ' \ + r'LEFT JOIN accounts_app_userprofile AS acc ON (acc.id = abonent.userprofile_ptr_id) ' \ + r'WHERE abonent.ip_address != 0' ln = cursor.execute(sql) with open(tmp_ipuser_file, 'w') as f: f.write("count: %d\n" % ln) @@ -44,16 +47,18 @@ if __name__ == '__main__': f.write("%d-%s\n" % row) db.close() - os.system('/usr/bin/bash -c "%(CUR_DIR)s/djing_flow %(TMP_IPUSER_FILE)s < %(TMP_DUMP)s | /usr/bin/mysql -u%(DB_USER)s -h %(HOST)s -p %(DB_NAME)s --password=%(DB_PASSW)s"' % { - 'CUR_DIR': cur_dir, - 'TMP_IPUSER_FILE': tmp_ipuser_file, - 'TMP_DUMP': tmp_dump_file, - 'DB_USER': settings.DATABASES['default']['USER'], - 'HOST': settings.DATABASES['default']['HOST'], - 'DB_NAME': settings.DATABASES['default']['NAME'], - 'DB_PASSW': settings.DATABASES['default']['PASSWORD'] - }) + os.system( + '/usr/bin/bash -c ' + '"%(CUR_DIR)s/djing_flow %(TMP_IPUSER_FILE)s < %(TMP_DUMP)s | ' + '/usr/bin/mysql -u%(DB_USER)s -h %(HOST)s -p %(DB_NAME)s --password=%(DB_PASSW)s"' % { + 'CUR_DIR': cur_dir, + 'TMP_IPUSER_FILE': tmp_ipuser_file, + 'TMP_DUMP': tmp_dump_file, + 'DB_USER': local_settings.DATABASES['default']['USER'], + 'HOST': local_settings.DATABASES['default']['HOST'], + 'DB_NAME': local_settings.DATABASES['default']['NAME'], + 'DB_PASSW': local_settings.DATABASES['default']['PASSWORD'] + }) os.remove(tmp_dump_file) os.remove(tmp_ipuser_file) -