'Delete volume\'s snapshot on appliance.
:param snapshot: snapshot reference'

def delete_snapshot(self, snapshot):

    volume_name = self._get_zvol_name(snapshot['volume_name'])
    snapshot_name = ('%s@%s' % (volume_name, snapshot['name']))
    try:
        self.nms.snapshot.destroy(snapshot_name, '')
    except exception.NexentaException as exc:
        if ('does    not    exist' in exc.args[0]):
            LOG.info('Snapshot    %s    does    not    exist,    it    seems    it    was    already    deleted.', snapshot_name)
            return
        elif ('snapshot    has    dependent    clones' in exc.args[0]):
            self._mark_as_garbage(snapshot_name)
            LOG.info('Snapshot    %s    has    dependent    clones,    will    be    deleted    later.', snapshot_name)
            return
        raise
    self._collect_garbage(volume_name)
