Browse Source

moved ping func to djing

devel
bashmak 8 years ago
parent
commit
e5871ad8d6
  1. 3
      abonapp/views.py
  2. 5
      agent/mod_mikrotik.py
  3. 10
      djing/__init__.py
  4. 6
      mydefs.py

3
abonapp/views.py

@ -27,6 +27,7 @@ from group_app.models import Group
from guardian.shortcuts import get_objects_for_user, assign_perm from guardian.shortcuts import get_objects_for_user, assign_perm
from guardian.decorators import permission_required_or_403 as permission_required from guardian.decorators import permission_required_or_403 as permission_required
from djing.global_base_views import OrderingMixin, BaseListWithFiltering from djing.global_base_views import OrderingMixin, BaseListWithFiltering
from djing import ping
PAGINATION_ITEMS_PER_PAGE = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10) PAGINATION_ITEMS_PER_PAGE = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
@ -696,7 +697,7 @@ def abon_ping(request):
tm = Transmitter() tm = Transmitter()
ping_result = tm.ping(ip) ping_result = tm.ping(ip)
if ping_result is None: if ping_result is None:
if mydefs.ping(ip, 10):
if ping(ip, 10):
status = True status = True
text = '<span class="glyphicon glyphicon-ok"></span> %s' % _('ping ok') text = '<span class="glyphicon glyphicon-ok"></span> %s' % _('ping ok')
else: else:

5
agent/mod_mikrotik.py

@ -1,15 +1,16 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import re
import socket import socket
import binascii import binascii
from abc import ABCMeta from abc import ABCMeta
from hashlib import md5 from hashlib import md5
from typing import List, Iterable, Optional, Tuple from typing import List, Iterable, Optional, Tuple
from .core import BaseTransmitter, NasFailedResult, NasNetworkError from .core import BaseTransmitter, NasFailedResult, NasNetworkError
from mydefs import ping, singleton
from mydefs import singleton
from .structs import TariffStruct, AbonStruct, IpStruct, VectorAbon, VectorTariff from .structs import TariffStruct, AbonStruct, IpStruct, VectorAbon, VectorTariff
from . import settings as local_settings from . import settings as local_settings
from django.conf import settings from django.conf import settings
import re
from djing import ping
DEBUG = getattr(settings, 'DEBUG', False) DEBUG = getattr(settings, 'DEBUG', False)

10
djing/__init__.py

@ -1,3 +1,5 @@
import os
import re
import importlib import importlib
from netaddr import mac_unix, mac_eui48 from netaddr import mac_unix, mac_eui48
@ -41,3 +43,11 @@ else:
__version__ = _dist.version __version__ = _dist.version
VERSION = __version__ # synonym VERSION = __version__ # synonym
default_app_config = 'abonapp.apps.AbonappConfig' default_app_config = 'abonapp.apps.AbonappConfig'
def ping(ip_addr: str, count=1):
if re.match(IP_ADDR_REGEX, ip_addr):
response = os.system("`which ping` -4Anq -c%d -W1 %s > /dev/null" % (count, ip_addr))
return True if response == 0 else False
else:
return False

6
mydefs.py

@ -4,7 +4,6 @@ from json import dumps
import socket import socket
import struct import struct
from collections import Iterator from collections import Iterator
import os
from functools import wraps from functools import wraps
from django.http import HttpResponse, Http404, HttpResponseRedirect from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.shortcuts import redirect from django.shortcuts import redirect
@ -118,11 +117,6 @@ def only_admins(fn):
return wrapped return wrapped
def ping(hostname: str, count=1):
response = os.system("`which ping` -4Anq -c%d -W1 %s > /dev/null" % (count, hostname))
return True if response == 0 else False
# Русифицированный вывод timedelta # Русифицированный вывод timedelta
class RuTimedelta(timedelta): class RuTimedelta(timedelta):
def __new__(cls, tm): def __new__(cls, tm):

Loading…
Cancel
Save