summaryrefslogtreecommitdiffstats
path: root/ipa-client/ipaclient
diff options
context:
space:
mode:
Diffstat (limited to 'ipa-client/ipaclient')
-rw-r--r--ipa-client/ipaclient/ipadiscovery.py21
-rw-r--r--ipa-client/ipaclient/ntpconf.py22
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