Files
mdb/scripts/dhcp_synchronizer.py
T

47 lines
1.0 KiB
Python
Executable File

#!/usr/bin/env python
# coding: utf-8
import os,sys
from commands import getstatusoutput
from django.core.management import setup_environ
from django.core.mail import mail_admins
from dns_mdb import settings
setup_environ(settings)
from mdb.models import *
debugging = False
dhcpd_init = "/etc/init.d/dhcp3-server %s"
dhcpd_config = "/etc/dhcp3/dhcpd.conf"
#dhcpd_config = "dhcpd.conf"
config = DhcpConfig.objects.filter(name = "default").get()
if config.serial == config.active_serial and not debugging:
sys.exit(0)
dhcpd_file = open(dhcpd_config , "w")
dhcpd_file.write(config.dhcpd_configuration())
dhcpd_file.close()
config.active_serial = config.serial
config.save()
status, output = getstatusoutput(dhcpd_init % "restart")
if status != 0:
mail_admins("Failed to restart dhcp3-server", \
"Failed to restart dhcp3-server, plase inspect...\n\n" + output)
sys.exit(1)
else:
mail_admins("Update dhcpd configuration success!", \
"Updated dhcpd configuration to serial %d." % \
config.active_serial)
sys.exit(0)