summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/compute/model.py5
-rw-r--r--nova/tests/model_unittest.py11
2 files changed, 16 insertions, 0 deletions
diff --git a/nova/compute/model.py b/nova/compute/model.py
index 7335d2c79..bae93b6c1 100644
--- a/nova/compute/model.py
+++ b/nova/compute/model.py
@@ -288,6 +288,11 @@ class SessionToken(datastore.BasicModel):
expires = time + diff
self['expiry'] = expires.strftime(utils.TIME_FORMAT)
+ def is_expired(self):
+ now = datetime.datetime.utcnow()
+ expires = utils.parse_isotime(self['expiry'])
+ return expires <= now
+
if __name__ == "__main__":
import doctest
diff --git a/nova/tests/model_unittest.py b/nova/tests/model_unittest.py
index 10d3016f8..88ba5e6e9 100644
--- a/nova/tests/model_unittest.py
+++ b/nova/tests/model_unittest.py
@@ -279,3 +279,14 @@ class ModelTestCase(test.TrialTestCase):
instance = yield model.SessionToken.generate("testuser")
inst = model.SessionToken.lookup(instance.identifier)
self.assert_(inst)
+
+ @defer.inlineCallbacks
+ def test_session_token_is_expired_when_expired(self):
+ instance = yield model.SessionToken.generate("testuser")
+ instance['expiry'] = datetime.utcnow().strftime(utils.TIME_FORMAT)
+ self.assert_(instance.is_expired())
+
+ @defer.inlineCallbacks
+ def test_session_token_is_expired_when_not_expired(self):
+ instance = yield model.SessionToken.generate("testuser")
+ self.assertFalse(instance.is_expired())