Merge "Return None from generic plugin if failure"

This commit is contained in:
Jenkins 2015-10-15 07:07:18 +00:00 committed by Gerrit Code Review
commit 5eac6fe03a
2 changed files with 24 additions and 3 deletions

View File

@ -12,7 +12,6 @@
from keystoneauth1 import _utils as utils
from keystoneauth1 import discover
from keystoneauth1 import exceptions
from keystoneauth1.identity.generic import base
from keystoneauth1.identity import v2
from keystoneauth1.identity import v3
@ -45,8 +44,7 @@ class Password(base.BaseGenericPlugin):
def create_plugin(self, session, version, url, raw_status=None):
if discover.version_match((2,), version):
if self._user_domain_id or self._user_domain_name:
raise exceptions.DiscoveryFailure(
'Cannot use v2 authentication with domain scope')
return None
return v2.Password(auth_url=url,
user_id=self._user_id,

View File

@ -10,7 +10,12 @@
# License for the specific language governing permissions and limitations
# under the License.
import uuid
from keystoneauth1 import fixture
from keystoneauth1 import identity
from keystoneauth1.loading._plugins.identity import generic
from keystoneauth1 import session
from keystoneauth1.tests.unit.loading import utils
@ -37,6 +42,24 @@ class PasswordTests(utils.TestCase):
self.assertEqual(set(allowed_opts), set(opts))
self.assertEqual(len(allowed_opts), len(opts))
def test_loads_v3_with_user_domain(self):
auth_url = 'http://keystone.test:5000'
disc = fixture.DiscoveryList(href=auth_url)
sess = session.Session()
self.requests_mock.get(auth_url, json=disc)
plugin = generic.Password().load_from_options(
auth_url=auth_url,
user_id=uuid.uuid4().hex,
password=uuid.uuid4().hex,
project_id=uuid.uuid4().hex,
user_domain_id=uuid.uuid4().hex)
inner_plugin = plugin._do_create_plugin(sess)
self.assertIsInstance(inner_plugin, identity.V3Password)
self.assertEqual(inner_plugin.auth_url, auth_url + '/v3')
class TokenTests(utils.TestCase):