diff options
author | Sumit Bose <sbose@redhat.com> | 2011-10-13 12:01:57 +0200 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2011-11-23 00:24:07 -0500 |
commit | d24dda2fe3e188b4904deb184cc098d979e7f611 (patch) | |
tree | 4e470630173e84bcc564de049437687813389f08 /ipaserver/install/adtrustinstance.py | |
parent | fbdeda1da0349792ebde6e1756b0652832a67018 (diff) | |
download | freeipa-d24dda2fe3e188b4904deb184cc098d979e7f611.tar.gz freeipa-d24dda2fe3e188b4904deb184cc098d979e7f611.tar.xz freeipa-d24dda2fe3e188b4904deb184cc098d979e7f611.zip |
Add DNS service records for Windows
https://fedorahosted.org/freeipa/ticket/1939
Diffstat (limited to 'ipaserver/install/adtrustinstance.py')
-rw-r--r-- | ipaserver/install/adtrustinstance.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/ipaserver/install/adtrustinstance.py b/ipaserver/install/adtrustinstance.py index f655b2004..96f99dc9b 100644 --- a/ipaserver/install/adtrustinstance.py +++ b/ipaserver/install/adtrustinstance.py @@ -25,6 +25,7 @@ import tempfile import installutils from ipaserver import ipaldap from ipaserver.install.dsinstance import realm_to_serverid +from ipaserver.install.bindinstance import get_rr, add_rr, del_rr from ipalib import errors from ipapython import sysrestore from ipapython import ipautil @@ -245,6 +246,29 @@ class ADTRUSTInstance(service.Service): except ipautil.CalledProcessError, e: root_logger.critical("Failed to add key for %s" % cifs_principal) + def __add_dns_service_records(self): + zone = self.domain_name + ipa_srv_rec = ("_ldap._tcp", "_kerberos._tcp", "_kerberos._udp") + win_srv_suffix = (".Default-First-Site-Name._sites.dc._msdcs", + ".dc._msdcs") + + for srv in ipa_srv_rec: + ipa_rdata = get_rr(zone, srv, "SRV") + if not ipa_rdata: + print "Canot find %s service record in locally, please add " \ + "%s.Default-First-Site-Name._sites.dc._msdcs and " \ + "%s.dc._msdcs for the %s DNS zone to your DNS server" % \ + (srv, srv, srv, zone) + else: + for suff in win_srv_suffix: + win_srv = srv+suff + win_rdata = get_rr(zone, win_srv, "SRV") + if win_rdata: + for rec in win_rdata: + del_rr(zone, win_srv, "SRV", rec) + for rec in ipa_rdata: + add_rr(zone, win_srv, "SRV", rec) + def __start(self): try: self.start() @@ -311,6 +335,7 @@ class ADTRUSTInstance(service.Service): self.step("Adding cifs Kerberos principal", self.__setup_principal) self.step("Adding admin(group) SIDs", self.__add_admin_sids) self.step("configuring smbd to start on boot", self.__enable) + self.step("adding special DNS service records", self.__add_dns_service_records) self.step("starting smbd", self.__start) self.start_creation("Configuring smbd:") |