diff options
| author | Mark Washenberger <mark.washenberger@rackspace.com> | 2011-04-05 16:30:30 -0400 |
|---|---|---|
| committer | Mark Washenberger <mark.washenberger@rackspace.com> | 2011-04-05 16:30:30 -0400 |
| commit | b59f7e2b9ed0f08ac033cd839a6996a1931ccec6 (patch) | |
| tree | eb1e0662320ed788e6d2ae13ce50ad4a335ca526 /nova/api | |
| parent | 2468743697faf81851bef1cafba95337dbd57153 (diff) | |
refactor to handle invalid adminPass
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/servers.py | 11 |
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): |
