From b15bfc2edd5d3dd0dca805786bdcf22d3fb0339d Mon Sep 17 00:00:00 2001 From: Unmesh Gurjar Date: Thu, 22 Mar 2012 11:19:45 +0530 Subject: [PATCH] Fixed status validation. Fixes bug 960884. Fixed the status value validation in os-hosts extension and added a negative scenario in unit test for os-hosts extension. Change-Id: Ib4166757561e531494a1a4d3070d7c8971b57dc5 --- nova/api/openstack/compute/contrib/hosts.py | 2 +- nova/tests/api/openstack/compute/contrib/test_hosts.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/nova/api/openstack/compute/contrib/hosts.py b/nova/api/openstack/compute/contrib/hosts.py index 93e0dd983c3..a93da9e01e3 100644 --- a/nova/api/openstack/compute/contrib/hosts.py +++ b/nova/api/openstack/compute/contrib/hosts.py @@ -138,7 +138,7 @@ def update(self, req, id, body): key = raw_key.lower().strip() val = raw_val.lower().strip() if key == "status": - if val[:6] in ("enable", "disabl"): + if val in ("enable", "disable"): update_values['status'] = val.startswith("enable") else: explanation = _("Invalid status: '%s'") % raw_val diff --git a/nova/tests/api/openstack/compute/contrib/test_hosts.py b/nova/tests/api/openstack/compute/contrib/test_hosts.py index 76eb77e566a..77beeae8c02 100644 --- a/nova/tests/api/openstack/compute/contrib/test_hosts.py +++ b/nova/tests/api/openstack/compute/contrib/test_hosts.py @@ -159,6 +159,9 @@ def test_bad_status_value(self): bad_body = {"status": "bad"} self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update, self.req, "host_c1", body=bad_body) + bad_body2 = {"status": "disablabc"} + self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update, + self.req, "host_c1", body=bad_body2) def test_bad_update_key(self): bad_body = {"crazy": "bad"}