diff options
author | Jamie Lennox <jamielennox@redhat.com> | 2014-06-18 11:19:36 +1000 |
---|---|---|
committer | Jamie Lennox <jamielennox@redhat.com> | 2014-06-19 10:46:27 +1000 |
commit | 588aaa3eaac302a1d8f60cce77103e9ac682fae8 (patch) | |
tree | d54cba5efe543d2d246da6f8958f73c8ce0c103d /keystoneclient/fixture | |
parent | 0aa9df3b76d85706c12320eaa199aa52eaafebb3 (diff) | |
download | python-keystoneclient-588aaa3eaac302a1d8f60cce77103e9ac682fae8.tar.gz |
Add issued handlers to auth_ref and fixtures
issued_at is a standard part of V2 and V3 tokens so add it to
AccessInfo in a similar way to expiry. Also it should be included when
generating tokens so include it in fixtures.
Change-Id: I0d62d8ce6472466886751e10e98046b8e398e079
Diffstat (limited to 'keystoneclient/fixture')
-rw-r--r-- | keystoneclient/fixture/v2.py | 30 | ||||
-rw-r--r-- | keystoneclient/fixture/v3.py | 31 |
2 files changed, 55 insertions, 6 deletions
diff --git a/keystoneclient/fixture/v2.py b/keystoneclient/fixture/v2.py index 8714103..76cd1b8 100644 --- a/keystoneclient/fixture/v2.py +++ b/keystoneclient/fixture/v2.py @@ -40,8 +40,8 @@ class Token(dict): that matter to them and not copy and paste sample. """ - def __init__(self, token_id=None, - expires=None, tenant_id=None, tenant_name=None, user_id=None, + def __init__(self, token_id=None, expires=None, issued=None, + tenant_id=None, tenant_name=None, user_id=None, user_name=None): super(Token, self).__init__() @@ -49,8 +49,16 @@ class Token(dict): self.user_id = user_id or uuid.uuid4().hex self.user_name = user_name or uuid.uuid4().hex + if not issued: + issued = timeutils.utcnow() - datetime.timedelta(minutes=2) if not expires: - expires = timeutils.utcnow() + datetime.timedelta(hours=1) + expires = issued + datetime.timedelta(hours=1) + + try: + self.issued = issued + except (TypeError, AttributeError): + # issued should be able to be passed as a string so ignore + self.issued_str = issued try: self.expires = expires @@ -94,6 +102,22 @@ class Token(dict): self.expires_str = timeutils.isotime(value) @property + def issued_str(self): + return self._token['issued_at'] + + @issued_str.setter + def issued_str(self, value): + self._token['issued_at'] = value + + @property + def issued(self): + return timeutils.parse_isotime(self.issued_str) + + @issued.setter + def issued(self, value): + self.issued_str = timeutils.isotime(value) + + @property def _user(self): return self.root.setdefault('user', {}) diff --git a/keystoneclient/fixture/v3.py b/keystoneclient/fixture/v3.py index 7522f13..a0896f0 100644 --- a/keystoneclient/fixture/v3.py +++ b/keystoneclient/fixture/v3.py @@ -54,7 +54,7 @@ class Token(dict): that matter to them and not copy and paste sample. """ - def __init__(self, expires=None, user_id=None, user_name=None, + def __init__(self, expires=None, issued=None, user_id=None, user_name=None, user_domain_id=None, user_domain_name=None, methods=None, project_id=None, project_name=None, project_domain_id=None, project_domain_name=None, domain_id=None, domain_name=None, @@ -71,8 +71,17 @@ class Token(dict): methods = ['password'] self.methods.extend(methods) + if not issued: + issued = timeutils.utcnow() - datetime.timedelta(minutes=2) + + try: + self.issued = issued + except (TypeError, AttributeError): + # issued should be able to be passed as a string so ignore + self.issued_str = issued + if not expires: - expires = timeutils.utcnow() + datetime.timedelta(hours=1) + expires = self.issued + datetime.timedelta(hours=1) try: self.expires = expires @@ -115,7 +124,23 @@ class Token(dict): @expires.setter def expires(self, value): - self.expires_str = timeutils.isotime(value) + self.expires_str = timeutils.isotime(value, subsecond=True) + + @property + def issued_str(self): + return self.root.get('issued_at') + + @issued_str.setter + def issued_str(self, value): + self.root['issued_at'] = value + + @property + def issued(self): + return timeutils.parse_isotime(self.issued_str) + + @issued.setter + def issued(self, value): + self.issued_str = timeutils.isotime(value, subsecond=True) @property def _user(self): |