55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# Copyright 2018 Red Hat
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
from __future__ import absolute_import, division, print_function
|
|
__metaclass__ = type
|
|
|
|
|
|
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
|
'status': ['preview'],
|
|
'supported_by': 'network'}
|
|
|
|
|
|
DOCUMENTATION = '''
|
|
---
|
|
module: command_parser
|
|
short_description: Parses text into JSON facts based on rules
|
|
description:
|
|
- Provides a rules base text parser that is closely modeled after the Ansible
|
|
playbook language. This parser will iterate of the rules and parse the
|
|
output of structured ASCII text into a JSON data structure that can be
|
|
added to the inventory host facts.
|
|
version_added: "2.5"
|
|
options:
|
|
dir:
|
|
description:
|
|
- The path to the directory that contains the parsers. The module will
|
|
load all parsers found in this directory and pass the content through
|
|
the them. This argument is mutually exclusive with C(file).
|
|
default: null
|
|
file:
|
|
description:
|
|
- The path to the parser to load from disk on the Ansible
|
|
controller. This can be either the absolute path or relative path.
|
|
This argument is mutually exclusive with C(dir).
|
|
Default path is {{ playbook_dir }}/parser_templates/{{ ansible_network_os }}
|
|
or {{ playbook_dir }}/parser_templates or {{ playbook_dir }}
|
|
default: "{{ playbook_dir }}/parser_templates/{{ ansible_network_os }}"
|
|
content:
|
|
description:
|
|
- The text content to pass to the parser engine. This argument provides
|
|
the input to the text parser for generating the JSON data.
|
|
required: true
|
|
author:
|
|
- Peter Sprygada (@privateip)
|
|
'''
|
|
|
|
EXAMPLES = '''
|
|
- command_parser:
|
|
file: files/parser_templates/show_interface.yaml
|
|
content: "{{ lookup('file', 'output/show_interfaces.txt') }}"
|
|
'''
|