From ac21815ecb977840e90cee807fac7992d060c643 Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Tue, 1 May 2012 08:19:02 -0700 Subject: Allow blank adminPass on server create * Fixes bug 992648 Change-Id: Ib796904b3155300a178e37d129e398817c8747d6 --- nova/api/openstack/compute/servers.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'nova/api') diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index af6d9c7d6..4468af401 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -1145,15 +1145,20 @@ class Controller(wsgi.Controller): def _get_server_admin_password(self, server): """Determine the admin password for a server on creation.""" - password = server.get('adminPass') + try: + password = server['adminPass'] + self._validate_admin_password(password) + except KeyError: + password = utils.generate_password(FLAGS.password_length) + except ValueError: + raise exc.HTTPBadRequest(explanation=_("Invalid adminPass")) - if password is None: - return utils.generate_password(FLAGS.password_length) - if not isinstance(password, basestring) or password == '': - msg = _("Invalid adminPass") - raise exc.HTTPBadRequest(explanation=msg) return password + def _validate_admin_password(self, password): + if not isinstance(password, basestring): + raise ValueError() + def _get_server_search_options(self): """Return server search options allowed by non-admin.""" return ('reservation_id', 'name', 'status', 'image', 'flavor', -- cgit