Merge "Rename get_service_context to get_service_credentials" into stable/ocata

This commit is contained in:
Jenkins 2017-02-17 15:45:06 +00:00 committed by Gerrit Code Review
commit 3278a7fc87
12 changed files with 82 additions and 77 deletions

View File

@ -48,7 +48,7 @@ class TrustMiddleware(wsgi.Middleware):
'user_id': ctx.user,
}
kc = driver_base.SenlinDriver().identity(params)
service_cred = context.get_service_context()
service_cred = context.get_service_credentials()
admin_id = kc.get_user_id(**service_cred)
try:
trust = kc.trust_get_by_trustor(ctx.user, admin_id, ctx.project)

View File

@ -53,7 +53,7 @@ class WebhookMiddleware(wsgi.Middleware):
rpcc = rpc.EngineClient()
receiver = rpcc.call(ctx, 'receiver_get', obj)
svc_ctx = context.get_service_context()
svc_ctx = context.get_service_credentials()
kwargs = {
'auth_url': svc_ctx['auth_url'],
'username': svc_ctx['username'],

View File

@ -94,19 +94,24 @@ class RequestContext(base_context.RequestContext):
return cls(**values)
def get_service_context(**kwargs):
'''An abstraction layer for getting service credential.
def get_service_credentials(**kwargs):
"""An abstraction layer for getting service credential.
There could be multiple cloud backends for senlin to use. This
abstraction layer provides an indirection for senlin to get the
credentials of 'senlin' user on the specific cloud. By default,
this credential refers to the credentials built for keystone middleware
in an OpenStack cloud.
'''
"""
identity_service = driver_base.SenlinDriver().identity
return identity_service.get_service_credentials(**kwargs)
def get_service_context(**kwargs):
"""Get a customized service context."""
return get_service_credentials(**kwargs)
def get_admin_context():
"""Create an administrator context."""
return RequestContext(is_admin=True)

View File

@ -89,7 +89,7 @@ class NovaNotificationEndpoint(object):
node_id = meta.get('cluster_node_id')
if node_id:
LOG.info(_LI("Requesting node recovery: %s"), node_id)
ctx_dict = context.get_service_context(
ctx_dict = context.get_service_credentials(
project=self.project_id, user=payload['user_id'])
ctx = context.RequestContext.from_dict(ctx_dict)
req = objects.NodeRecoverRequest(identity=node_id,
@ -193,8 +193,8 @@ class HealthManager(service.Service):
LOG.warning(_LW("Cluster (%s) is not found."), cluster_id)
return _chase_up(start_time, timeout)
ctx_dict = context.get_service_context(user=cluster.user,
project=cluster.project)
ctx_dict = context.get_service_credentials(user=cluster.user,
project=cluster.project)
ctx = context.RequestContext.from_dict(ctx_dict)
try:
req = vorc.ClusterCheckRequest(identity=cluster_id)

View File

@ -206,7 +206,7 @@ class Receiver(object):
def _get_base_url(self):
base = None
service_cred = senlin_context.get_service_context()
service_cred = senlin_context.get_service_credentials()
kc = driver_base.SenlinDriver().identity(service_cred)
try:
base = kc.get_senlin_endpoint()
@ -224,7 +224,7 @@ class Receiver(object):
:returns: A dict containing the required parameters for connection
creation.
"""
service_creds = senlin_context.get_service_context()
service_creds = senlin_context.get_service_credentials()
params = {
'username': service_creds.get('username'),
'password': service_creds.get('password'),

View File

@ -227,7 +227,7 @@ class Policy(object):
:param user: the user for which the trust will be checked.
:param object: the user for which the trust will be checked.
"""
service_creds = senlin_context.get_service_context()
service_creds = senlin_context.get_service_credentials()
params = {
'username': service_creds.get('username'),
'password': service_creds.get('password'),

View File

@ -300,7 +300,7 @@ class Profile(object):
if self.CONTEXT in self.properties:
profile_context = self.properties[self.CONTEXT] or {}
ctx_dict = context.get_service_context(**profile_context)
ctx_dict = context.get_service_credentials(**profile_context)
ctx_dict.pop('project_name', None)
ctx_dict.pop('project_domain_name', None)

View File

@ -48,17 +48,17 @@ class TestTrustMiddleware(base.SenlinTestCase):
self.assertEqual(self.context.user, request.user)
self.assertEqual(self.context.project, request.project)
@mock.patch.object(context, "get_service_context")
@mock.patch.object(context, "get_service_credentials")
@mock.patch("senlin.drivers.base.SenlinDriver")
@mock.patch("senlin.rpc.client.EngineClient")
def test__get_trust_bad(self, mock_rpc, mock_driver, mock_context):
def test__get_trust_bad(self, mock_rpc, mock_driver, mock_creds):
x_cred = {'foo': 'bar'}
x_rpc = mock.Mock()
x_rpc.call.return_value = x_cred
mock_rpc.return_value = x_rpc
x_svc_cred = {'uid': 'FAKE_ID', 'passwd': 'FAKE_PASS'}
mock_context.return_value = x_svc_cred
mock_creds.return_value = x_svc_cred
x_admin_id = 'FAKE_ADMIN_ID'
x_trust = mock.Mock(id='FAKE_TRUST_ID')
mock_keystone = mock.Mock()
@ -90,22 +90,22 @@ class TestTrustMiddleware(base.SenlinTestCase):
'user_id': self.context.user,
'token': self.context.auth_token,
})
mock_context.assert_called_once_with()
mock_creds.assert_called_once_with()
mock_keystone.get_user_id.assert_called_once_with(
uid='FAKE_ID', passwd='FAKE_PASS')
mock_keystone.trust_get_by_trustor.assert_called_once_with(
self.context.user, 'FAKE_ADMIN_ID', self.context.project)
@mock.patch.object(context, "get_service_context")
@mock.patch.object(context, "get_service_credentials")
@mock.patch("senlin.drivers.base.SenlinDriver")
@mock.patch("senlin.rpc.client.EngineClient")
def test__get_trust_not_found(self, mock_rpc, mock_driver, mock_context):
def test__get_trust_not_found(self, mock_rpc, mock_driver, mock_creds):
x_rpc = mock.Mock()
x_rpc.call.return_value = None
mock_rpc.return_value = x_rpc
x_svc_cred = {'uid': 'FAKE_ID', 'passwd': 'FAKE_PASS'}
mock_context.return_value = x_svc_cred
mock_creds.return_value = x_svc_cred
x_admin_id = 'FAKE_ADMIN_ID'
x_trust = mock.Mock(id='FAKE_TRUST_ID')
mock_keystone = mock.Mock()
@ -128,22 +128,22 @@ class TestTrustMiddleware(base.SenlinTestCase):
'user_id': self.context.user,
'token': self.context.auth_token,
})
mock_context.assert_called_once_with()
mock_creds.assert_called_once_with()
mock_keystone.get_user_id.assert_called_once_with(
uid='FAKE_ID', passwd='FAKE_PASS')
mock_keystone.trust_get_by_trustor.assert_called_once_with(
self.context.user, 'FAKE_ADMIN_ID', self.context.project)
@mock.patch.object(context, "get_service_context")
@mock.patch.object(context, "get_service_credentials")
@mock.patch("senlin.drivers.base.SenlinDriver")
@mock.patch("senlin.rpc.client.EngineClient")
def test__get_trust_do_create(self, mock_rpc, mock_driver, mock_context):
def test__get_trust_do_create(self, mock_rpc, mock_driver, mock_creds):
x_rpc = mock.Mock()
x_rpc.call.return_value = None
mock_rpc.return_value = x_rpc
x_svc_cred = {'uid': 'FAKE_ID', 'passwd': 'FAKE_PASS'}
mock_context.return_value = x_svc_cred
mock_creds.return_value = x_svc_cred
x_admin_id = 'FAKE_ADMIN_ID'
mock_keystone = mock.Mock()
mock_keystone.get_user_id.return_value = x_admin_id
@ -167,7 +167,7 @@ class TestTrustMiddleware(base.SenlinTestCase):
'user_id': self.context.user,
'token': self.context.auth_token,
})
mock_context.assert_called_once_with()
mock_creds.assert_called_once_with()
mock_keystone.get_user_id.assert_called_once_with(
uid='FAKE_ID', passwd='FAKE_PASS')
mock_keystone.trust_get_by_trustor.assert_called_once_with(
@ -176,16 +176,16 @@ class TestTrustMiddleware(base.SenlinTestCase):
self.context.user, 'FAKE_ADMIN_ID', self.context.project,
self.context.roles)
@mock.patch.object(context, "get_service_context")
@mock.patch.object(context, "get_service_credentials")
@mock.patch("senlin.drivers.base.SenlinDriver")
@mock.patch("senlin.rpc.client.EngineClient")
def test__get_trust_fatal(self, mock_rpc, mock_driver, mock_context):
def test__get_trust_fatal(self, mock_rpc, mock_driver, mock_creds):
x_rpc = mock.Mock()
x_rpc.call.return_value = None
mock_rpc.return_value = x_rpc
x_svc_cred = {'uid': 'FAKE_ID', 'passwd': 'FAKE_PASS'}
mock_context.return_value = x_svc_cred
mock_creds.return_value = x_svc_cred
x_admin_id = 'FAKE_ADMIN_ID'
mock_keystone = mock.Mock()
mock_keystone.get_user_id.return_value = x_admin_id
@ -210,7 +210,7 @@ class TestTrustMiddleware(base.SenlinTestCase):
'user_id': self.context.user,
'token': self.context.auth_token,
})
mock_context.assert_called_once_with()
mock_creds.assert_called_once_with()
mock_keystone.get_user_id.assert_called_once_with(
uid='FAKE_ID', passwd='FAKE_PASS')
mock_keystone.trust_get_by_trustor.assert_called_once_with(

View File

@ -287,10 +287,10 @@ class TestReceiver(base.SenlinTestCase):
mock_receiver.release_channel.assert_called_once_with(self.context)
mock_delete.assert_called_once_with(self.context, 'test-receiver-id')
@mock.patch.object(context, "get_service_context")
@mock.patch.object(context, "get_service_credentials")
@mock.patch.object(driver_base, "SenlinDriver")
def test__get_base_url_succeeded(self, mock_senlin_driver,
mock_get_service_context):
mock_get_service_creds):
cfg.CONF.set_override('default_region_name', 'RegionOne',
enforce_type=True)
fake_driver = mock.Mock()
@ -298,7 +298,7 @@ class TestReceiver(base.SenlinTestCase):
fake_cred = mock.Mock()
mock_senlin_driver.return_value = fake_driver
fake_driver.identity.return_value = fake_kc
mock_get_service_context.return_value = fake_cred
mock_get_service_creds.return_value = fake_cred
fake_kc.get_senlin_endpoint.return_value = "http://web.com:1234/v1"
@ -308,13 +308,13 @@ class TestReceiver(base.SenlinTestCase):
res = receiver._get_base_url()
self.assertEqual("http://web.com:1234/v1", res)
mock_get_service_context.assert_called_once_with()
mock_get_service_creds.assert_called_once_with()
fake_kc.get_senlin_endpoint.assert_called_once_with()
@mock.patch.object(context, "get_service_context")
@mock.patch.object(context, "get_service_credentials")
@mock.patch.object(driver_base, "SenlinDriver")
def test__get_base_url_failed_get_endpoint_exception(
self, mock_senlin_driver, mock_get_service_context):
self, mock_senlin_driver, mock_get_service_creds):
cfg.CONF.set_override('default_region_name', 'RegionOne',
enforce_type=True)
fake_driver = mock.Mock()
@ -322,7 +322,7 @@ class TestReceiver(base.SenlinTestCase):
fake_cred = mock.Mock()
mock_senlin_driver.return_value = fake_driver
fake_driver.identity.return_value = fake_kc
mock_get_service_context.return_value = fake_cred
mock_get_service_creds.return_value = fake_cred
fake_kc.get_senlin_endpoint.side_effect = exception.InternalError(
message='Error!')
@ -333,13 +333,13 @@ class TestReceiver(base.SenlinTestCase):
res = receiver._get_base_url()
self.assertIsNone(res)
mock_get_service_context.assert_called_once_with()
mock_get_service_creds.assert_called_once_with()
fake_kc.get_senlin_endpoint.assert_called_once_with()
@mock.patch.object(co.Credential, 'get')
@mock.patch.object(context, 'get_service_context')
@mock.patch.object(context, 'get_service_credentials')
@mock.patch.object(oslo_ctx, 'get_current')
def test_build_conn_params(self, mock_get_current, mock_get_service_ctx,
def test_build_conn_params(self, mock_get_current, mock_get_service_creds,
mock_cred_get):
user = 'user1'
project = 'project1'
@ -363,7 +363,7 @@ class TestReceiver(base.SenlinTestCase):
cred = mock.Mock()
cred.cred = cred_info
mock_get_service_ctx.return_value = service_cred
mock_get_service_creds.return_value = service_cred
mock_get_current.return_value = current_ctx
mock_cred_get.return_value = cred
@ -378,14 +378,14 @@ class TestReceiver(base.SenlinTestCase):
}
res = receiver._build_conn_params(user, project)
self.assertEqual(expected_result, res)
mock_get_service_ctx.assert_called_once_with()
mock_get_service_creds.assert_called_once_with()
mock_cred_get.assert_called_once_with(current_ctx, user, project)
@mock.patch.object(co.Credential, 'get')
@mock.patch.object(context, 'get_service_context')
@mock.patch.object(context, 'get_service_credentials')
@mock.patch.object(oslo_ctx, 'get_current')
def test_build_conn_params_trust_not_found(
self, mock_get_current, mock_get_service_ctx, mock_cred_get):
self, mock_get_current, mock_get_service_creds, mock_cred_get):
user = 'user1'
project = 'project1'
@ -396,7 +396,7 @@ class TestReceiver(base.SenlinTestCase):
'password': '123'
}
mock_get_service_ctx.return_value = service_cred
mock_get_service_creds.return_value = service_cred
mock_cred_get.return_value = None
receiver = self._create_receiver('receiver-1', UUID1)

View File

@ -346,7 +346,7 @@ class TestHealthManager(base.SenlinTestCase):
@mock.patch.object(obj_node.Node, 'get_all')
@mock.patch.object(hm.HealthManager, "_wait_for_action")
@mock.patch.object(obj_cluster.Cluster, 'get')
@mock.patch.object(context, 'get_service_context')
@mock.patch.object(context, 'get_service_credentials')
@mock.patch.object(context.RequestContext, 'from_dict')
@mock.patch.object(rpc_client.EngineClient, 'call')
def test__poll_cluster(self, mock_rpc, mock_ctx, mock_sctx, mock_get,
@ -398,7 +398,7 @@ class TestHealthManager(base.SenlinTestCase):
mock_chase.assert_called_once_with(mock.ANY, 123)
@mock.patch.object(hm, "_chase_up")
@mock.patch.object(context, 'get_service_context')
@mock.patch.object(context, 'get_service_credentials')
@mock.patch.object(context.RequestContext, 'from_dict')
@mock.patch.object(obj_cluster.Cluster, 'get')
@mock.patch.object(rpc_client.EngineClient, 'call')
@ -431,7 +431,7 @@ class TestHealthManager(base.SenlinTestCase):
@mock.patch.object(hm, "_chase_up")
@mock.patch.object(hm.HealthManager, "_wait_for_action")
@mock.patch.object(obj_cluster.Cluster, 'get')
@mock.patch.object(context, 'get_service_context')
@mock.patch.object(context, 'get_service_credentials')
@mock.patch.object(context.RequestContext, 'from_dict')
@mock.patch.object(rpc_client.EngineClient, 'call')
def test__poll_cluster_failed_wait(self, mock_rpc, mock_ctx, mock_sctx,

View File

@ -481,9 +481,9 @@ class TestPolicyBase(base.SenlinTestCase):
self.assertEqual((True, None), res)
@mock.patch.object(co.Credential, 'get')
@mock.patch.object(senlin_ctx, 'get_service_context')
@mock.patch.object(senlin_ctx, 'get_service_credentials')
@mock.patch.object(oslo_ctx, 'get_current')
def test_build_conn_params(self, mock_get_current, mock_get_service_ctx,
def test_build_conn_params(self, mock_get_current, mock_get_service_creds,
mock_cred_get):
service_cred = {
'auth_url': 'AUTH_URL',
@ -504,7 +504,7 @@ class TestPolicyBase(base.SenlinTestCase):
}
cred = mock.Mock(cred=cred_info)
mock_get_service_ctx.return_value = service_cred
mock_get_service_creds.return_value = service_cred
mock_get_current.return_value = current_ctx
mock_cred_get.return_value = cred
policy = self._create_policy('test-policy')
@ -519,14 +519,14 @@ class TestPolicyBase(base.SenlinTestCase):
'trust_id': 'TRUST_ID'
}
self.assertEqual(expected_result, res)
mock_get_service_ctx.assert_called_once_with()
mock_get_service_creds.assert_called_once_with()
mock_cred_get.assert_called_once_with(current_ctx, 'user1', 'project1')
@mock.patch.object(co.Credential, 'get')
@mock.patch.object(senlin_ctx, 'get_service_context')
@mock.patch.object(senlin_ctx, 'get_service_credentials')
@mock.patch.object(oslo_ctx, 'get_current')
def test_build_conn_params_trust_not_found(
self, mock_get_current, mock_get_service_ctx, mock_cred_get):
self, mock_get_current, mock_get_service_creds, mock_cred_get):
service_cred = {
'auth_url': 'AUTH_URL',
@ -535,7 +535,7 @@ class TestPolicyBase(base.SenlinTestCase):
'password': '123'
}
mock_get_service_ctx.return_value = service_cred
mock_get_service_creds.return_value = service_cred
mock_cred_get.return_value = None
policy = self._create_policy('test-policy')

View File

@ -97,9 +97,9 @@ class TestProfileBase(base.SenlinTestCase):
return profile
@mock.patch.object(senlin_ctx, 'get_service_context')
def test_init(self, mock_ctx):
mock_ctx.return_value = {'foo': 'bar'}
@mock.patch.object(senlin_ctx, 'get_service_credentials')
def test_init(self, mock_creds):
mock_creds.return_value = {'foo': 'bar'}
profile = self._create_profile('test-profile')
self.assertIsNone(profile.id)
@ -128,9 +128,9 @@ class TestProfileBase(base.SenlinTestCase):
self.assertIsNone(profile._networkclient)
self.assertIsNone(profile._orchestrationclient)
@mock.patch.object(senlin_ctx, 'get_service_context')
def test_init_with_context(self, mock_ctx):
mock_ctx.return_value = {'foo': 'bar'}
@mock.patch.object(senlin_ctx, 'get_service_credentials')
def test_init_with_context(self, mock_creds):
mock_creds.return_value = {'foo': 'bar'}
profile = self._create_profile('test-profile',
pid='FAKE_ID', context={'bar': 'foo'})
self.assertEqual({'bar': 'foo'}, profile.context)
@ -213,9 +213,9 @@ class TestProfileBase(base.SenlinTestCase):
mock_get.assert_called_once_with(self.ctx, 'FAKE_ID',
project_safe=True)
@mock.patch.object(senlin_ctx, 'get_service_context')
def test_create(self, mock_context):
mock_context.return_value = {}
@mock.patch.object(senlin_ctx, 'get_service_credentials')
def test_create(self, mock_creds):
mock_creds.return_value = {}
res = pb.Profile.create(self.ctx, 'my_profile', self.spec)
self.assertIsInstance(res, pb.Profile)
@ -235,9 +235,9 @@ class TestProfileBase(base.SenlinTestCase):
six.text_type(ex))
@mock.patch.object(pb.Profile, 'validate')
@mock.patch.object(senlin_ctx, 'get_service_context')
def test_create_failed_validation(self, mock_context, mock_validate):
mock_context.return_value = {}
@mock.patch.object(senlin_ctx, 'get_service_credentials')
def test_create_failed_validation(self, mock_creds, mock_validate):
mock_creds.return_value = {}
mock_validate.side_effect = exception.ESchema(message="Boom")
ex = self.assertRaises(exception.InvalidSpec,
@ -544,10 +544,10 @@ class TestProfileBase(base.SenlinTestCase):
self.assertRaises(exception.ESchema, profile.validate)
@mock.patch.object(senlin_ctx, 'get_service_context')
def test__init_context(self, mock_get):
@mock.patch.object(senlin_ctx, 'get_service_credentials')
def test__init_context(self, mock_creds):
fake_ctx = mock.Mock()
mock_get.return_value = fake_ctx
mock_creds.return_value = fake_ctx
# _init_context() is called from __init__
self._create_profile('test-profile')
@ -557,10 +557,10 @@ class TestProfileBase(base.SenlinTestCase):
mock.call('project_name', None),
mock.call('project_domain_name', None),
])
mock_get.assert_called_once_with()
mock_creds.assert_called_once_with()
@mock.patch.object(senlin_ctx, 'get_service_context')
def test__init_context_for_real(self, mock_get):
@mock.patch.object(senlin_ctx, 'get_service_credentials')
def test__init_context_for_real(self, mock_creds):
fake_ctx = {
'project_name': 'this project',
'project_domain_name': 'this domain',
@ -568,12 +568,12 @@ class TestProfileBase(base.SenlinTestCase):
'user_id': 'fake_user',
'foo': 'bar',
}
mock_get.return_value = fake_ctx
mock_creds.return_value = fake_ctx
# _init_context() is called from __init__
profile = self._create_profile('test-profile')
mock_get.assert_called_once_with()
mock_creds.assert_called_once_with()
expected = {
'auth_url': 'some url',
'user_id': 'fake_user',
@ -581,8 +581,8 @@ class TestProfileBase(base.SenlinTestCase):
}
self.assertEqual(expected, profile.context)
@mock.patch.object(senlin_ctx, 'get_service_context')
def test__init_context_for_real_with_data(self, mock_get):
@mock.patch.object(senlin_ctx, 'get_service_credentials')
def test__init_context_for_real_with_data(self, mock_creds):
fake_ctx = {
'project_name': 'this project',
'project_domain_name': 'this domain',
@ -590,7 +590,7 @@ class TestProfileBase(base.SenlinTestCase):
'user_id': 'fake_user',
'foo': 'bar',
}
mock_get.return_value = fake_ctx
mock_creds.return_value = fake_ctx
self.spec['properties']['context'] = {
'region_name': 'region_dist'
}
@ -598,7 +598,7 @@ class TestProfileBase(base.SenlinTestCase):
# _init_context() is called from __init__
profile = self._create_profile('test-profile')
mock_get.assert_called_once_with(region_name='region_dist')
mock_creds.assert_called_once_with(region_name='region_dist')
expected = {
'auth_url': 'some url',
'user_id': 'fake_user',