Merge "Provide has_scope_parameters function on plugins"

This commit is contained in:
Jenkins 2015-09-02 02:09:38 +00:00 committed by Gerrit Code Review
commit e127d46f21
4 changed files with 23 additions and 0 deletions

View File

@ -83,6 +83,11 @@ class Auth(base.BaseIdentityPlugin):
:rtype: dict
"""
@property
def has_scope_parameters(self):
"""Does the plugin have parameters that will create a scoped token"""
return self.tenant_id or self.tenant_name or self.trust_id
_NOT_PASSED = object()

View File

@ -74,6 +74,13 @@ class BaseAuth(base.BaseIdentityPlugin):
def get_auth_ref(self, session, **kwargs):
return None
@property
def has_scope_parameters(self):
"""Does the plugin have parameters that will create a scoped token"""
return (self.domain_id or self.domain_name or
self.project_id or self.project_name or
self.trust_id)
class Auth(BaseAuth):
"""Identity V3 Authentication Plugin.

View File

@ -101,6 +101,7 @@ class V2IdentityPlugin(utils.TestCase):
a = v2.Password(self.TEST_URL, username=self.TEST_USER,
password=self.TEST_PASS)
self.assertIsNone(a.user_id)
self.assertFalse(a.has_scope_parameters)
s = session.Session(a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
s.get_auth_headers())
@ -117,6 +118,7 @@ class V2IdentityPlugin(utils.TestCase):
a = v2.Password(self.TEST_URL, user_id=self.TEST_USER,
password=self.TEST_PASS)
self.assertIsNone(a.username)
self.assertFalse(a.has_scope_parameters)
s = session.Session(a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
s.get_auth_headers())
@ -132,6 +134,7 @@ class V2IdentityPlugin(utils.TestCase):
self.stub_auth(json=self.TEST_RESPONSE_DICT)
a = v2.Password(self.TEST_URL, username=self.TEST_USER,
password=self.TEST_PASS, tenant_id=self.TEST_TENANT_ID)
self.assertTrue(a.has_scope_parameters)
self.assertIsNone(a.user_id)
s = session.Session(a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
@ -148,6 +151,7 @@ class V2IdentityPlugin(utils.TestCase):
a = v2.Password(self.TEST_URL, user_id=self.TEST_USER,
password=self.TEST_PASS, tenant_id=self.TEST_TENANT_ID)
self.assertIsNone(a.username)
self.assertTrue(a.has_scope_parameters)
s = session.Session(a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
s.get_auth_headers())
@ -176,6 +180,7 @@ class V2IdentityPlugin(utils.TestCase):
self.stub_auth(json=self.TEST_RESPONSE_DICT)
a = v2.Password(self.TEST_URL, username=self.TEST_USER,
password=self.TEST_PASS, trust_id='trust')
self.assertTrue(a.has_scope_parameters)
s = session.Session(a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
s.get_auth_headers())

View File

@ -197,6 +197,7 @@ class V3IdentityPlugin(utils.TestCase):
a = v3.Password(self.TEST_URL,
username=self.TEST_USER,
password=self.TEST_PASS)
self.assertFalse(a.has_scope_parameters)
s = session.Session(auth=a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
@ -216,6 +217,7 @@ class V3IdentityPlugin(utils.TestCase):
self.stub_auth(json=self.TEST_RESPONSE_DICT)
a = v3.Password(self.TEST_URL, username=self.TEST_USER,
password=self.TEST_PASS, domain_id=self.TEST_DOMAIN_ID)
self.assertTrue(a.has_scope_parameters)
s = session.Session(a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
@ -234,6 +236,7 @@ class V3IdentityPlugin(utils.TestCase):
a = v3.Password(self.TEST_URL, username=self.TEST_USER,
password=self.TEST_PASS,
project_id=self.TEST_TENANT_ID)
self.assertTrue(a.has_scope_parameters)
s = session.Session(a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
@ -288,6 +291,7 @@ class V3IdentityPlugin(utils.TestCase):
password='password', project_id='project',
domain_id='domain')
self.assertTrue(a.has_scope_parameters)
self.assertRaises(exceptions.AuthorizationFailure,
a.get_token, None)
self.assertRaises(exceptions.AuthorizationFailure,
@ -297,6 +301,7 @@ class V3IdentityPlugin(utils.TestCase):
self.stub_auth(json=self.TEST_RESPONSE_DICT)
a = v3.Password(self.TEST_URL, username=self.TEST_USER,
password=self.TEST_PASS, trust_id='trust')
self.assertTrue(a.has_scope_parameters)
s = session.Session(a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},
@ -335,6 +340,7 @@ class V3IdentityPlugin(utils.TestCase):
password=self.TEST_PASS)
t = v3.TokenMethod(token='foo')
a = v3.Auth(self.TEST_URL, [p, t], trust_id='trust')
self.assertTrue(a.has_scope_parameters)
s = session.Session(auth=a)
self.assertEqual({'X-Auth-Token': self.TEST_TOKEN},