Browse Source

move mac address regexp from mydefs to djing

devel
bashmak 8 years ago
parent
commit
2277a59001
  1. 7
      abonapp/models.py
  2. 8
      devapp/forms.py
  3. 8
      devapp/views.py
  4. 8
      djing/__init__.py
  5. 6
      mydefs.py

7
abonapp/models.py

@ -1,5 +1,5 @@
from datetime import datetime from datetime import datetime
from typing import Optional, Union
from typing import Optional
from django.conf import settings from django.conf import settings
from django.core import validators from django.core import validators
@ -14,7 +14,8 @@ from django.utils.translation import ugettext_lazy as _, gettext
from accounts_app.models import UserProfile, MyUserManager, BaseAccount from accounts_app.models import UserProfile, MyUserManager, BaseAccount
from agent import Transmitter, AbonStruct, TariffStruct, NasFailedResult, NasNetworkError from agent import Transmitter, AbonStruct, TariffStruct, NasFailedResult, NasNetworkError
from group_app.models import Group from group_app.models import Group
from mydefs import MyGenericIPAddressField, ip2int, LogicError, ip_addr_regex
from mydefs import MyGenericIPAddressField, ip2int, LogicError
from djing import IP_ADDR_REGEX
from tariff_app.models import Tariff, PeriodicPay from tariff_app.models import Tariff, PeriodicPay
from bitfield import BitField from bitfield import BitField
@ -105,7 +106,7 @@ class ExtraFieldsModel(models.Model):
elif self.field_type == 'str': elif self.field_type == 'str':
return r'^[a-zA-ZА-Яа-я0-9]+$' return r'^[a-zA-ZА-Яа-я0-9]+$'
elif self.field_type == 'ipa': elif self.field_type == 'ipa':
return ip_addr_regex
return IP_ADDR_REGEX
def clean(self): def clean(self):
d = self.data d = self.data

8
devapp/forms.py

@ -1,11 +1,9 @@
# -*- coding: utf-8 -*-
from django import forms from django import forms
from django.utils.translation import ugettext as _
from django.utils.translation import gettext_lazy as _
from django.db import IntegrityError from django.db import IntegrityError
from . import models from . import models
from mydefs import ip_addr_regex
from djing import MAC_ADDR_REGEX
from djing import MAC_ADDR_REGEX, IP_ADDR_REGEX
class DeviceForm(forms.ModelForm): class DeviceForm(forms.ModelForm):
@ -22,7 +20,7 @@ class DeviceForm(forms.ModelForm):
exclude = ['map_dot', 'status'] exclude = ['map_dot', 'status']
widgets = { widgets = {
'ip_address': forms.TextInput(attrs={ 'ip_address': forms.TextInput(attrs={
'pattern': ip_addr_regex,
'pattern': IP_ADDR_REGEX,
'placeholder': '192.168.0.100' 'placeholder': '192.168.0.100'
}), }),
'comment': forms.TextInput(attrs={ 'comment': forms.TextInput(attrs={

8
devapp/views.py

@ -11,10 +11,10 @@ from django.contrib import messages
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.utils.translation import gettext_lazy as _, gettext from django.utils.translation import gettext_lazy as _, gettext
from easysnmp import EasySNMPTimeoutError, EasySNMPError from easysnmp import EasySNMPTimeoutError, EasySNMPError
from django.views.generic import DetailView, ListView
from django.views.generic import DetailView
from devapp.base_intr import DeviceImplementationError from devapp.base_intr import DeviceImplementationError
from mydefs import res_success, res_error, only_admins, ping, ip_addr_regex
from mydefs import res_success, res_error, only_admins, ping
from abonapp.models import Abon from abonapp.models import Abon
from group_app.models import Group from group_app.models import Group
from accounts_app.models import UserProfile from accounts_app.models import UserProfile
@ -24,7 +24,7 @@ from guardian.shortcuts import get_objects_for_user
from chatbot.telebot import send_notify from chatbot.telebot import send_notify
from chatbot.models import ChatException from chatbot.models import ChatException
from jsonview.decorators import json_view from jsonview.decorators import json_view
from djing import global_base_views
from djing import global_base_views, IP_ADDR_REGEX
from .models import Device, Port, DeviceDBException, DeviceMonitoringException from .models import Device, Port, DeviceDBException, DeviceMonitoringException
from .forms import DeviceForm, PortForm from .forms import DeviceForm, PortForm
from mydefs import safe_int from mydefs import safe_int
@ -528,7 +528,7 @@ class OnDeviceMonitoringEvent(global_base_views.AllowedSubnetMixin, global_base_
if dev_ip is None or dev_ip == '': if dev_ip is None or dev_ip == '':
return {'text': 'ip does not passed'} return {'text': 'ip does not passed'}
if not bool(re.match(ip_addr_regex, dev_ip)):
if not bool(re.match(IP_ADDR_REGEX, dev_ip)):
return {'text': 'ip address %s is not valid' % dev_ip} return {'text': 'ip address %s is not valid' % dev_ip}
device_down = Device.objects.filter(ip_address=dev_ip).first() device_down = Device.objects.filter(ip_address=dev_ip).first()

8
djing/__init__.py

@ -4,12 +4,18 @@ from netaddr import mac_unix, mac_eui48
MAC_ADDR_REGEX = r'^([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]{1,2})$' MAC_ADDR_REGEX = r'^([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]{1,2})$'
IP_ADDR_REGEX = r'^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' \
r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' \
r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' \
r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
class mac_linux(mac_unix): class mac_linux(mac_unix):
"""MAC format with zero-padded all upper-case hex and colon separated""" """MAC format with zero-padded all upper-case hex and colon separated"""
word_fmt = '%x' word_fmt = '%x'
def default_dialect(eui_obj=None):
def default_dialect():
return mac_linux return mac_linux

6
mydefs.py

@ -11,14 +11,8 @@ from django.shortcuts import redirect
from django.db import models from django.db import models
from django.conf import settings from django.conf import settings
PAGINATION_ITEMS_PER_PAGE = getattr(settings, 'PAGINATION_ITEMS_PER_PAGE', 10)
DEBUG = getattr(settings, 'DEBUG', False) DEBUG = getattr(settings, 'DEBUG', False)
ip_addr_regex = r'^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' \
r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' \
r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' \
r'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'
def ip2int(addr): def ip2int(addr):
try: try:

Loading…
Cancel
Save