summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-01-23 21:07:25 +0000
committerGerrit Code Review <review@openstack.org>2013-01-23 21:07:25 +0000
commite59f763b2a4325b583a40afe29b95e41bd0e5a5e (patch)
tree8346012d07de817d3456f30ee22355ecb47e4022
parent886f9811ab95bce82f088de4178c0993450c5cea (diff)
parenta956f7aab04f9914870980cb3acb0d5bcafbe1f0 (diff)
downloadoslo-e59f763b2a4325b583a40afe29b95e41bd0e5a5e.tar.gz
oslo-e59f763b2a4325b583a40afe29b95e41bd0e5a5e.tar.xz
oslo-e59f763b2a4325b583a40afe29b95e41bd0e5a5e.zip
Merge "Import timeutils.is_soon from keystoneclient"
-rw-r--r--openstack/common/timeutils.py13
-rw-r--r--tests/unit/test_timeutils.py6
2 files changed, 19 insertions, 0 deletions
diff --git a/openstack/common/timeutils.py b/openstack/common/timeutils.py
index 0f34608..572c829 100644
--- a/openstack/common/timeutils.py
+++ b/openstack/common/timeutils.py
@@ -162,3 +162,16 @@ def delta_seconds(before, after):
except AttributeError:
return ((delta.days * 24 * 3600) + delta.seconds +
float(delta.microseconds) / (10 ** 6))
+
+
+def is_soon(dt, window):
+ """
+ Determines if time is going to happen in the next window seconds.
+
+ :params dt: the time
+ :params window: minimum seconds to remain to consider the time not soon
+
+ :return: True if expiration is within the given duration
+ """
+ soon = (utcnow() + datetime.timedelta(seconds=window))
+ return normalize_time(dt) < soon
diff --git a/tests/unit/test_timeutils.py b/tests/unit/test_timeutils.py
index 1407f29..3ad07a8 100644
--- a/tests/unit/test_timeutils.py
+++ b/tests/unit/test_timeutils.py
@@ -272,3 +272,9 @@ class TestIso8601Time(unittest.TestCase):
dtn = datetime.datetime(2011, 2, 14, 19, 53, 07)
naive = timeutils.normalize_time(dtn)
self.assertTrue(naive < dt)
+
+ def test_is_soon(self):
+ expires = timeutils.utcnow() + datetime.timedelta(minutes=5)
+ self.assertFalse(timeutils.is_soon(expires, 120))
+ self.assertTrue(timeutils.is_soon(expires, 300))
+ self.assertTrue(timeutils.is_soon(expires, 600))