From 397a45c63e23caf0431ea77e2a634ef0a2bfcd98 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 7 Feb 2017 21:09:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20=D1=81=D0=B8=D0=BD=D1=85=D1=80=D0=BE=D0=BD?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8E=20=D0=B0=D0=B1=D0=BE=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=BE=D0=B2=20=D1=81=20NAS'=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cron.py | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) mode change 100644 => 100755 cron.py diff --git a/cron.py b/cron.py old mode 100644 new mode 100755 index 759ed93..b5dd2f1 --- a/cron.py +++ b/cron.py @@ -1,7 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- import os - import django @@ -9,8 +8,35 @@ if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djing.settings") django.setup() from abonapp.models import Abon + from agent import Transmitter, AbonStruct, TariffStruct, NasFailedResult + tm = Transmitter() users = Abon.objects.all() - - for usr in users: - usr.activate_next_tariff() + for user in users: + if user.ip_address is None: + continue + cur_tar = user.active_tariff() + if cur_tar is None: + continue + ab = AbonStruct( + uid=user.id, + ip=user.ip_address.int_ip(), + tariff=TariffStruct( + tariff_id=cur_tar.id, + speedIn=cur_tar.speedIn, + speedOut=cur_tar.speedOut + ) + ) + # обновляем абонента на NAS + mikroid = tm._find_queue('uid%d' % user.id) + mikroid = mikroid['=.id'].replace('*', '') + try: + tm.update_user(ab) + except NasFailedResult: + tm.add_user(ab) + # если не активен то приостановим услугу + if user.is_active: + tm.start_user(mikroid) + else: + tm.pause_user(mikroid) + tm.update_user(ab)