Last active
August 29, 2015 14:24
-
-
Save niedbalski/eb5a5cdbe4b5158bb4d7 to your computer and use it in GitHub Desktop.
update-node-dhcp-dns.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
""" | |
This scripts creates a MAAS DHCP lease, forces to write that dhcp lease on the | |
filesystem , and forces to write the dns zone reflecting the new lease. | |
Usage: | |
./{0} ip_addr mac_addr | |
""" | |
from maasserver.dns import change_dns_zones, write_full_dns_config | |
from maasserver.models import DHCPLease | |
from maasserver.models import NodeGroup | |
from maasserver.dhcp import configure_dhcp | |
import sys | |
def update_lease(nodegroup, ip, mac): | |
lease = DHCPLease(nodegroup=nodegroup, ip=ip, mac=mac) | |
lease.save() | |
def main(): | |
ip, mac = (sys.argv[1], sys.argv[2]) | |
for nodegroup in NodeGroup.objects.all(): | |
update_lease(nodegroup, ip, mac) | |
configure_dhcp(nodegroup) | |
change_dns_zones(NodeGroup.objects.all()) | |
write_full_dns_config(reload_retry=True, force=True) | |
if __name__ == "__main__": | |
if not len(sys.argv) >= 3: | |
print >> sys.stderr, __doc__.format(*sys.argv) | |
sys.exit(-1) | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment