summaryrefslogtreecommitdiffstats
path: root/keystone/common
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-02-14 22:26:49 +0000
committerGerrit Code Review <review@openstack.org>2012-02-14 22:26:49 +0000
commitfa9b949b5947dd1163e5321bef8a279fb90faa93 (patch)
treedec9b6a484c28279dfeae554a4c34f916a152537 /keystone/common
parent988a5850d1f1ea7f2db4b179a2fab22a878e7bfe (diff)
parent71436dbf188b3ff1c576fcd54b992530aac98b6c (diff)
Merge "Add token expiration" into redux
Diffstat (limited to 'keystone/common')
-rw-r--r--keystone/common/sql/core.py1
-rw-r--r--keystone/common/sql/migrate_repo/versions/001_add_initial_tables.py1
-rw-r--r--keystone/common/utils.py24
3 files changed, 26 insertions, 0 deletions
diff --git a/keystone/common/sql/core.py b/keystone/common/sql/core.py
index 2bd24f48..cb621865 100644
--- a/keystone/common/sql/core.py
+++ b/keystone/common/sql/core.py
@@ -26,6 +26,7 @@ ModelBase = declarative.declarative_base()
Column = sql.Column
String = sql.String
ForeignKey = sql.ForeignKey
+DateTime = sql.DateTime
# Special Fields
diff --git a/keystone/common/sql/migrate_repo/versions/001_add_initial_tables.py b/keystone/common/sql/migrate_repo/versions/001_add_initial_tables.py
index 5875817e..ae54b476 100644
--- a/keystone/common/sql/migrate_repo/versions/001_add_initial_tables.py
+++ b/keystone/common/sql/migrate_repo/versions/001_add_initial_tables.py
@@ -5,6 +5,7 @@ from keystone.common import sql
# these are to make sure all the models we care about are defined
import keystone.identity.backends.sql
+import keystone.token.backends.sql
import keystone.contrib.ec2.backends.sql
diff --git a/keystone/common/utils.py b/keystone/common/utils.py
index b5269bed..96e595bb 100644
--- a/keystone/common/utils.py
+++ b/keystone/common/utils.py
@@ -23,6 +23,7 @@ import hmac
import json
import subprocess
import sys
+import time
import urllib
import passlib.hash
@@ -35,6 +36,9 @@ CONF = config.CONF
config.register_int('crypt_strength', default=40000)
+ISO_TIME_FORMAT = '%Y-%m-%dT%H:%M:%SZ'
+
+
def import_class(import_str):
"""Returns a class from a string including module and class."""
mod_str, _sep, class_str = import_str.rpartition('.')
@@ -201,3 +205,23 @@ def check_output(*popenargs, **kwargs):
def git(*args):
return check_output(['git'] + list(args))
+
+
+def isotime(dt_obj):
+ """Format datetime object as ISO compliant string.
+
+ :param dt_obj: datetime.datetime object
+ :returns: string representation of datetime object
+
+ """
+ return dt_obj.strftime(ISO_TIME_FORMAT)
+
+
+def unixtime(dt_obj):
+ """Format datetime object as unix timestamp
+
+ :param dt_obj: datetime.datetime object
+ :returns: float
+
+ """
+ return time.mktime(dt_obj.utctimetuple())