def grains():
    '''
    Get the grains from the proxied device
    '''
    if not DETAILS.get('grains_cache', {}):
        DETAILS['grains_cache'] = GRAINS_CACHE
        try:
            query = {'type': 'op', 'cmd': '<show><system><info></info></system></show>'}
            DETAILS['grains_cache'] = call(query)['result']['system']
        except Exception as err:
            pass
    return DETAILS['grains_cache']