'Delete the temporary snapshot created for clone operations.
There can be instances where the source and target both attempt to
delete a temp snapshot simultaneously, so we must lock the snap and
then double check it is on the array.
:param array: the array serial number
:param snap_name: the snapshot name
:param source_device_id: the source device id'

def delete_temp_volume_snap(self, array, snap_name, source_device_id):

    @coordination.synchronized('emc-snapvx-{snapvx_name}')
    def do_delete_temp_snap(snapvx_name):
        if self.rest.get_volume_snap(array, source_device_id, snapvx_name):
            self.delete_volume_snap(array, snapvx_name, source_device_id)
    do_delete_temp_snap(snap_name)
