diff --git a/karbor/api/v1/plans.py b/karbor/api/v1/plans.py index 16014ef9..bb2f59e0 100644 --- a/karbor/api/v1/plans.py +++ b/karbor/api/v1/plans.py @@ -403,7 +403,7 @@ class PlansController(wsgi.Controller): try: provider = self.protection_api.show_provider( context, plan["provider_id"]) - except exception: + except Exception: msg = _("The provider could not be found.") raise exc.HTTPBadRequest(explanation=msg) options_schema = provider.get( diff --git a/karbor/tests/unit/api/v1/test_plans.py b/karbor/tests/unit/api/v1/test_plans.py index 576fe7cd..0b5f5272 100644 --- a/karbor/tests/unit/api/v1/test_plans.py +++ b/karbor/tests/unit/api/v1/test_plans.py @@ -96,6 +96,16 @@ class PlanApiTest(base.TestCase): self.assertRaises(exc.HTTPBadRequest, self.controller.create, req, body=body) + @mock.patch( + 'karbor.services.protection.rpcapi.ProtectionAPI.show_provider') + def test_plan_create_InvalidProvider(self, mock_provider): + plan = self._plan_in_request_body() + body = {"plan": plan} + req = fakes.HTTPRequest.blank('/v1/plans') + mock_provider.side_effect = exception.NotFound() + self.assertRaises(exc.HTTPBadRequest, self.controller.create, + req, body=body) + @mock.patch( 'karbor.api.v1.plans.PlansController._plan_get') @mock.patch(