diff options
| author | Jamie Lennox <jamielennox@redhat.com> | 2015-03-27 14:03:20 +1100 |
|---|---|---|
| committer | Jamie Lennox <jamielennox@redhat.com> | 2015-03-28 14:33:15 +1100 |
| commit | dfc90092a797d35a235a70f5df9eaba5b4778203 (patch) | |
| tree | 7168f8f65b24a7173e5f8925f70b7c78223e8e25 /keystoneclient/fixture | |
| parent | a84b5ac115dd5775f7380a204811aa939fd5c242 (diff) | |
| download | python-keystoneclient-dfc90092a797d35a235a70f5df9eaba5b4778203.tar.gz | |
Expose audit_id via AccessInfo
The audit_id is now a standard part of the v2 and v3 tokens. Expose it
via AccessInfo so that it is usable for services and middleware.
Change-Id: I14ddcfee5434084ad9da73c384e6f456602fdd2b
Closes-Bug: #1437129
Diffstat (limited to 'keystoneclient/fixture')
| -rw-r--r-- | keystoneclient/fixture/v2.py | 31 | ||||
| -rw-r--r-- | keystoneclient/fixture/v3.py | 30 |
2 files changed, 59 insertions, 2 deletions
diff --git a/keystoneclient/fixture/v2.py b/keystoneclient/fixture/v2.py index cd4207b..3d6898b 100644 --- a/keystoneclient/fixture/v2.py +++ b/keystoneclient/fixture/v2.py @@ -43,12 +43,14 @@ class Token(dict): def __init__(self, token_id=None, expires=None, issued=None, tenant_id=None, tenant_name=None, user_id=None, - user_name=None, trust_id=None, trustee_user_id=None): + user_name=None, trust_id=None, trustee_user_id=None, + audit_id=None, audit_chain_id=None): super(Token, self).__init__() self.token_id = token_id or uuid.uuid4().hex self.user_id = user_id or uuid.uuid4().hex self.user_name = user_name or uuid.uuid4().hex + self.audit_id = audit_id or uuid.uuid4().hex if not issued: issued = timeutils.utcnow() - datetime.timedelta(minutes=2) @@ -76,6 +78,9 @@ class Token(dict): self.set_trust(id=trust_id, trustee_user_id=trustee_user_id or user_id) + if audit_chain_id: + self.audit_chain_id = audit_chain_id + @property def root(self): return self.setdefault('access', {}) @@ -180,6 +185,30 @@ class Token(dict): def trustee_user_id(self, value): self.root.setdefault('trust', {})['trustee_user_id'] = value + @property + def audit_id(self): + try: + return self._token.get('audit_ids', [])[0] + except IndexError: + return None + + @audit_id.setter + def audit_id(self, value): + audit_chain_id = self.audit_chain_id + lval = [value] if audit_chain_id else [value, audit_chain_id] + self._token['audit_ids'] = lval + + @property + def audit_chain_id(self): + try: + return self._token.get('audit_ids', [])[1] + except IndexError: + return None + + @audit_chain_id.setter + def audit_chain_id(self, value): + self._token['audit_ids'] = [self.audit_id, value] + def validate(self): scoped = 'tenant' in self.token catalog = self.root.get('serviceCatalog') diff --git a/keystoneclient/fixture/v3.py b/keystoneclient/fixture/v3.py index 4f3d1f1..646e46d 100644 --- a/keystoneclient/fixture/v3.py +++ b/keystoneclient/fixture/v3.py @@ -62,13 +62,14 @@ class Token(dict): project_domain_name=None, domain_id=None, domain_name=None, trust_id=None, trust_impersonation=None, trustee_user_id=None, trustor_user_id=None, oauth_access_token_id=None, - oauth_consumer_id=None): + oauth_consumer_id=None, audit_id=None, audit_chain_id=None): super(Token, self).__init__() self.user_id = user_id or uuid.uuid4().hex self.user_name = user_name or uuid.uuid4().hex self.user_domain_id = user_domain_id or uuid.uuid4().hex self.user_domain_name = user_domain_name or uuid.uuid4().hex + self.audit_id = audit_id or uuid.uuid4().hex if not methods: methods = ['password'] @@ -113,6 +114,9 @@ class Token(dict): self.set_oauth(access_token_id=oauth_access_token_id, consumer_id=oauth_consumer_id) + if audit_chain_id: + self.audit_chain_id = audit_chain_id + @property def root(self): return self.setdefault('token', {}) @@ -295,6 +299,30 @@ class Token(dict): def oauth_consumer_id(self, value): self.root.setdefault('OS-OAUTH1', {})['consumer_id'] = value + @property + def audit_id(self): + try: + return self.root.get('audit_ids', [])[0] + except IndexError: + return None + + @audit_id.setter + def audit_id(self, value): + audit_chain_id = self.audit_chain_id + lval = [value] if audit_chain_id else [value, audit_chain_id] + self.root['audit_ids'] = lval + + @property + def audit_chain_id(self): + try: + return self.root.get('audit_ids', [])[1] + except IndexError: + return None + + @audit_chain_id.setter + def audit_chain_id(self, value): + self.root['audit_ids'] = [self.audit_id, value] + def validate(self): project = self.root.get('project') domain = self.root.get('domain') |
