summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorMark Washenberger <mark.washenberger@rackspace.com>2011-04-05 16:30:30 -0400
committerMark Washenberger <mark.washenberger@rackspace.com>2011-04-05 16:30:30 -0400
commitb59f7e2b9ed0f08ac033cd839a6996a1931ccec6 (patch)
treeeb1e0662320ed788e6d2ae13ce50ad4a335ca526 /nova/api
parent2468743697faf81851bef1cafba95337dbd57153 (diff)
refactor to handle invalid adminPass
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/servers.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index c19b53b5e..8f5adaad5 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -120,6 +120,11 @@ 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)
+
key_name = None
key_data = None
key_pairs = auth_manager.AuthManager.get_key_pairs(context)
@@ -180,7 +185,6 @@ class Controller(wsgi.Controller):
builder = self._get_view_builder(req)
server = builder.build(inst, is_detail=True)
- password = self._get_admin_password_from_request_server(env['server'])
server['server']['adminPass'] = password
self.compute_api.set_admin_password(context, server['server']['id'],
password)
@@ -652,10 +656,7 @@ class ControllerV11(Controller):
return common.limited_by_marker(items, req)
def _get_admin_password_from_request_server(self, server):
- password = server.get('adminPass')
- if password:
- return password
- return utils.generate_password(16)
+ return server.get('adminPass', utils.generate_password(16))
class ServerCreateRequestXMLDeserializer(object):