Exemplo n.º 1
0
def lookup_jid(jid, ext_source=None):
    '''
    Return the printout from a previously executed job
    '''
    ret = {}
    if __opts__['ext_job_cache'] or ext_source:
        out = 'nested'
        returner = ext_source if ext_source else __opts__['ext_job_cache']
        mminion = salt.minion.MasterMinion(__opts__)
        data = mminion.returners['{0}.get_jid'.format(returner)](jid)
        for minion in data:
            if u'return' in data[minion]:
                ret[minion] = data[minion].get(u'return')
            else:
                ret[minion] = data[minion].get('return')
            if 'out' in data[minion]:
                out = data[minion]['out']
        salt.output.display_output(ret, out, __opts__)
        return ret

    # Fall back to the local job cache
    client = salt.client.LocalClient(__opts__['conf_file'])

    for mid, data in client.get_full_returns(jid, [], 0).items():
        ret[mid] = data.get('ret')
        salt.output.display_output({mid: ret[mid]}, data.get('out', None),
                                   __opts__)

    return ret
Exemplo n.º 2
0
Arquivo: jobs.py Projeto: herlo/salt
def lookup_jid(jid, ext_source=None):
    '''
    Return the printout from a previously executed job
    '''
    ret = {}
    if __opts__['ext_job_cache'] or ext_source:
        out = 'nested'
        returner = ext_source if ext_source else __opts__['ext_job_cache']
        mminion = salt.minion.MasterMinion(__opts__)
        data = mminion.returners['{0}.get_jid'.format(returner)](jid)
        for minion in data:
            if u'return' in data[minion]:
                ret[minion] = data[minion].get(u'return')
            else:
                ret[minion] = data[minion].get('return')
            if 'out' in data[minion]:
                out = data[minion]['out']
        salt.output.display_output(ret, out, __opts__)
        return ret

    # Fall back to the local job cache
    client = salt.client.LocalClient(__opts__['conf_file'])

    for mid, data in client.get_full_returns(jid, [], 0).items():
        ret[mid] = data.get('ret')
        salt.output.display_output(
                {mid: ret[mid]},
                data.get('out', None),
                __opts__)

    return ret
Exemplo n.º 3
0
def lookup_jid(jid):
    '''
    Return the printout from a previously executed job
    '''
    client = salt.client.LocalClient(__opts__['conf_file'])

    ret = {}
    for mid, data in client.get_full_returns(jid, [], 0).items():
        printout = salt.output.get_outputter(data.get('out', None))
        ret[mid] = data.get('ret')
        printout({mid: ret[mid]})

    return ret
Exemplo n.º 4
0
def lookup_jid(jid):
    '''
    Return the printout from a previously executed job
    '''
    client = salt.client.LocalClient(__opts__['conf_file'])

    ret = {}
    for mid, data in client.get_full_returns(jid, [], 0).items():
        printout = salt.output.get_outputter(data.get('out', None))
        ret[mid] = data.get('ret')
        printout({mid: ret[mid]})

    return ret
Exemplo n.º 5
0
def lookup_jid(jid):
    '''
    Return the printout from a previousely executed job
    '''

    out = None

    def _format_ret(full_ret):
        '''
        Take the full return data and format it to simple output
        '''
        ret = {}
        for key, data in full_ret.items():
            ret[key] = data['ret']
            if 'out' in data:
                out = data['out']
            return ret, out

    client = salt.client.LocalClient(__opts__['conf_file'])
    full_ret = client.get_full_returns(jid, [], 0)
    formatted = _format_ret(full_ret)

    if formatted:
        ret = formatted[0]
        out = formatted[1]
    else:
        ret = SaltException('Job {0} hasn\'t finished. No data yet :('.format(jid))
        out = ''

    # Determine the proper output method and run it
    get_outputter = salt.output.get_outputter
    if isinstance(ret, (list, dict, basestring)) and out:
        printout = get_outputter(out)
    # Pretty print any salt exceptions
    elif isinstance(ret, SaltException):
        printout = get_outputter("txt")
    else:
        printout = get_outputter(None)
    printout(ret)
    return ret
Exemplo n.º 6
0
Arquivo: jobs.py Projeto: studer/salt
def lookup_jid(jid):
    '''
    Return the printout from a previousely executed job
    '''
    def _format_ret(full_ret):
        '''
        Take the full return data and format it to simple output
        '''
        out = None
        ret = {}
        for key, data in full_ret.items():
            ret[key] = data['ret']
            if 'out' in data:
                out = data['out']
        return ret, out

    client = salt.client.LocalClient(__opts__['conf_file'])
    full_ret = client.get_full_returns(jid, [], 0)
    formatted = _format_ret(full_ret)

    if formatted:
        ret = formatted[0]
        out = formatted[1]
    else:
        ret = SaltException(
            'Job {0} hasn\'t finished. No data yet :('.format(jid))
        out = ''

    # Determine the proper output method and run it
    get_outputter = salt.output.get_outputter
    if isinstance(ret, (list, dict, basestring)) and out:
        printout = get_outputter(out)
    # Pretty print any salt exceptions
    elif isinstance(ret, SaltException):
        printout = get_outputter("txt")
    else:
        printout = get_outputter(None)
    printout(ret)
    return ret