You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
857 B
24 lines
857 B
#!/usr/bin/env python3
|
|
from typing import Iterable
|
|
from subprocess import run
|
|
|
|
|
|
def onu_register(devices: Iterable):
|
|
with open('/etc/dhcp/macs.conf', 'w') as f:
|
|
for dev in devices:
|
|
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'))
|