diff options
Diffstat (limited to 'ipa-client/ipaclient')
-rw-r--r-- | ipa-client/ipaclient/ipadiscovery.py | 21 | ||||
-rw-r--r-- | ipa-client/ipaclient/ntpconf.py | 22 |
2 files changed, 43 insertions, 0 deletions
diff --git a/ipa-client/ipaclient/ipadiscovery.py b/ipa-client/ipaclient/ipadiscovery.py index 3e31cad37..cd5f81bd5 100644 --- a/ipa-client/ipaclient/ipadiscovery.py +++ b/ipa-client/ipaclient/ipadiscovery.py @@ -316,6 +316,27 @@ class IPADiscovery: return servers + def ipadnssearchntp(self, tdomain): + servers = "" + rserver = "" + + qname = "_ntp._udp."+tdomain + # terminate the name + if not qname.endswith("."): + qname += "." + results = ipapython.dnsclient.query(qname, ipapython.dnsclient.DNS_C_IN, ipapython.dnsclient.DNS_T_SRV) + + for result in results: + if result.dns_type == ipapython.dnsclient.DNS_T_SRV: + rserver = result.rdata.server.rstrip(".") + if servers: + servers += "," + rserver + else: + servers = rserver + break + + return servers + def ipadnssearchkrb(self, tdomain): realm = None kdc = None diff --git a/ipa-client/ipaclient/ntpconf.py b/ipa-client/ipaclient/ntpconf.py index 8e151089c..e71692f40 100644 --- a/ipa-client/ipaclient/ntpconf.py +++ b/ipa-client/ipaclient/ntpconf.py @@ -132,3 +132,25 @@ def config_ntp(server_fqdn, fstore = None, sysstore = None): # Restart ntpd ipaservices.knownservices.ntpd.restart() + +def synconce_ntp(server_fqdn): + """ + Syncs time with specified server using ntpdate. + Primarily designed to be used before Kerberos setup + to get time following the KDC time + + Returns True if sync was successful + """ + ntpdate="/usr/sbin/ntpdate" + result = False + if os.path.exists(ntpdate): + # retry several times -- logic follows /etc/init.d/ntpdate + # implementation + for retry in range(0,3): + try: + ipautil.run([ntpdate, "-U", "ntp", "-s", "-b", server_fqdn]) + result = True + break + except: + pass + return result |