Browse Source

Merge branch 'devel' of https://github.com/nerosketch/djing into devel

# Conflicts:
#	abonapp/models.py
#	abonapp/views.py
devel
bashmak 9 years ago
parent
commit
0ee727505e
  1. 7
      agent/core.py
  2. 18
      agent/mod_mikrotik.py
  3. 2
      chatbot/telebot.py
  4. 23
      devapp/views.py
  5. 2
      dialing_app/views.py

7
agent/core.py

@ -121,5 +121,12 @@ class BaseTransmitter(metaclass=ABCMeta):
def sync_nas(self, users_from_db):
list_for_add, list_for_del = self._diff_users(users_from_db)
print('FOR DELETE')
for ld in list_for_del:
print(ld)
print('FOR ADD')
for la in list_for_add:
print(la)
self.remove_user_range( list_for_del )
self.add_user_range( list_for_add )

18
agent/mod_mikrotik.py

@ -11,7 +11,7 @@ from djing.settings import DEBUG
import re
#DEBUG=False
#DEBUG=True
LIST_USERS_ALLOWED = 'DjingUsersAllowed'
LIST_USERS_BLOCKED = 'DjingUsersBlocked'
@ -236,7 +236,7 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta):
assert isinstance(user, AbonStruct)
q = self.find('uid%d' % user.uid)
if q is not None:
return self._exec_cmd(['/queue/simple/remove', '=.id=*' + str(q.sid)])
return self._exec_cmd(['/queue/simple/remove', '=.id=' + getattr(q, 'queue_id', '')])
def remove_range(self, q_ids):
if q_ids is not None and len(q_ids) > 0:
@ -251,13 +251,13 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta):
# не нашли запись в шейпере об абоненте, добавим
return self.add(user)
else:
mk_id = queue.sid
mk_id = getattr(queue, 'queue_id', '')
# обновляем шейпер абонента
return self._exec_cmd(['/queue/simple/set', '=.id=*' + mk_id,
return self._exec_cmd(['/queue/simple/set', '=.id=' + mk_id,
'=name=uid%d' % user.uid,
'=max-limit=%.3fM/%.3fM' % (user.tariff.speedOut, user.tariff.speedIn),
# FIXME: тут в разных микротиках или =target-addresses или =target
'=target=%s' % user.ip.get_str(),
'=target=%s' % str(user.ip),
'=queue=MikroBILL_SFQ/MikroBILL_SFQ',
'=burst-time=1/1'
])
@ -285,7 +285,7 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta):
self.add(user)
return self.disable(user)
else:
return self._exec_cmd(['/queue/simple/disable', '=.id=*' + q.sid])
return self._exec_cmd(['/queue/simple/disable', '=.id=*' + getattr(q, 'queue_id', '')])
def enable(self, user):
assert isinstance(user, AbonStruct)
@ -294,7 +294,7 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta):
self.add(user)
self.enable(user)
else:
return self._exec_cmd(['/queue/simple/enable', '=.id=*' + q.sid])
return self._exec_cmd(['/queue/simple/enable', '=.id=*' + getattr(q, 'queue_id', '')])
class IpAddressListObj(IpStruct):
@ -390,8 +390,6 @@ class MikrotikTransmitter(QueueManager, IpAddressListManager):
assert isinstance(user.ip, IpStruct)
if user.tariff is None or not isinstance(user.tariff, TariffStruct):
return
if not user.is_access():
return
QueueManager.add(self, user)
IpAddressListManager.add(self, LIST_USERS_ALLOWED, user.ip, ip_timeout)
# удаляем из списка заблокированных абонентов
@ -441,7 +439,7 @@ class MikrotikTransmitter(QueueManager, IpAddressListManager):
if queue is None:
QueueManager.add(self, user)
return
if queue.abon != user:
if queue != user:
QueueManager.update(self, user)
def ping(self, host, count=10):

2
chatbot/telebot.py

@ -113,7 +113,7 @@ class DjingTelebot(helper.ChatHandler):
# пингуем адрес
def ping(self, ip=None):
if ip is None:
self._question("Let's ping, write ip. It will be necessary to wait 10 seconds", self.ping)
self._question(_("Let's ping, write ip. It will be necessary to wait 10 seconds"), self.ping)
return
try:
socket.inet_aton(ip)

23
devapp/views.py

@ -317,18 +317,21 @@ def toggle_port(request, did, portid, status=0):
portid = int(portid)
status = int(status)
dev = get_object_or_404(Device, id=int(did))
if ping(dev.ip_address):
if dev.man_passw:
manager = dev.get_manager_klass()(dev.ip_address, dev.man_passw)
ports = manager.get_ports()
if status:
ports[portid-1].enable()
try:
if ping(dev.ip_address):
if dev.man_passw:
manager = dev.get_manager_klass()(dev.ip_address, dev.man_passw)
ports = manager.get_ports()
if status:
ports[portid-1].enable()
else:
ports[portid-1].disable()
else:
ports[portid-1].disable()
messages.warning(request, _('Not Set snmp device password'))
else:
messages.warning(request, _('Not Set snmp device password'))
else:
messages.error(request, _('Dot was not pinged'))
messages.error(request, _('Dot was not pinged'))
except EasySNMPTimeoutError:
messages.error(request, _('wait for a reply from the SNMP Timeout'))
return redirect('devapp:view', dev.user_group.pk if dev.user_group is not None else 0, did)

2
dialing_app/views.py

@ -11,7 +11,7 @@ from .models import AsteriskCDR
@login_required
@only_admins
def home(request):
logs = AsteriskCDR.objects.all()
logs = AsteriskCDR.objects.order_by('-calldate')
logs = pag_mn(request, logs)
return render(request, 'index.html', {
'logs': logs

Loading…
Cancel
Save