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}