'Returns EBS snapshot object for snapshot_id.
Raises exception.SnapshotDoesNotExist if unsuccessful'

def get_snapshot(self, snapshot_id, owner='self'):

    try:
        return self.get_snapshots(filters={'snapshot-id': snapshot_id}, owner=owner)[0]
    except boto.exception.EC2ResponseError as e:
        if (e.error_code == 'InvalidSnapshot.NotFound'):
            raise exception.SnapshotDoesNotExist(snapshot_id)
        raise
    except IndexError:
        raise exception.SnapshotDoesNotExist(snapshot_id)
