diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-01-22 23:20:21 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-01-22 23:20:21 +0000 |
| commit | 7fb4cce61b96843956397a475e22c449a3ddddc6 (patch) | |
| tree | a425ad4f84d7f801cc25e68abb6ac0a6751c5c2b /nova/api | |
| parent | 794b0ffc75b71fa69053a11cff330635b7048451 (diff) | |
| parent | 6e3fcd5e3f166a9d0e61dcb2549ea1f331aec956 (diff) | |
Merge "Prevent metadata updates until instance is active."
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/compute/server_metadata.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/nova/api/openstack/compute/server_metadata.py b/nova/api/openstack/compute/server_metadata.py index 023a054d0..0de5d536f 100644 --- a/nova/api/openstack/compute/server_metadata.py +++ b/nova/api/openstack/compute/server_metadata.py @@ -136,6 +136,10 @@ class Controller(object): raise exc.HTTPRequestEntityTooLarge(explanation=unicode(error), headers={'Retry-After': 0}) + except exception.InstanceInvalidState as state_error: + common.raise_http_conflict_for_instance_invalid_state(state_error, + 'update metadata') + @wsgi.serializers(xml=common.MetaItemTemplate) def show(self, req, server_id, id): """Return a single metadata item.""" @@ -162,10 +166,15 @@ class Controller(object): try: server = self.compute_api.get(context, server_id) self.compute_api.delete_instance_metadata(context, server, id) + except exception.InstanceNotFound: msg = _('Server does not exist') raise exc.HTTPNotFound(explanation=msg) + except exception.InstanceInvalidState as state_error: + common.raise_http_conflict_for_instance_invalid_state(state_error, + 'delete metadata') + def create_resource(): return wsgi.Resource(Controller()) |
