From d67e8be613fdbeacd4ae63fe8bbc94cd4f364ae7 Mon Sep 17 00:00:00 2001 From: www-data Date: Mon, 4 Jun 2018 10:41:48 +0300 Subject: [PATCH] continue second operation even if raised en exception in first --- agent/mod_mikrotik.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/agent/mod_mikrotik.py b/agent/mod_mikrotik.py index 03adb24..7d722ed 100644 --- a/agent/mod_mikrotik.py +++ b/agent/mod_mikrotik.py @@ -11,11 +11,12 @@ from .structs import TariffStruct, AbonStruct, IpStruct, VectorAbon, VectorTarif from . import settings as local_settings from django.conf import settings from djing import ping +from agent.core import NasNetworkError, NasFailedResult DEBUG = getattr(settings, 'DEBUG', False) LIST_USERS_ALLOWED = 'DjingUsersAllowed' -LIST_USERS_BLOCKED = 'DjingUsersBlocked' +#LIST_USERS_BLOCKED = 'DjingUsersBlocked' @singleton @@ -421,12 +422,14 @@ class MikrotikTransmitter(QueueManager, IpAddressListManager): return if not isinstance(user.tariff, TariffStruct): raise TypeError - QueueManager.add(self, user) - IpAddressListManager.add(self, LIST_USERS_ALLOWED, user.ip) - # remove user from denied user list - firewall_ip_list_obj = IpAddressListManager.find(self, user.ip, LIST_USERS_BLOCKED) - if len(firewall_ip_list_obj) > 1: - IpAddressListManager.remove(self, firewall_ip_list_obj[0]['=.id']) + try: + QueueManager.add(self, user) + except (NasNetworkError, NasFailedResult) as e: + print('Error:', e) + try: + IpAddressListManager.add(self, LIST_USERS_ALLOWED, user.ip) + except (NasNetworkError, NasFailedResult) as e: + print('Error:', e) def remove_user(self, user: AbonStruct): QueueManager.remove(self, user)