13 changed files with 96 additions and 78 deletions
-
45abonapp/models.py
-
47abonapp/tasks.py
-
2abonapp/templates/abonapp/payHistory.html
-
31abonapp/views.py
-
5accounts_app/views.py
-
3clientsideapp/views.py
-
9devapp/views.py
-
2djing/lib/decorators.py
-
5gw_app/nas_managers/core.py
-
9gw_app/nas_managers/mod_mikrotik.py
-
4gw_app/nas_managers/structs.py
-
7periodic.py
-
5requirements.txt
@ -0,0 +1,47 @@ |
|||
from celery import shared_task |
|||
|
|||
from abonapp.models import Abon |
|||
from djing.lib import LogicError |
|||
from gw_app.models import NASModel |
|||
from gw_app.nas_managers import NasFailedResult, NasNetworkError, SubnetQueue |
|||
|
|||
|
|||
@shared_task |
|||
def customer_nas_command(customer_uid: int, command: str): |
|||
if command not in ('add', 'sync'): |
|||
return 'Command required' |
|||
try: |
|||
cust = Abon.objects.get(pk=customer_uid) |
|||
print(cust, command) |
|||
if command == 'sync': |
|||
r = cust.nas_sync_self() |
|||
if isinstance(r, Exception): |
|||
return 'ABONAPP SYNC ERROR: %s' % r |
|||
elif command == 'add': |
|||
cust.nas_add_self() |
|||
else: |
|||
return 'ABONAPP SYNC ERROR: Unknown command "%s"' % command |
|||
except Abon.DoesNotExist: |
|||
pass |
|||
except (LogicError, NasFailedResult, NasNetworkError, ConnectionResetError) as e: |
|||
return 'ABONAPP ERROR: %s' % e |
|||
|
|||
|
|||
@shared_task |
|||
def customer_nas_remove(customer_uid: int, ip_addr: str, speed: tuple, is_access: bool, nas_pk: int): |
|||
try: |
|||
if not isinstance(ip_addr, (str, int)): |
|||
ip_addr = str(ip_addr) |
|||
sq = SubnetQueue( |
|||
name="uid%d" % customer_uid, |
|||
network=ip_addr, |
|||
max_limit=speed, |
|||
is_access=is_access |
|||
) |
|||
nas = NASModel.objects.get(pk=nas_pk) |
|||
mngr = nas.get_nas_manager() |
|||
mngr.remove_user(sq) |
|||
except (ValueError, NasFailedResult, NasNetworkError, LogicError) as e: |
|||
return 'ABONAPP ERROR: %s' % e |
|||
except NASModel.DoesNotExist: |
|||
return 'NASModel.DoesNotExist id=%d' % nas_pk |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue