47 lines
1.0 KiB
Python
Executable File
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)
|
|
|