Browse Source

fix signal

devel
Dmitry Novikov 7 years ago
parent
commit
af8735c654
  1. 23
      devapp/dev_types.py

23
devapp/dev_types.py

@ -8,7 +8,7 @@ from transliterate import translit
from django.utils.translation import gettext_lazy as _, gettext from django.utils.translation import gettext_lazy as _, gettext
from django.conf import settings from django.conf import settings
from djing.lib import RuTimedelta, safe_int
from djing.lib import RuTimedelta, safe_int, safe_float
from devapp.expect_scripts import register_f601_onu, register_f660_onu, ExpectValidationError, OnuZteRegisterError from devapp.expect_scripts import register_f601_onu, register_f660_onu, ExpectValidationError, OnuZteRegisterError
from .base_intr import ( from .base_intr import (
DevBase, SNMPBaseWorker, BasePort, DeviceImplementationError, DevBase, SNMPBaseWorker, BasePort, DeviceImplementationError,
@ -181,14 +181,14 @@ class OLTDevice(DevBase, SNMPBaseWorker):
for nm in nms: for nm in nms:
n = int(nm) n = int(nm)
status = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.26.%d' % n) status = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.26.%d' % n)
signal = self.get_item('.1.3.6.1.4.1.3320.101.10.5.1.5.%d' % n)
signal = safe_float(self.get_item('.1.3.6.1.4.1.3320.101.10.5.1.5.%d' % n))
onu = ONUdev( onu = ONUdev(
num=n, num=n,
name=self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % n), name=self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % n),
status=True if status == '3' else False, status=True if status == '3' else False,
mac=self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.3.%d' % n), mac=self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.3.%d' % n),
speed=0, speed=0,
signal=int(signal or 0),
signal=signal / 10 if signal else '',
snmp_worker=self) snmp_worker=self)
res.append(onu) res.append(onu)
except EasySNMPTimeoutError as e: except EasySNMPTimeoutError as e:
@ -262,17 +262,16 @@ class OnuDevice(DevBase, SNMPBaseWorker):
return return
try: try:
status = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.26.%d' % num) status = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.26.%d' % num)
signal = self.get_item('.1.3.6.1.4.1.3320.101.10.5.1.5.%d' % num)
signal = safe_float(self.get_item('.1.3.6.1.4.1.3320.101.10.5.1.5.%d' % num))
distance = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.27.%d' % num) distance = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.27.%d' % num)
mac = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.3.%d' % num) mac = self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.3.%d' % num)
if mac is not None: if mac is not None:
mac = ':'.join('%x' % ord(i) for i in mac) mac = ':'.join('%x' % ord(i) for i in mac)
# uptime = self.get_item('.1.3.6.1.2.1.2.2.1.9.%d' % num) # uptime = self.get_item('.1.3.6.1.2.1.2.2.1.9.%d' % num)
signal = safe_int(signal)
if status is not None and status.isdigit(): if status is not None and status.isdigit():
return { return {
'status': status, 'status': status,
'signal': signal / 10 if signal != 0 else 0,
'signal': signal / 10 if signal else '',
'name': self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % num), 'name': self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % num),
'mac': mac, 'mac': mac,
'distance': int(distance) / 10 if distance.isdigit() else 0 'distance': int(distance) / 10 if distance.isdigit() else 0
@ -369,7 +368,7 @@ class EltexSwitch(DLinkDevice):
return DevBase.reboot(self, save_before_reboot) return DevBase.reboot(self, save_before_reboot)
def conv_signal(lvl: int) -> float:
def conv_zte_signal(lvl: int) -> float:
if lvl == 65535: return 0.0 if lvl == 65535: return 0.0
r = 0 r = 0
if 0 < lvl < 30000: if 0 < lvl < 30000:
@ -394,7 +393,7 @@ class Olt_ZTE_C320(OLTDevice):
onu_types = self.get_list_keyval('.1.3.6.1.4.1.3902.1012.3.28.1.1.1.%d' % fiber_num) onu_types = self.get_list_keyval('.1.3.6.1.4.1.3902.1012.3.28.1.1.1.%d' % fiber_num)
onu_ports = self.get_list('.1.3.6.1.4.1.3902.1012.3.28.1.1.2.%d' % fiber_num) onu_ports = self.get_list('.1.3.6.1.4.1.3902.1012.3.28.1.1.2.%d' % fiber_num)
onu_signals = self.get_list('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.10.%d' % fiber_num)
onu_signals = safe_int(self.get_list('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.10.%d' % fiber_num))
# Real sn in last 3 octets # Real sn in last 3 octets
onu_sns = self.get_list('.1.3.6.1.4.1.3902.1012.3.28.1.1.5.%d' % fiber_num) onu_sns = self.get_list('.1.3.6.1.4.1.3902.1012.3.28.1.1.5.%d' % fiber_num)
@ -402,7 +401,7 @@ class Olt_ZTE_C320(OLTDevice):
onu_list = ({ onu_list = ({
'onu_type': onu_type_num[0], 'onu_type': onu_type_num[0],
'onu_port': onu_port, 'onu_port': onu_port,
'onu_signal': conv_signal(safe_int(onu_signal)),
'onu_signal': conv_zte_signal(onu_signal),
'onu_sn': onu_prefix + ''.join('%.2X' % ord(i) for i in onu_sn[-4:]), # Real sn in last 4 octets, 'onu_sn': onu_prefix + ''.join('%.2X' % ord(i) for i in onu_sn[-4:]), # Real sn in last 4 octets,
'snmp_extra': "%d.%d" % (fiber_num, safe_int(onu_type_num[1])), 'snmp_extra': "%d.%d" % (fiber_num, safe_int(onu_type_num[1])),
} for onu_type_num, onu_port, onu_signal, onu_sn, onu_prefix in zip( } for onu_type_num, onu_port, onu_signal, onu_sn, onu_prefix in zip(
@ -494,7 +493,7 @@ class ZteOnuDevice(OnuDevice):
fiber_num, onu_num = int(fiber_num), int(onu_num) fiber_num, onu_num = int(fiber_num), int(onu_num)
fiber_addr = '%d.%d' % (fiber_num, onu_num) fiber_addr = '%d.%d' % (fiber_num, onu_num)
status = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.1.%s.1' % fiber_addr) status = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.1.%s.1' % fiber_addr)
signal = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.10.%s.1' % fiber_addr)
signal = safe_int(self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.10.%s.1' % fiber_addr))
distance = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.18.%s.1' % fiber_addr) distance = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.12.1.1.18.%s.1' % fiber_addr)
ip_addr = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.16.1.1.10.%s' % fiber_addr) ip_addr = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.16.1.1.10.%s' % fiber_addr)
vlans = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.15.100.1.1.7.%s.1.1' % fiber_addr) vlans = self.get_item('.1.3.6.1.4.1.3902.1012.3.50.15.100.1.1.7.%s.1.1' % fiber_addr)
@ -507,8 +506,8 @@ class ZteOnuDevice(OnuDevice):
return { return {
'status': status, 'status': status,
'signal': conv_signal(safe_int(signal)),
'distance': safe_int(distance) / 10,
'signal': conv_zte_signal(signal),
'distance': safe_float(distance) / 10,
'ip_addr': ip_addr, 'ip_addr': ip_addr,
'vlans': vlans, 'vlans': vlans,
'serial': sn, 'serial': sn,

Loading…
Cancel
Save