Merge "Fixes the 500 response code error when provider details dosent contain the access urls"

This commit is contained in:
Jenkins 2016-06-03 18:07:51 +00:00 committed by Gerrit Code Review
commit c7fcf52050
4 changed files with 13 additions and 5 deletions

View File

@ -30,10 +30,17 @@ class BadProviderDetail(Exception):
class ProviderNotFound(Exception):
"""Raised when domain is not associated with a known Provider"""
class ProviderDetailsIncomplete(Exception):
"""Raised when domain details with a Provider is incomplete"""
class ServiceNotFound(Exception):
"""Raised when service is not found."""

View File

@ -12,7 +12,6 @@
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from oslo_log import log
from poppy.common import errors
@ -61,9 +60,9 @@ class AnalyticsController(base.AnalyticsController):
provider_for_domain = provider
if not provider_for_domain:
msg = "Provider not found for Domain : {0}".format(domain_name)
LOG.warning(msg)
raise errors.ProviderNotFound(msg)
msg = "Provider not found for Domain {0}".format(domain_name)
LOG.error(msg)
raise errors.ProviderDetailsIncomplete(msg)
provider_obj = self.providers[provider_for_domain.lower()].obj
provider_service_controller = provider_obj.service_controller

View File

@ -125,6 +125,8 @@ class ServicesAnalyticsController(base.Controller, hooks.HookController):
)
except errors.ServiceNotFound:
return pecan.Response(status=404)
except errors.ProviderDetailsIncomplete:
return pecan.Response(status=404)
except Exception:
return pecan.Response(status=500)
else:

View File

@ -172,7 +172,7 @@ class DefaultManagerServiceTests(base.TestCase):
services_controller.get_service_details_by_domain_name = \
mock.Mock(return_value=StorageResult(
provider_details=provider_details_dict))
self.assertRaises(errors.ProviderNotFound,
self.assertRaises(errors.ProviderDetailsIncomplete,
analytics_controller.get_metrics_by_domain,
self.project_id, self.domain_name, **extras)