Browse Source

Add support different dhcp devices in same group

devel
bashmak 8 years ago
parent
commit
387558544c
  1. 5
      devapp/dev_types.py
  2. 18
      devapp/onu_register.py

5
devapp/dev_types.py

@ -61,6 +61,7 @@ class DLinkPort(BasePort):
class DLinkDevice(DevBase, SNMPBaseWorker):
has_attachable_to_subscriber = True
tech_code = 'dlink_sw'
is_use_device_port = True
def __init__(self, dev_instance):
@ -201,6 +202,7 @@ class OLTDevice(DevBase, SNMPBaseWorker):
class OnuDevice(DevBase, SNMPBaseWorker):
has_attachable_to_subscriber = True
tech_code = 'bdcom_onu'
is_use_device_port = False
def __init__(self, dev_instance):
@ -319,6 +321,7 @@ class EltexPort(BasePort):
class EltexSwitch(DLinkDevice):
has_attachable_to_subscriber = True
tech_code = 'eltex_sw'
is_use_device_port = False
@staticmethod
@ -427,6 +430,8 @@ class Olt_ZTE_C320(OLTDevice):
class ZteOnuDevice(OnuDevice):
tech_code = 'zte_onu'
@staticmethod
def description():
return _('ZTE PON ONU')

18
devapp/onu_register.py

@ -6,9 +6,19 @@ from subprocess import run
def onu_register(devices: Iterable):
with open('/etc/dhcp/macs.conf', 'w') as f:
for dev in devices:
if dev.has_attachable_to_subscriber() and dev.mac_addr is not None:
f.write('subclass "%(code)s" "%(mac)s";\n' % {
'code': dev.group.code,
'mac': dev.mac_addr
if not dev.has_attachable_to_subscriber() or dev.mac_addr is None:
continue
group_code = dev.group.code
if not group_code:
continue
try:
mn = dev.get_manager_klass()
dev_code = mn.tech_code
f.write('subclass "%(group_code)s.%(dev_code)s" "%(mac)s";\n' % {
'group_code': group_code,
'mac': dev.mac_addr,
'dev_code': dev_code
})
except TypeError:
continue
run(('/usr/bin/sudo', 'systemctl', 'restart', 'isc-dhcp-server.service'))
Loading…
Cancel
Save