diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-03-06 03:08:00 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-03-06 03:08:00 +0000 |
| commit | 9bb2a335903e996a8c7b781152c10310d867dcb8 (patch) | |
| tree | aa5e86150d3aac03fb7f0dc6f7f8f42525ebe945 /nova/api | |
| parent | 43b52f7bd224209771245d987c3ff0f2506803ec (diff) | |
| parent | 913ecb84d286413cfec3dff7cf1b1b71f93bcfce (diff) | |
Merge "Raise 409 when rescuing instance in RESCUE mode"
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/compute/contrib/rescue.py | 8 | ||||
| -rw-r--r-- | nova/api/openstack/extensions.py | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/nova/api/openstack/compute/contrib/rescue.py b/nova/api/openstack/compute/contrib/rescue.py index bd2d09162..20158ff22 100644 --- a/nova/api/openstack/compute/contrib/rescue.py +++ b/nova/api/openstack/compute/contrib/rescue.py @@ -17,6 +17,7 @@ import webob from webob import exc +from nova.api.openstack import common from nova.api.openstack import extensions as exts from nova.api.openstack import wsgi from nova import compute @@ -56,7 +57,12 @@ class RescueController(wsgi.Controller): password = utils.generate_password(FLAGS.password_length) instance = self._get_instance(context, id) - self.compute_api.rescue(context, instance, rescue_password=password) + try: + self.compute_api.rescue(context, instance, + rescue_password=password) + except exception.InstanceInvalidState as state_error: + common.raise_http_conflict_for_instance_invalid_state(state_error, + 'rescue') return {'adminPass': password} @wsgi.action('unrescue') diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py index 7d4a167dd..87d215974 100644 --- a/nova/api/openstack/extensions.py +++ b/nova/api/openstack/extensions.py @@ -301,6 +301,8 @@ def wrap_errors(fn): def wrapped(*args, **kwargs): try: return fn(*args, **kwargs) + except webob.exc.HTTPException: + raise except Exception: raise webob.exc.HTTPInternalServerError() return wrapped |
