diff --git a/abonapp/views.py b/abonapp/views.py index 4c9adf8..0362ad0 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -9,8 +9,8 @@ from django.contrib import messages from django.contrib.auth.decorators import login_required from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin from django.core.exceptions import PermissionDenied, ValidationError -from django.db import IntegrityError, ProgrammingError, transaction -from django.db.models import Count, Q +from django.db import IntegrityError, transaction +from django.db.models import Count from django.http import ( HttpResponse, HttpResponseBadRequest, HttpResponseRedirect @@ -255,7 +255,8 @@ class DebtsListView(LoginAdminPermissionMixin, OrderedFilteredList): def get_queryset(self): if not hasattr(self, 'abon'): abon = get_object_or_404(models.Abon, username=self.kwargs.get('uname')) - self.abon = abonself.abon = abon + if not hasattr(self, 'abon'): + self.abon = abon return models.InvoiceForPayment.objects.filter(abon=self.abon) def get_context_data(self, **kwargs): @@ -694,7 +695,7 @@ def clear_dev(request, gid: int, uname): @json_view def abon_ping(request, gid: int, uname): ip = request.GET.get('cmd_param') - status = False + status = 1 text = ' %s' % _('no ping') abon = get_object_or_404(models.Abon, username=uname) try: @@ -711,7 +712,7 @@ def abon_ping(request, gid: int, uname): ping_result = mngr.ping(ip) if ping_result is None: return { - 'status': False, + 'status': 1, 'dat': text } if isinstance(ping_result, tuple): @@ -723,7 +724,7 @@ def abon_ping(request, gid: int, uname): received, sent = ping_result else: return { - 'status': False, + 'status': 1, 'dat': text } loses_percent = ( @@ -738,7 +739,7 @@ def abon_ping(request, gid: int, uname): text = ' %s' % _( 'ok ping, %(return)d/%(all)d loses' ) % ping_result - status = True + status = 0 else: text = ' %s' % _( 'no ping, %(return)d/%(all)d loses' @@ -750,7 +751,7 @@ def abon_ping(request, gid: int, uname): text = str(e) return { - 'status': 0 if status else 1, + 'status': status, 'dat': text } diff --git a/agent/netflow/djing_flow.tar.gz b/agent/netflow/djing_flow.tar.gz index 02b6e9a..42b4be5 100644 Binary files a/agent/netflow/djing_flow.tar.gz and b/agent/netflow/djing_flow.tar.gz differ diff --git a/agent/netflow/netflow_collect.sh b/agent/netflow/netflow_collect.sh index 78c0393..9918507 100755 --- a/agent/netflow/netflow_collect.sh +++ b/agent/netflow/netflow_collect.sh @@ -17,7 +17,6 @@ ldb = db.get('default') print('%s %s %s %s %d' % (ldb['NAME'], ldb['USER'], ldb['PASSWORD'], ldb['HOST'], ldb['PORT']))"` - if ! ping -c 1 ${mysql_host} &> /dev/null; then echo "Host ${mysql_host} is not accessible" fi @@ -33,19 +32,16 @@ do echo "${uip}-${uid}" >> ${tmp_ipuser_file} done - # Сигналим коллекторам чтоб они сбросили дамп в папку /tmp/djing_flow/dump for fl in /run/flow.pid.*; do kill -HUP `cat ${fl}` - sleep 1 done - +sleep 1 # Экспортируем всё в mysql export LD_LIBRARY_PATH=. -flow-cat /tmp/djing_flow/dump/*.dmp | ./djing_flow -i ${tmp_ipuser_file} -cl | mysql -u ${mysql_user} -h ${mysql_host} -p -D ${mysql_database} -P ${mysql_port} --password=${mysql_passw} - +flow-cat /tmp/djing_flow/dump/*/*.dmp | ./djing_flow -i ${tmp_ipuser_file} -cl | mysql -u ${mysql_user} -h ${mysql_host} -p -D ${mysql_database} -P ${mysql_port} --password=${mysql_passw} rm -f tmp_ipuser_file -rm -f /tmp/djing_flow/dump/*.dmp +rm -f /tmp/djing_flow/dump/*/*.dmp diff --git a/agent/netflow/netflow_handler.sh b/agent/netflow/netflow_handler.sh index 2d85c05..03b0d77 100755 --- a/agent/netflow/netflow_handler.sh +++ b/agent/netflow/netflow_handler.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash if [ -z "$1" ]; then + echo "missing port" + exit +fi + +if [ -z "$2" ]; then echo "missing filename" exit fi -fname=$1 +fname=$2 +port=$1 PATH=/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin cd /tmp/djing_flow -mkdir -p dump -mv ${fname} dump/${fname}.dmp +mkdir -p dump/${port} +echo "mv ${port}/${fname} dump/${port}/${fname}.dmp" >> /tmp/mv.log +mv ${port}/${fname} dump/${port}/${fname}.dmp diff --git a/agent/netflow/start_netflow.sh b/agent/netflow/start_netflow.sh index fdebf4e..5b9a063 100755 --- a/agent/netflow/start_netflow.sh +++ b/agent/netflow/start_netflow.sh @@ -9,6 +9,6 @@ fi port=$1 DIRECTORY=`dirname $(readlink -e "$0")` -mkdir -p /tmp/djing_flow +mkdir -p /tmp/djing_flow/${port} -flow-capture -R ${DIRECTORY}/netflow_handler.sh -p /run/flow.pid -w /tmp/djing_flow -n1 -N0 0/0/${port} +flow-capture -R "${DIRECTORY}/netflow_handler.sh ${port}" -p /run/flow.pid -w /tmp/djing_flow/${port} -n1 -N0 0/0/${port}