bashmak 8 years ago
parent
commit
37ae0636ab
  1. 27
      devapp/dev_types.py

27
devapp/dev_types.py

@ -116,6 +116,9 @@ class DLinkDevice(DevBase, SNMPBaseWorker):
device = self.db_instance device = self.db_instance
return plain_ip_device_mon_template(device, *args, **kwargs) return plain_ip_device_mon_template(device, *args, **kwargs)
def register_device(self):
pass
class ONUdev(BasePort): class ONUdev(BasePort):
def __init__(self, num, name, status, mac, speed, signal, snmp_worker): def __init__(self, num, name, status, mac, speed, signal, snmp_worker):
@ -197,6 +200,9 @@ class OLTDevice(DevBase, SNMPBaseWorker):
device = self.db_instance device = self.db_instance
return plain_ip_device_mon_template(device) return plain_ip_device_mon_template(device)
def register_device(self):
pass
class OnuDevice(DevBase, SNMPBaseWorker): class OnuDevice(DevBase, SNMPBaseWorker):
def __init__(self, dev_instance): def __init__(self, dev_instance):
@ -252,13 +258,14 @@ class OnuDevice(DevBase, SNMPBaseWorker):
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 = ':'.join('%x' % ord(i) for i in self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.3.%d' % num)) mac = ':'.join('%x' % ord(i) for i in self.get_item('.1.3.6.1.4.1.3320.101.10.1.1.3.%d' % num))
# 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)
return {
'status': status,
'signal': int(signal) / 10 if signal != 'NOSUCHINSTANCE' else 0,
'name': self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % num),
'mac': mac,
'distance': int(distance) / 10 if distance != 'NOSUCHINSTANCE' else 0
}
if status.isdigit():
return {
'status': status,
'signal': int(signal) / 10 if signal.isdigit() else 0,
'name': self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % num),
'mac': mac,
'distance': int(distance) / 10 if distance.isdigit() else 0
}
except EasySNMPTimeoutError as e: except EasySNMPTimeoutError as e:
return {'err': "%s: %s" % (_('ONU not connected'), e)} return {'err': "%s: %s" % (_('ONU not connected'), e)}
@ -294,6 +301,9 @@ class OnuDevice(DevBase, SNMPBaseWorker):
) )
return '\n'.join(i for i in r if i) return '\n'.join(i for i in r if i)
def register_device(self):
pass
class EltexPort(BasePort): class EltexPort(BasePort):
def __init__(self, snmp_worker, *args, **kwargs): def __init__(self, snmp_worker, *args, **kwargs):
@ -505,7 +515,8 @@ class ZteOnuDevice(OnuDevice):
if ip: if ip:
mac = str(device.mac_addr).encode() mac = str(device.mac_addr).encode()
sn = b"ZTEG%s" % b''.join(mac.split(b':')[-4:]).upper() sn = b"ZTEG%s" % b''.join(mac.split(b':')[-4:]).upper()
# FIXME: Store login & password for device somewhere
register_onu_ZTE_F660( register_onu_ZTE_F660(
olt_ip=ip, onu_sn=sn, login_passwd=(b'admin', b'2ekc3'),
olt_ip=ip, onu_sn=sn, login_passwd=(b'admin', device.man_passw.encode()),
onu_mac=mac onu_mac=mac
) )
Loading…
Cancel
Save