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

5
agent/mod_mikrotik.py

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

10
djing/__init__.py

@ -1,3 +1,5 @@
import os
import re
import importlib
from netaddr import mac_unix, mac_eui48
@ -41,3 +43,11 @@ else:
__version__ = _dist.version
VERSION = __version__ # synonym
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 struct
from collections import Iterator
import os
from functools import wraps
from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.shortcuts import redirect
@ -118,11 +117,6 @@ def only_admins(fn):
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
class RuTimedelta(timedelta):
def __new__(cls, tm):

Loading…
Cancel
Save