summaryrefslogtreecommitdiff
path: root/keystoneclient/fixture
diff options
context:
space:
mode:
authorJamie Lennox <jamielennox@redhat.com>2015-03-27 14:03:20 +1100
committerJamie Lennox <jamielennox@redhat.com>2015-03-28 14:33:15 +1100
commitdfc90092a797d35a235a70f5df9eaba5b4778203 (patch)
tree7168f8f65b24a7173e5f8925f70b7c78223e8e25 /keystoneclient/fixture
parenta84b5ac115dd5775f7380a204811aa939fd5c242 (diff)
downloadpython-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.py31
-rw-r--r--keystoneclient/fixture/v3.py30
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')