summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Kearney <josh@jk0.org>2011-05-13 09:47:08 -0500
committerJosh Kearney <josh@jk0.org>2011-05-13 09:47:08 -0500
commita8941345c97cccb9171e3d1e172f607dc8d17e6a (patch)
treed3d272d65b3bcb5a5a702f39ff65bd0c078c0732
parent0576766cdf3480ad02159671d2dfc0bdcb154934 (diff)
downloadnova-a8941345c97cccb9171e3d1e172f607dc8d17e6a.tar.gz
nova-a8941345c97cccb9171e3d1e172f607dc8d17e6a.tar.xz
nova-a8941345c97cccb9171e3d1e172f607dc8d17e6a.zip
Make set_admin_password non-blocking to API.
-rw-r--r--nova/api/openstack/servers.py6
-rw-r--r--nova/compute/api.py2
2 files changed, 5 insertions, 3 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index 547310613..aaff57b4a 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -14,6 +14,7 @@
# under the License.
import base64
+import eventlet
import traceback
from webob import exc
@@ -175,8 +176,9 @@ class Controller(common.OpenstackController):
builder = self._get_view_builder(req)
server = builder.build(inst, is_detail=True)
server['server']['adminPass'] = password
- self.compute_api.set_admin_password(context, server['server']['id'],
- password)
+ # We don't want this to block
+ eventlet.spawn(self.compute_api.set_admin_password(
+ context, server['server']['id'], password))
return server
def _deserialize_create(self, request):
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 63884be97..1c28b6a89 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -484,7 +484,7 @@ class API(base.Base):
def _find_host(self, context, instance_id):
"""Find the host associated with an instance."""
- for attempts in xrange(10):
+ for attempts in xrange(30):
instance = self.get(context, instance_id)
host = instance["host"]
if host: