Merge "Add domain attributes to accessinfo"

This commit is contained in:
Jenkins
2013-08-26 21:17:12 +00:00
committed by Gerrit Code Review
3 changed files with 91 additions and 6 deletions

View File

@@ -134,10 +134,23 @@ class AccessInfo(dict):
@property @property
def user_domain_id(self): def user_domain_id(self):
"""Returns the domain id of the user associated with the authentication """Returns the domain id of the user associated with the authentication
request. request.
For v2, it always returns 'default' which may be different from the
Keystone configuration.
:returns: str
"""
raise NotImplementedError()
@property
def user_domain_name(self):
"""Returns the domain name of the user associated with the
authentication request.
For v2, it always returns 'Default' which may be different from the
Keystone configuration.
For v2, it always returns 'default' which maybe different from the
Keystone configuration.
:returns: str :returns: str
""" """
raise NotImplementedError() raise NotImplementedError()
@@ -234,10 +247,23 @@ class AccessInfo(dict):
@property @property
def project_domain_id(self): def project_domain_id(self):
"""Returns the domain id of the project associated with the """Returns the domain id of the project associated with the
authentication request. authentication request.
For v2, it returns 'default' if a project is scoped or None which may
be different from the keystone configuration.
:returns: str
"""
raise NotImplementedError()
@property
def project_domain_name(self):
"""Returns the domain name of the project associated with the
authentication request.
For v2, it returns 'Default' if a project is scoped or None which may
be different from the keystone configuration.
For v2, it always returns 'default' which maybe different from the
keystone configuration.
:returns: str :returns: str
""" """
raise NotImplementedError() raise NotImplementedError()
@@ -317,6 +343,10 @@ class AccessInfoV2(AccessInfo):
def user_domain_id(self): def user_domain_id(self):
return 'default' return 'default'
@property
def user_domain_name(self):
return 'Default'
@property @property
def domain_name(self): def domain_name(self):
return None return None
@@ -396,6 +426,11 @@ class AccessInfoV2(AccessInfo):
if self.project_id: if self.project_id:
return 'default' return 'default'
@property
def project_domain_name(self):
if self.project_id:
return 'Default'
@property @property
def auth_url(self): def auth_url(self):
if self.service_catalog: if self.service_catalog:
@@ -456,6 +491,10 @@ class AccessInfoV3(AccessInfo):
def user_domain_id(self): def user_domain_id(self):
return self['user']['domain']['id'] return self['user']['domain']['id']
@property
def user_domain_name(self):
return self['user']['domain']['name']
@property @property
def username(self): def username(self):
return self['user']['name'] return self['user']['name']
@@ -484,6 +523,12 @@ class AccessInfoV3(AccessInfo):
if project: if project:
return project['domain']['id'] return project['domain']['id']
@property
def project_domain_name(self):
project = self.get('project')
if project:
return project['domain']['name']
@property @property
def project_name(self): def project_name(self):
project = self.get('project') project = self.get('project')

View File

@@ -37,6 +37,11 @@ class AccessInfoTest(utils.TestCase):
self.assertFalse(auth_ref.project_scoped) self.assertFalse(auth_ref.project_scoped)
self.assertFalse(auth_ref.trust_scoped) self.assertFalse(auth_ref.trust_scoped)
self.assertIsNone(auth_ref.project_domain_id)
self.assertIsNone(auth_ref.project_domain_name)
self.assertEqual(auth_ref.user_domain_id, 'default')
self.assertEqual(auth_ref.user_domain_name, 'Default')
self.assertEquals(auth_ref.expires, timeutils.parse_isotime( self.assertEquals(auth_ref.expires, timeutils.parse_isotime(
UNSCOPED_TOKEN['access']['token']['expires'])) UNSCOPED_TOKEN['access']['token']['expires']))
@@ -73,6 +78,11 @@ class AccessInfoTest(utils.TestCase):
self.assertEquals(auth_ref.management_url, self.assertEquals(auth_ref.management_url,
('http://admin:35357/v2.0',)) ('http://admin:35357/v2.0',))
self.assertEqual(auth_ref.project_domain_id, 'default')
self.assertEqual(auth_ref.project_domain_name, 'Default')
self.assertEqual(auth_ref.user_domain_id, 'default')
self.assertEqual(auth_ref.user_domain_name, 'Default')
self.assertTrue(auth_ref.scoped) self.assertTrue(auth_ref.scoped)
self.assertTrue(auth_ref.project_scoped) self.assertTrue(auth_ref.project_scoped)
self.assertFalse(auth_ref.domain_scoped) self.assertFalse(auth_ref.domain_scoped)
@@ -84,6 +94,10 @@ class AccessInfoTest(utils.TestCase):
self.assertEquals(auth_ref.username, 'user_name1') self.assertEquals(auth_ref.username, 'user_name1')
self.assertEquals(auth_ref.project_id, 'tenant_id1') self.assertEquals(auth_ref.project_id, 'tenant_id1')
self.assertEquals(auth_ref.project_name, 'tenant_id1') self.assertEquals(auth_ref.project_name, 'tenant_id1')
self.assertEquals(auth_ref.project_domain_id, 'default')
self.assertEquals(auth_ref.project_domain_name, 'Default')
self.assertEquals(auth_ref.user_domain_id, 'default')
self.assertEquals(auth_ref.user_domain_name, 'Default')
self.assertFalse(auth_ref.scoped) self.assertFalse(auth_ref.scoped)
def test_grizzly_token(self): def test_grizzly_token(self):
@@ -91,3 +105,7 @@ class AccessInfoTest(utils.TestCase):
self.assertEquals(auth_ref.project_id, 'tenant_id1') self.assertEquals(auth_ref.project_id, 'tenant_id1')
self.assertEquals(auth_ref.project_name, 'tenant_name1') self.assertEquals(auth_ref.project_name, 'tenant_name1')
self.assertEquals(auth_ref.project_domain_id, 'default')
self.assertEquals(auth_ref.project_domain_name, 'Default')
self.assertEquals(auth_ref.user_domain_id, 'default')
self.assertEquals(auth_ref.user_domain_name, 'Default')

View File

@@ -37,6 +37,13 @@ class AccessInfoTest(utils.TestCase):
self.assertFalse(auth_ref.domain_scoped) self.assertFalse(auth_ref.domain_scoped)
self.assertFalse(auth_ref.project_scoped) self.assertFalse(auth_ref.project_scoped)
self.assertEquals(auth_ref.user_domain_id,
'4e6893b7ba0b4006840c3845660b86ed')
self.assertEquals(auth_ref.user_domain_name, 'exampledomain')
self.assertIsNone(auth_ref.project_domain_id)
self.assertIsNone(auth_ref.project_domain_name)
self.assertEquals(auth_ref.expires, timeutils.parse_isotime( self.assertEquals(auth_ref.expires, timeutils.parse_isotime(
UNSCOPED_TOKEN['token']['expires_at'])) UNSCOPED_TOKEN['token']['expires_at']))
@@ -70,6 +77,13 @@ class AccessInfoTest(utils.TestCase):
self.assertEquals(auth_ref.project_name, None) self.assertEquals(auth_ref.project_name, None)
self.assertEquals(auth_ref.project_id, None) self.assertEquals(auth_ref.project_id, None)
self.assertEquals(auth_ref.user_domain_id,
'4e6893b7ba0b4006840c3845660b86ed')
self.assertEquals(auth_ref.user_domain_name, 'exampledomain')
self.assertIsNone(auth_ref.project_domain_id)
self.assertIsNone(auth_ref.project_domain_name)
self.assertTrue(auth_ref.domain_scoped) self.assertTrue(auth_ref.domain_scoped)
self.assertFalse(auth_ref.project_scoped) self.assertFalse(auth_ref.project_scoped)
@@ -102,5 +116,13 @@ class AccessInfoTest(utils.TestCase):
self.assertEquals(auth_ref.management_url, self.assertEquals(auth_ref.management_url,
('http://admin:35357/v3',)) ('http://admin:35357/v3',))
self.assertEquals(auth_ref.project_domain_id,
'4e6893b7ba0b4006840c3845660b86ed')
self.assertEquals(auth_ref.project_domain_name, 'exampledomain')
self.assertEquals(auth_ref.user_domain_id,
'4e6893b7ba0b4006840c3845660b86ed')
self.assertEquals(auth_ref.user_domain_name, 'exampledomain')
self.assertFalse(auth_ref.domain_scoped) self.assertFalse(auth_ref.domain_scoped)
self.assertTrue(auth_ref.project_scoped) self.assertTrue(auth_ref.project_scoped)