diff --git a/heat/api/cfn/v1/signal.py b/heat/api/cfn/v1/signal.py index 3b7c241f71..119fcfa53d 100644 --- a/heat/api/cfn/v1/signal.py +++ b/heat/api/cfn/v1/signal.py @@ -22,13 +22,13 @@ from heat.api.aws import exception class SignalController(object): def __init__(self, options): self.options = options - self.engine = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() def update_waitcondition(self, req, body, arn): con = req.context identity = identifier.ResourceIdentifier.from_arn(arn) try: - md = self.engine.metadata_update( + md = self.rpc_client.metadata_update( con, stack_identity=dict(identity.stack()), resource_name=identity.resource_name, @@ -42,7 +42,7 @@ class SignalController(object): con = req.context identity = identifier.ResourceIdentifier.from_arn(arn) try: - self.engine.resource_signal( + self.rpc_client.resource_signal( con, stack_identity=dict(identity.stack()), resource_name=identity.resource_name, diff --git a/heat/api/cfn/v1/stacks.py b/heat/api/cfn/v1/stacks.py index e215b941a3..76078f94d2 100644 --- a/heat/api/cfn/v1/stacks.py +++ b/heat/api/cfn/v1/stacks.py @@ -46,7 +46,7 @@ class StackController(object): def __init__(self, options): self.options = options - self.engine_rpcapi = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() self.policy = policy.Enforcer(scope='cloudformation') def _enforce(self, req, action): @@ -104,7 +104,7 @@ class StackController(object): try: return dict(identifier.HeatIdentifier.from_arn(stack_name)) except ValueError: - return self.engine_rpcapi.identify_stack(con, stack_name) + return self.rpc_client.identify_stack(con, stack_name) def list(self, req): """ @@ -143,7 +143,7 @@ class StackController(object): con = req.context try: - stack_list = self.engine_rpcapi.list_stacks(con) + stack_list = self.rpc_client.list_stacks(con) except Exception as ex: return exception.map_remote_error(ex) @@ -233,7 +233,7 @@ class StackController(object): else: identity = None - stack_list = self.engine_rpcapi.show_stack(con, identity) + stack_list = self.rpc_client.show_stack(con, identity) except Exception as ex: return exception.map_remote_error(ex) @@ -314,8 +314,8 @@ class StackController(object): # This should not happen, so return HeatInternalFailureError return exception.HeatInternalFailureError(detail=msg) - engine_action = {self.CREATE_STACK: self.engine_rpcapi.create_stack, - self.UPDATE_STACK: self.engine_rpcapi.update_stack} + engine_action = {self.CREATE_STACK: self.rpc_client.create_stack, + self.UPDATE_STACK: self.rpc_client.update_stack} con = req.context @@ -375,7 +375,7 @@ class StackController(object): con = req.context try: identity = self._get_identity(con, req.params['StackName']) - templ = self.engine_rpcapi.get_template(con, identity) + templ = self.rpc_client.get_template(con, identity) except Exception as ex: return exception.map_remote_error(ex) @@ -437,7 +437,7 @@ class StackController(object): } try: - res = self.engine_rpcapi.validate_template(con, template) + res = self.rpc_client.validate_template(con, template) if 'Error' in res: return api_utils.format_response('ValidateTemplate', res['Error']) @@ -458,7 +458,7 @@ class StackController(object): con = req.context try: identity = self._get_identity(con, req.params['StackName']) - res = self.engine_rpcapi.delete_stack(con, identity, cast=False) + res = self.rpc_client.delete_stack(con, identity, cast=False) except Exception as ex: return exception.map_remote_error(ex) @@ -504,7 +504,7 @@ class StackController(object): stack_name = req.params.get('StackName', None) try: identity = stack_name and self._get_identity(con, stack_name) - events = self.engine_rpcapi.list_events(con, identity) + events = self.rpc_client.list_events(con, identity) except Exception as ex: return exception.map_remote_error(ex) @@ -550,7 +550,7 @@ class StackController(object): try: identity = self._get_identity(con, req.params['StackName']) - resource_details = self.engine_rpcapi.describe_stack_resource( + resource_details = self.rpc_client.describe_stack_resource( con, stack_identity=identity, resource_name=req.params.get('LogicalResourceId')) @@ -614,10 +614,10 @@ class StackController(object): if stack_name is not None: identity = self._get_identity(con, stack_name) else: - identity = self.engine_rpcapi.find_physical_resource( + identity = self.rpc_client.find_physical_resource( con, physical_resource_id=physical_resource_id) - resources = self.engine_rpcapi.describe_stack_resources( + resources = self.rpc_client.describe_stack_resources( con, stack_identity=identity, resource_name=req.params.get('LogicalResourceId')) @@ -659,7 +659,7 @@ class StackController(object): try: identity = self._get_identity(con, req.params['StackName']) - resources = self.engine_rpcapi.list_stack_resources( + resources = self.rpc_client.list_stack_resources( con, stack_identity=identity) except Exception as ex: diff --git a/heat/api/cloudwatch/watch.py b/heat/api/cloudwatch/watch.py index 28e032ed44..093a9f5857 100644 --- a/heat/api/cloudwatch/watch.py +++ b/heat/api/cloudwatch/watch.py @@ -40,7 +40,7 @@ class WatchController(object): def __init__(self, options): self.options = options - self.engine_rpcapi = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() self.policy = policy.Enforcer(scope='cloudwatch') def _enforce(self, req, action): @@ -139,7 +139,7 @@ class WatchController(object): name = None try: - watch_list = self.engine_rpcapi.show_watch(con, watch_name=name) + watch_list = self.rpc_client.show_watch(con, watch_name=name) except rpc_common.RemoteError as ex: return exception.map_remote_error(ex) @@ -230,8 +230,8 @@ class WatchController(object): # so we pass None/None and do any filtering locally null_kwargs = {'metric_namespace': None, 'metric_name': None} - watch_data = self.engine_rpcapi.show_watch_metric(con, - **null_kwargs) + watch_data = self.rpc_client.show_watch_metric(con, + **null_kwargs) except rpc_common.RemoteError as ex: return exception.map_remote_error(ex) @@ -294,7 +294,7 @@ class WatchController(object): 'Dimensions': dimensions}} try: - self.engine_rpcapi.create_watch_data(con, watch_name, data) + self.rpc_client.create_watch_data(con, watch_name, data) except rpc_common.RemoteError as ex: return exception.map_remote_error(ex) @@ -330,8 +330,8 @@ class WatchController(object): logger.debug(_("setting %(name)s to %(state)s") % { 'name': name, 'state': state_map[state]}) try: - self.engine_rpcapi.set_watch_state(con, watch_name=name, - state=state_map[state]) + self.rpc_client.set_watch_state(con, watch_name=name, + state=state_map[state]) except rpc_common.RemoteError as ex: return exception.map_remote_error(ex) diff --git a/heat/api/openstack/v1/actions.py b/heat/api/openstack/v1/actions.py index 68ff5b83db..9786549292 100644 --- a/heat/api/openstack/v1/actions.py +++ b/heat/api/openstack/v1/actions.py @@ -32,7 +32,7 @@ class ActionController(object): def __init__(self, options): self.options = options - self.engine = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() @util.identified_stack def action(self, req, identity, body={}): @@ -52,9 +52,9 @@ class ActionController(object): raise exc.HTTPBadRequest(_("Invalid action %s specified") % ac) if ac == self.SUSPEND: - self.engine.stack_suspend(req.context, identity) + self.rpc_client.stack_suspend(req.context, identity) elif ac == self.RESUME: - self.engine.stack_resume(req.context, identity) + self.rpc_client.stack_resume(req.context, identity) else: raise exc.HTTPInternalServerError(_("Unexpected action %s") % ac) diff --git a/heat/api/openstack/v1/build_info.py b/heat/api/openstack/v1/build_info.py index 4e4bfc27a7..3660644792 100644 --- a/heat/api/openstack/v1/build_info.py +++ b/heat/api/openstack/v1/build_info.py @@ -30,11 +30,11 @@ class BuildInfoController(object): def __init__(self, options): self.options = options - self.engine = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() @util.policy_enforce def build_info(self, req): - engine_revision = self.engine.get_revision(req.context) + engine_revision = self.rpc_client.get_revision(req.context) build_info = { 'api': {'revision': cfg.CONF.revision['heat_revision']}, 'engine': {'revision': engine_revision} diff --git a/heat/api/openstack/v1/events.py b/heat/api/openstack/v1/events.py index 40e5112d87..0d387d3bcd 100644 --- a/heat/api/openstack/v1/events.py +++ b/heat/api/openstack/v1/events.py @@ -78,12 +78,12 @@ class EventController(object): def __init__(self, options): self.options = options - self.engine = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() def _event_list(self, req, identity, filter_func=lambda e: True, detail=False): - events = self.engine.list_events(req.context, - identity) + events = self.rpc_client.list_events(req.context, + identity) keys = None if detail else summary_keys return [format_event(req, e, keys) for e in events if filter_func(e)] diff --git a/heat/api/openstack/v1/resources.py b/heat/api/openstack/v1/resources.py index 75cd6371bf..9601028b91 100644 --- a/heat/api/openstack/v1/resources.py +++ b/heat/api/openstack/v1/resources.py @@ -65,7 +65,7 @@ class ResourceController(object): def __init__(self, options): self.options = options - self.engine = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() @util.identified_stack def index(self, req, identity): @@ -73,8 +73,8 @@ class ResourceController(object): Lists summary information for all resources """ - res_list = self.engine.list_stack_resources(req.context, - identity) + res_list = self.rpc_client.list_stack_resources(req.context, + identity) return {'resources': [format_resource(req, res) for res in res_list]} @@ -84,9 +84,9 @@ class ResourceController(object): Gets detailed information for a resource """ - res = self.engine.describe_stack_resource(req.context, - identity, - resource_name) + res = self.rpc_client.describe_stack_resource(req.context, + identity, + resource_name) return {'resource': format_resource(req, res)} @@ -96,19 +96,18 @@ class ResourceController(object): Gets metadata information for a resource """ - res = self.engine.describe_stack_resource(req.context, - identity, - resource_name) + res = self.rpc_client.describe_stack_resource(req.context, + identity, + resource_name) return {engine_api.RES_METADATA: res[engine_api.RES_METADATA]} @util.identified_stack def signal(self, req, identity, resource_name, body=None): - self.engine.resource_signal( - req.context, - stack_identity=identity, - resource_name=resource_name, - details=body) + self.rpc_client.resource_signal(req.context, + stack_identity=identity, + resource_name=resource_name, + details=body) def create_resource(options): diff --git a/heat/api/openstack/v1/software_configs.py b/heat/api/openstack/v1/software_configs.py index eb0c11574b..5d9ddeae2f 100644 --- a/heat/api/openstack/v1/software_configs.py +++ b/heat/api/openstack/v1/software_configs.py @@ -30,7 +30,7 @@ class SoftwareConfigController(object): def __init__(self, options): self.options = options - self.engine = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() def default(self, req, **args): raise exc.HTTPNotFound() @@ -40,7 +40,7 @@ class SoftwareConfigController(object): """ Gets detailed information for a software config """ - sc = self.engine.show_software_config( + sc = self.rpc_client.show_software_config( req.context, config_id) return {'software_config': sc} @@ -57,7 +57,7 @@ class SoftwareConfigController(object): 'outputs': body.get('outputs'), 'options': body.get('options'), } - sc = self.engine.create_software_config( + sc = self.rpc_client.create_software_config( req.context, **create_data) return {'software_config': sc} @@ -66,7 +66,7 @@ class SoftwareConfigController(object): """ Delete an existing software config """ - res = self.engine.delete_software_config(req.context, config_id) + res = self.rpc_client.delete_software_config(req.context, config_id) if res is not None: raise exc.HTTPBadRequest(res['Error']) diff --git a/heat/api/openstack/v1/software_deployments.py b/heat/api/openstack/v1/software_deployments.py index 78a28439b1..46a1e102eb 100644 --- a/heat/api/openstack/v1/software_deployments.py +++ b/heat/api/openstack/v1/software_deployments.py @@ -30,7 +30,7 @@ class SoftwareDeploymentController(object): def __init__(self, options): self.options = options - self.engine = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() def default(self, req, **args): raise exc.HTTPNotFound() @@ -44,7 +44,7 @@ class SoftwareDeploymentController(object): 'server_id': 'single', } params = util.get_allowed_params(req.params, whitelist) - sds = self.engine.list_software_deployments(req.context, **params) + sds = self.rpc_client.list_software_deployments(req.context, **params) return {'software_deployments': sds} @util.policy_enforce @@ -52,8 +52,8 @@ class SoftwareDeploymentController(object): """ Gets detailed information for a software deployment """ - sd = self.engine.show_software_deployment( - req.context, deployment_id) + sd = self.rpc_client.show_software_deployment(req.context, + deployment_id) return {'software_deployment': sd} @util.policy_enforce @@ -65,8 +65,8 @@ class SoftwareDeploymentController(object): 'config_id', 'server_id', 'input_values', 'signal_id', 'action', 'status', 'status_reason')) - sd = self.engine.create_software_deployment( - req.context, **create_data) + sd = self.rpc_client.create_software_deployment(req.context, + **create_data) return {'software_deployment': sd} @util.policy_enforce @@ -77,8 +77,9 @@ class SoftwareDeploymentController(object): update_data = dict((k, body.get(k)) for k in ( 'config_id', 'input_values', 'output_values', 'action', 'status', 'status_reason')) - sd = self.engine.update_software_deployment( - req.context, deployment_id, **update_data) + sd = self.rpc_client.update_software_deployment(req.context, + deployment_id, + **update_data) return {'software_deployment': sd} @util.policy_enforce @@ -86,8 +87,8 @@ class SoftwareDeploymentController(object): """ Delete an existing software deployment """ - res = self.engine.delete_software_deployment( - req.context, deployment_id) + res = self.rpc_client.delete_software_deployment(req.context, + deployment_id) if res is not None: raise exc.HTTPBadRequest(res['Error']) diff --git a/heat/api/openstack/v1/stacks.py b/heat/api/openstack/v1/stacks.py index 509d469374..dd1b5336c4 100644 --- a/heat/api/openstack/v1/stacks.py +++ b/heat/api/openstack/v1/stacks.py @@ -147,7 +147,7 @@ class StackController(object): def __init__(self, options): self.options = options - self.engine = rpc_client.EngineClient() + self.rpc_client = rpc_client.EngineClient() def default(self, req, **args): raise exc.HTTPNotFound() @@ -170,17 +170,17 @@ class StackController(object): params = util.get_allowed_params(req.params, whitelist) filter_params = util.get_allowed_params(req.params, filter_whitelist) - stacks = self.engine.list_stacks(req.context, - filters=filter_params, - **params) + stacks = self.rpc_client.list_stacks(req.context, + filters=filter_params, + **params) count = None if req.params.get('with_count'): try: # Check if engine has been updated to a version with # support to count_stacks before trying to use it. - count = self.engine.count_stacks(req.context, - filters=filter_params) + count = self.rpc_client.count_stacks(req.context, + filters=filter_params) except AttributeError as exc: logger.warning("Old Engine Version: %s" % str(exc)) @@ -191,7 +191,7 @@ class StackController(object): """ Lists detailed information for all stacks """ - stacks = self.engine.list_stacks(req.context) + stacks = self.rpc_client.list_stacks(req.context) return {'stacks': [stacks_view.format_stack(req, s) for s in stacks]} @@ -203,12 +203,12 @@ class StackController(object): data = InstantiationData(body) - result = self.engine.preview_stack(req.context, - data.stack_name(), - data.template(), - data.environment(), - data.files(), - data.args()) + result = self.rpc_client.preview_stack(req.context, + data.stack_name(), + data.template(), + data.environment(), + data.files(), + data.args()) formatted_stack = stacks_view.format_stack(req, result) return {'stack': formatted_stack} @@ -220,12 +220,12 @@ class StackController(object): """ data = InstantiationData(body) - result = self.engine.create_stack(req.context, - data.stack_name(), - data.template(), - data.environment(), - data.files(), - data.args()) + result = self.rpc_client.create_stack(req.context, + data.stack_name(), + data.template(), + data.environment(), + data.files(), + data.args()) formatted_stack = stacks_view.format_stack( req, @@ -241,8 +241,8 @@ class StackController(object): try: identity = dict(identifier.HeatIdentifier.from_arn(stack_name)) except ValueError: - identity = self.engine.identify_stack(req.context, - stack_name) + identity = self.rpc_client.identify_stack(req.context, + stack_name) location = util.make_url(req, identity) if path: @@ -256,8 +256,8 @@ class StackController(object): Gets detailed information for a stack """ - stack_list = self.engine.show_stack(req.context, - identity) + stack_list = self.rpc_client.show_stack(req.context, + identity) if not stack_list: raise exc.HTTPInternalServerError() @@ -272,8 +272,8 @@ class StackController(object): Get the template body for an existing stack """ - templ = self.engine.get_template(req.context, - identity) + templ = self.rpc_client.get_template(req.context, + identity) if templ is None: raise exc.HTTPNotFound() @@ -288,12 +288,12 @@ class StackController(object): """ data = InstantiationData(body) - self.engine.update_stack(req.context, - identity, - data.template(), - data.environment(), - data.files(), - data.args()) + self.rpc_client.update_stack(req.context, + identity, + data.template(), + data.environment(), + data.files(), + data.args()) raise exc.HTTPAccepted() @@ -303,9 +303,9 @@ class StackController(object): Delete the specified stack """ - res = self.engine.delete_stack(req.context, - identity, - cast=False) + res = self.rpc_client.delete_stack(req.context, + identity, + cast=False) if res is not None: raise exc.HTTPBadRequest(res['Error']) @@ -318,8 +318,8 @@ class StackController(object): Abandons specified stack by deleting the stack and it's resources from the database, but underlying resources will not be deleted. """ - return self.engine.abandon_stack(req.context, - identity) + return self.rpc_client.abandon_stack(req.context, + identity) @util.policy_enforce def validate_template(self, req, body): @@ -330,8 +330,8 @@ class StackController(object): data = InstantiationData(body) - result = self.engine.validate_template(req.context, - data.template()) + result = self.rpc_client.validate_template(req.context, + data.template()) if 'Error' in result: raise exc.HTTPBadRequest(result['Error']) @@ -346,21 +346,21 @@ class StackController(object): support_status = req.params.get('support_status', None) return { 'resource_types': - self.engine.list_resource_types(req.context, support_status)} + self.rpc_client.list_resource_types(req.context, support_status)} @util.policy_enforce def resource_schema(self, req, type_name): """ Returns the schema of the given resource type. """ - return self.engine.resource_schema(req.context, type_name) + return self.rpc_client.resource_schema(req.context, type_name) @util.policy_enforce def generate_template(self, req, type_name): """ Generates a template based on the specified type. """ - return self.engine.generate_template(req.context, type_name) + return self.rpc_client.generate_template(req.context, type_name) class StackSerializer(wsgi.JSONResponseSerializer): diff --git a/heat/common/custom_backend_auth.py b/heat/common/custom_backend_auth.py index 294ebfc8cd..4ad416077a 100644 --- a/heat/common/custom_backend_auth.py +++ b/heat/common/custom_backend_auth.py @@ -34,6 +34,7 @@ class AuthProtocol(object): def __init__(self, app, conf): self.conf = conf self.app = app + self.rpc_client = rpc_client.EngineClient() def __call__(self, env, start_response): """ @@ -44,8 +45,7 @@ class AuthProtocol(object): """ LOG.debug(_('Authenticating user token')) context = local.store.context - engine = rpc_client.EngineClient() - authenticated = engine.authenticated_to_backend(context) + authenticated = self.rpc_client.authenticated_to_backend(context) if authenticated: return self.app(env, start_response) else: diff --git a/heat/tests/test_api_openstack_v1.py b/heat/tests/test_api_openstack_v1.py index 60fabc1c39..a432fb1047 100644 --- a/heat/tests/test_api_openstack_v1.py +++ b/heat/tests/test_api_openstack_v1.py @@ -438,7 +438,7 @@ class StackControllerTest(ControllerTest, HeatTestCase): self._mock_enforce_setup(mock_enforce, 'index', True) params = {'with_count': 'True'} req = self._get('/stacks', params=params) - engine = self.controller.engine + engine = self.controller.rpc_client engine.list_stacks = mock.Mock(return_value=[]) engine.count_stacks = mock.Mock(return_value=0) @@ -451,7 +451,7 @@ class StackControllerTest(ControllerTest, HeatTestCase): self._mock_enforce_setup(mock_enforce, 'index', True) params = {'with_count': ''} req = self._get('/stacks', params=params) - engine = self.controller.engine + engine = self.controller.rpc_client engine.list_stacks = mock.Mock(return_value=[]) engine.count_stacks = mock.Mock() @@ -466,7 +466,7 @@ class StackControllerTest(ControllerTest, HeatTestCase): self._mock_enforce_setup(mock_enforce, 'index', True) params = {'with_count': 'Truthy'} req = self._get('/stacks', params=params) - engine = self.controller.engine + engine = self.controller.rpc_client engine.list_stacks = mock.Mock(return_value=[]) mock_count_stacks.side_effect = AttributeError("Should not exist") @@ -3266,7 +3266,7 @@ class BuildInfoControllerTest(ControllerTest, HeatTestCase): def test_theres_a_default_api_build_revision(self, mock_enforce): self._mock_enforce_setup(mock_enforce, 'build_info', True) req = self._get('/build_info') - self.controller.engine = mock.Mock() + self.controller.rpc_client = mock.Mock() response = self.controller.build_info(req, tenant_id=self.tenant) self.assertIn('api', response) @@ -3280,7 +3280,7 @@ class BuildInfoControllerTest(ControllerTest, HeatTestCase): req = self._get('/build_info') mock_engine = mock.Mock() mock_engine.get_revision.return_value = 'engine_revision' - self.controller.engine = mock_engine + self.controller.rpc_client = mock_engine mock_conf.revision = {'heat_revision': 'test'} response = self.controller.build_info(req, tenant_id=self.tenant) @@ -3291,7 +3291,7 @@ class BuildInfoControllerTest(ControllerTest, HeatTestCase): req = self._get('/build_info') mock_engine = mock.Mock() mock_engine.get_revision.return_value = 'engine_revision' - self.controller.engine = mock_engine + self.controller.rpc_client = mock_engine response = self.controller.build_info(req, tenant_id=self.tenant) self.assertIn('engine', response) @@ -3335,7 +3335,7 @@ class SoftwareConfigControllerTest(ControllerTest, HeatTestCase): expected = {'software_config': return_value} with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'show_software_config', return_value=return_value): resp = self.controller.show( @@ -3359,7 +3359,7 @@ class SoftwareConfigControllerTest(ControllerTest, HeatTestCase): expected = {'software_config': return_value} with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'create_software_config', return_value=return_value): resp = self.controller.create( @@ -3373,7 +3373,7 @@ class SoftwareConfigControllerTest(ControllerTest, HeatTestCase): req = self._delete('/software_configs/%s' % config_id) return_value = None with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'delete_software_config', return_value=return_value): self.assertRaises( @@ -3387,7 +3387,7 @@ class SoftwareConfigControllerTest(ControllerTest, HeatTestCase): req = self._delete('/software_configs/%s' % config_id) return_value = {'Error': 'something wrong'} with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'delete_software_config', return_value=return_value): self.assertRaises( @@ -3412,7 +3412,7 @@ class SoftwareDeploymentControllerTest(ControllerTest, HeatTestCase): req = self._get('/software_deployments') return_value = [] with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'list_software_deployments', return_value=return_value) as mock_call: resp = self.controller.index(req, tenant_id=self.tenant) @@ -3423,7 +3423,7 @@ class SoftwareDeploymentControllerTest(ControllerTest, HeatTestCase): server_id = 'fb322564-7927-473d-8aad-68ae7fbf2abf' req = self._get('/software_deployments', {'server_id': server_id}) with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'list_software_deployments', return_value=return_value) as mock_call: resp = self.controller.index(req, tenant_id=self.tenant) @@ -3458,7 +3458,7 @@ class SoftwareDeploymentControllerTest(ControllerTest, HeatTestCase): expected = {'software_deployment': return_value} with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'show_software_deployment', return_value=return_value): resp = self.controller.show( @@ -3485,7 +3485,7 @@ class SoftwareDeploymentControllerTest(ControllerTest, HeatTestCase): expected = {'software_deployment': return_value} with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'create_software_deployment', return_value=return_value): resp = self.controller.create( @@ -3511,7 +3511,7 @@ class SoftwareDeploymentControllerTest(ControllerTest, HeatTestCase): return_value['server_id'] = server_id expected = {'software_deployment': return_value} with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'update_software_deployment', return_value=return_value): resp = self.controller.update( @@ -3526,7 +3526,7 @@ class SoftwareDeploymentControllerTest(ControllerTest, HeatTestCase): req = self._delete('/software_deployments/%s' % deployment_id) return_value = None with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'delete_software_deployment', return_value=return_value): self.assertRaises( @@ -3540,7 +3540,7 @@ class SoftwareDeploymentControllerTest(ControllerTest, HeatTestCase): req = self._delete('/software_deployments/%s' % deployment_id) return_value = {'Error': 'something wrong'} with mock.patch.object( - self.controller.engine, + self.controller.rpc_client, 'delete_software_deployment', return_value=return_value): self.assertRaises(