Exemple #1
0
    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)
Exemple #3
0
    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)