'Perform a soft-delete on an E-Series snapshot.
Mark the snapshot image as no longer needed, so that it can be
purged from the backend when no other snapshots are dependent upon it.
:param es_snapshot: an E-Series snapshot image
:return: None'

def _delete_es_snapshot(self, es_snapshot):

    index = self._get_soft_delete_map()
    snapgroup_ref = es_snapshot['pitGroupRef']
    if (snapgroup_ref in index):
        bitset = na_utils.BitSet(int(index[snapgroup_ref]))
    else:
        bitset = na_utils.BitSet(0)
    images = [img for img in self._client.list_snapshot_images() if (img['pitGroupRef'] == snapgroup_ref)]
    for (i, image) in enumerate(sorted(images, key=(lambda x: x['pitSequenceNumber']))):
        if (image['pitSequenceNumber'] == es_snapshot['pitSequenceNumber']):
            bitset.set(i)
            break
    (index_update, keys_to_del) = self._cleanup_snapshot_images(images, bitset)
    self._merge_soft_delete_changes(index_update, keys_to_del)
