Browse Source

in mikrotik nas. Continue syncing users with nas even if error is raised

devel
Dmitry Novikov 8 years ago
parent
commit
3c225da3c2
  1. 12
      nas_app/nas_managers/mod_mikrotik.py

12
nas_app/nas_managers/mod_mikrotik.py

@ -387,11 +387,17 @@ class MikrotikTransmitter(BaseTransmitter, ApiRos, metaclass=type('_ABC_Lazy_mcs
return return
if not isinstance(user.tariff, TariffStruct): if not isinstance(user.tariff, TariffStruct):
raise TypeError raise TypeError
self.add_queue(user)
try:
self.add_queue(user)
except NasFailedResult as e:
print('Error:', e)
for ip in user.ips: for ip in user.ips:
if not issubclass(ip.__class__, _BaseAddress): if not issubclass(ip.__class__, _BaseAddress):
raise TypeError raise TypeError
self.add_ip(LIST_USERS_ALLOWED, ip)
try:
self.add_ip(LIST_USERS_ALLOWED, ip)
except NasFailedResult as e:
print('Error:', e)
def remove_user(self, user: AbonStruct): def remove_user(self, user: AbonStruct):
self.remove_queue(user) self.remove_queue(user)
@ -478,6 +484,8 @@ class MikrotikTransmitter(BaseTransmitter, ApiRos, metaclass=type('_ABC_Lazy_mcs
def lease_free(self, user: AbonStruct, lease): def lease_free(self, user: AbonStruct, lease):
queue = self.find_queue('uid%d' % user.uid) queue = self.find_queue('uid%d' % user.uid)
if queue is None:
return
if len(queue.ips) > 1: if len(queue.ips) > 1:
if queue is not None: if queue is not None:
user.ips = tuple(i for i in user.ips if i != lease) user.ips = tuple(i for i in user.ips if i != lease)

Loading…
Cancel
Save