summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Washenberger <mark.washenberger@rackspace.com>2011-04-05 16:46:44 -0400
committerMark Washenberger <mark.washenberger@rackspace.com>2011-04-05 16:46:44 -0400
commit7ed00acea541dc4cf3b70ecf923b649e9ee7ae11 (patch)
treeafdb0b18985341b577ce322e7f911a61922d9bc6
parentb59f7e2b9ed0f08ac033cd839a6996a1931ccec6 (diff)
move error handling down into get_password function
-rw-r--r--nova/api/openstack/servers.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index 8f5adaad5..40aca64b4 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -120,10 +120,7 @@ class Controller(wsgi.Controller):
context = req.environ['nova.context']
- password = self._get_admin_password_from_request_server(env['server'])
- if not isinstance(password, basestring) or password == '':
- msg = _("Invalid adminPass")
- return exc.HTTPBadRequest(msg)
+ password = self._get_server_admin_password(env['server'])
key_name = None
key_data = None
@@ -246,7 +243,7 @@ class Controller(wsgi.Controller):
# if the original error is okay, just reraise it
raise error
- def _get_admin_password_from_request_server(self, server):
+ def _get_server_admin_password(self, server):
return utils.generate_password(16)
@scheduler_api.redirect_handler
@@ -655,8 +652,14 @@ class ControllerV11(Controller):
def _limit_items(self, items, req):
return common.limited_by_marker(items, req)
- def _get_admin_password_from_request_server(self, server):
- return server.get('adminPass', utils.generate_password(16))
+ def _get_server_admin_password(self, server):
+ password = server.get('adminPass')
+ if password is None:
+ return utils.generate_password(16)
+ if not isinstance(password, basestring) or password == '':
+ msg = _("Invalid adminPass")
+ raise exc.HTTPBadRequest(msg)
+ return password
class ServerCreateRequestXMLDeserializer(object):