Hello,

DNSSEC: Store time & date key metadata in UTC.

OpenDNSSEC stores key metadata in local time zone but BIND needs
timestamps in UTC. UTC will be stored in LDAP.

https://fedorahosted.org/freeipa/ticket/4657

-- 
Petr^2 Spacek
From 8a0ca3dbcfa2b98c21e487cfd7c9ca68c814adc2 Mon Sep 17 00:00:00 2001
From: Petr Spacek <pspa...@redhat.com>
Date: Tue, 30 Jun 2015 14:04:13 +0200
Subject: [PATCH] DNSSEC: Store time & date key metadata in UTC.

OpenDNSSEC stores key metadata in local time zone but BIND needs
timestamps in UTC. UTC will be stored in LDAP.

https://fedorahosted.org/freeipa/ticket/4657
---
 daemons/dnssec/ipa-ods-exporter | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/daemons/dnssec/ipa-ods-exporter b/daemons/dnssec/ipa-ods-exporter
index 03dcfbc8378cccf4b985d5f2853f072aac41d157..4c6649c2fbfe77e563ab70276a92b59201fcbace 100755
--- a/daemons/dnssec/ipa-ods-exporter
+++ b/daemons/dnssec/ipa-ods-exporter
@@ -17,6 +17,7 @@ Purpose of this replacement is to upload keys generated by OpenDNSSEC to LDAP.
 
 from binascii import hexlify
 from datetime import datetime
+import dateutil.tz
 import dns.dnssec
 import fcntl
 import logging
@@ -80,7 +81,12 @@ def datetime2ldap(dt):
     return dt.strftime(ipalib.constants.LDAP_GENERALIZED_TIME_FORMAT)
 
 def sql2datetime(sql_time):
-    return datetime.strptime(sql_time, "%Y-%m-%d %H:%M:%S")
+    """Convert SQL date format from local time zone into UTC."""
+    localtz = dateutil.tz.tzlocal()
+    localtime = datetime.strptime(sql_time, "%Y-%m-%d %H:%M:%S").replace(
+                                  tzinfo=localtz)
+    utctz = dateutil.tz.gettz('UTC')
+    return localtime.astimezone(utctz)
 
 def sql2datetimes(row):
     row2key_map = {'generate': 'idnsSecKeyCreated',
-- 
2.1.0

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to