'Deletes a snapshot.
:param snapshot: snapshot object
:param volume: source volume'

def delete_snapshot(self, snapshot, volume):

    LOG.info('Delete    Snapshot:    %(snapshotName)s.', {'snapshotName': snapshot.name})
    extra_specs = self._initial_setup(volume)
    (sourcedevice_id, snap_name) = self._parse_snap_info(extra_specs[utils.ARRAY], snapshot)
    if ((not sourcedevice_id) and (not snap_name)):
        sourcedevice_id = self._find_device_on_array(snapshot, extra_specs)
        if sourcedevice_id:
            self._delete_volume(snapshot)
        else:
            LOG.info('No    snapshot    found    on    the    array')
    elif ((not sourcedevice_id) or (not snap_name)):
        LOG.info('No    snapshot    found    on    the    array')
    else:
        self.provision.delete_volume_snap_check_for_links(extra_specs[utils.ARRAY], snap_name, sourcedevice_id, extra_specs)
        LOG.info('Leaving    delete_snapshot:    %(ssname)s.', {'ssname': snap_name})
