def _get_metadata_value(self, obj, key): if key not in obj['metadata']: if isinstance(obj, volume.Volume): raise exception.VolumeMetadataNotFound(volume_id=obj['id'], metadata_key=key) elif isinstance(obj, snapshot.Snapshot): raise exception.SnapshotMetadataNotFound(snapshot_id=obj['id'], metadata_key=key) else: raise exception.MetadataAbsent() return obj['metadata'][key]
def delete(self, req, snapshot_id, id): """Deletes an existing metadata.""" context = req.environ['cinder.context'] snapshot, metadata = self._get_snapshot_and_metadata( context, snapshot_id) if id not in metadata: raise exception.SnapshotMetadataNotFound(snapshot_id=snapshot_id, metadata_key=id) self.volume_api.delete_snapshot_metadata(context, snapshot, id) return webob.Response(status_int=http_client.OK)
def delete(self, req, snapshot_id, id): """Deletes an existing metadata.""" context = req.environ['cinder.context'] metadata = self._get_metadata(context, snapshot_id) if id not in metadata: raise exception.SnapshotMetadataNotFound(snapshot_id=snapshot_id, metadata_key=id) # Not found exception will be handled at the wsgi level snapshot = self.volume_api.get_snapshot(context, snapshot_id) self.volume_api.delete_snapshot_metadata(context, snapshot, id) return webob.Response(status_int=200)