From 197a354300df7f947d080aac964dbd2c774768f0 Mon Sep 17 00:00:00 2001 From: Brian Elliott Date: Fri, 10 Aug 2012 15:43:47 +0000 Subject: Fix HTTP 500 on bad server create Fix scheduler hint extension to check for missing 'server' attribute in the body. Return a HTTP 400. (not 500) bug 1035356 Change-Id: Ifdf8b85e255fd199f15781c8b6c25d421eee7878 --- nova/api/openstack/compute/contrib/scheduler_hints.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'nova/api') diff --git a/nova/api/openstack/compute/contrib/scheduler_hints.py b/nova/api/openstack/compute/contrib/scheduler_hints.py index 86b7564bd..4bff779a5 100644 --- a/nova/api/openstack/compute/contrib/scheduler_hints.py +++ b/nova/api/openstack/compute/contrib/scheduler_hints.py @@ -46,8 +46,13 @@ class SchedulerHintsController(wsgi.Controller): @wsgi.extends def create(self, req, body): hints = self._extract_scheduler_hints(body) - body['server']['scheduler_hints'] = hints - yield + + if 'server' in body: + body['server']['scheduler_hints'] = hints + yield + else: + msg = _("Missing server attribute") + raise webob.exc.HTTPBadRequest(reason=msg) class Scheduler_hints(extensions.ExtensionDescriptor): -- cgit