lib/ansiblelint/utils.py
def normalize_task_v2(task):
    '''Ensures tasks have an action key and strings are converted to python objects'''

    result = dict()
    mod_arg_parser = ModuleArgsParser(task)
    try:
        action, arguments, result['delegate_to'] = mod_arg_parser.parse()
    except AnsibleParserError as e:
        try:
            task_info = "%s:%s" % (task[FILENAME_KEY], task[LINE_NUMBER_KEY])
            del task[FILENAME_KEY]
            del task[LINE_NUMBER_KEY]
        except KeyError:
            task_info = "Unknown"
        try:
            import pprint
            pp = pprint.PrettyPrinter(indent=2)
            task_pprint = pp.pformat(task)
        except ImportError:
            task_pprint = task
        raise SystemExit("Couldn't parse task at %s (%s)\n%s" % (task_info, e.message, task_pprint))

    # denormalize shell -> command conversion
    if '_uses_shell' in arguments:
        action = 'shell'
        del(arguments['_uses_shell'])

    for (k, v) in list(task.items()):
        if k in ('action', 'local_action', 'args', 'delegate_to') or k == action:
            # we don't want to re-assign these values, which were
            # determined by the ModuleArgsParser() above
            continue
        else:
            result[k] = v

    result['action'] = dict(__ansible_module__=action)

    if '_raw_params' in arguments:
        result['action']['__ansible_arguments__'] = arguments['_raw_params'].split(' ')
        del(arguments['_raw_params'])
    else:
        result['action']['__ansible_arguments__'] = list()

    if 'argv' in arguments and not result['action']['__ansible_arguments__']:
        result['action']['__ansible_arguments__'] = arguments['argv']
        del(arguments['argv'])

    result['action'].update(arguments)
    return result
def normalize_task_v2(task):
    '''Ensures tasks have an action key and strings are converted to python objects'''

    result = dict()
    mod_arg_parser = ModuleArgsParser(task)
    try:
        action, arguments, result['delegate_to'] = mod_arg_parser.parse()
    except AnsibleParserError as e:
        try:
            task_info = "%s:%s" % (task[FILENAME_KEY], task[LINE_NUMBER_KEY])
            del task[FILENAME_KEY]
            del task[LINE_NUMBER_KEY]
        except KeyError:
            task_info = "Unknown"
        try:
            import pprint
            pp = pprint.PrettyPrinter(indent=2)
            task_pprint = pp.pformat(task)
        except ImportError:
            task_pprint = task
        raise SystemExit("Couldn't parse task at %s (%s)\n%s" % (task_info, e.message, task_pprint))

    # denormalize shell -> command conversion
    if '_uses_shell' in arguments:
        action = 'shell'
        del(arguments['_uses_shell'])

    for (k, v) in list(task.items()):
        if k in ('action', 'local_action', 'args', 'delegate_to') or k == action:
            # we don't want to re-assign these values, which were
            # determined by the ModuleArgsParser() above
            continue
        else:
            result[k] = v

    result['action'] = dict(__ansible_module__=action)

    if '_raw_params' in arguments:
        result['action']['__ansible_arguments__'] = arguments['_raw_params'].split(' ')
        del(arguments['_raw_params'])
    else:
        result['action']['__ansible_arguments__'] = list()

    if 'argv' in arguments and not result['action']['__ansible_arguments__']:
        result['action']['__ansible_arguments__'] = arguments['argv']
        del(arguments['argv'])

    result['action'].update(arguments)
    return result
def normalize_task_v2 ( task ) : result = dict ( ) mod_arg_parser = ModuleArgsParser ( task ) try : action , arguments , result [ 'delegate_to' ] = mod_arg_parser . parse ( ) except AnsibleParserError as e : try : task_info = "%s:%s" % ( task [ FILENAME_KEY ] , task [ LINE_NUMBER_KEY ] ) del task [ FILENAME_KEY ] del task [ LINE_NUMBER_KEY ] except KeyError : task_info = "Unknown" try : import pprint pp = pprint . PrettyPrinter ( indent = 2 ) task_pprint = pp . pformat ( task ) except ImportError : task_pprint = task raise SystemExit ( "Couldn't parse task at %s (%s)\n%s" % ( task_info , e . message , task_pprint ) ) # denormalize shell -> command conversion if '_uses_shell' in arguments : action = 'shell' del ( arguments [ '_uses_shell' ] ) for ( k , v ) in list ( task . items ( ) ) : if k in ( 'action' , 'local_action' , 'args' , 'delegate_to' ) or k == action : # we don't want to re-assign these values, which were # determined by the ModuleArgsParser() above continue else : result [ k ] = v result [ 'action' ] = dict ( __ansible_module__ = action ) if '_raw_params' in arguments : result [ 'action' ] [ '__ansible_arguments__' ] = arguments [ '_raw_params' ] . split ( ' ' ) del ( arguments [ '_raw_params' ] ) else : result [ 'action' ] [ '__ansible_arguments__' ] = list ( ) if 'argv' in arguments and not result [ 'action' ] [ '__ansible_arguments__' ] : result [ 'action' ] [ '__ansible_arguments__' ] = arguments [ 'argv' ] del ( arguments [ 'argv' ] ) result [ 'action' ] . update ( arguments ) return result
Ensures tasks have an action key and strings are converted to python objects
Ensures tasks have an action key and strings are converted to python objects