<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def absent(name, onlyif=None, unless=None):
    '''
    Ensure that no instances with the specified names exist.

    CAUTION: This is a destructive state, which will search all
    configured cloud providers for the named instance,
    and destroy it.

    name
        The name of the instance to destroy

    onlyif
        Do run the state only if is unless succeed

    unless
        Do not run the state at least unless succeed

    '''
    ret = {'name': name,
           'changes': {},
           'result': None,
           'comment': ''}
    retcode = __salt__['cmd.retcode']

    if onlyif is not None:
        if not isinstance(onlyif, six.string_types):
            if not onlyif:
                return _valid(name, comment='onlyif condition is false')
        elif isinstance(onlyif, six.string_types):
            if retcode(onlyif, python_shell=True) != 0:
                return _valid(name, comment='onlyif condition is false')
    if unless is not None:
        if not isinstance(unless, six.string_types):
            if unless:
                return _valid(name, comment='unless condition is true')
        elif isinstance(unless, six.string_types):
            if retcode(unless, python_shell=True) == 0:
                return _valid(name, comment='unless condition is true')

    if not __salt__['cloud.has_instance'](name=name, provider=None):
        ret['result'] = True
        ret['comment'] = 'Already absent instance {0}'.format(name)
        return ret

    if __opts__['test']:
        ret['comment'] = 'Instance {0} needs to be destroyed'.format(name)
        return ret

    info = __salt__['cloud.destroy'](name)
    if info and 'Error' not in info:
        ret['changes'] = info
        ret['result'] = True
        ret['comment'] = 'Destroyed instance {0}'.format(name)
    elif 'Error' in info:
        ret['result'] = False
        ret['comment'] = ('Failed to destroy instance {0}: {1}').format(
            name,
            info['Error'],
        )
    else:
        ret['result'] = False
        ret['comment'] = 'Failed to destroy instance {0}'.format(name)
    return ret