summaryrefslogtreecommitdiff
path: root/plugins/modules/vyos_config.py
diff options
context:
space:
mode:
authorCaptTrews <capttrews@gmail.com>2020-01-16 15:50:24 +0000
committerCaptTrews <capttrews@gmail.com>2020-01-16 15:50:24 +0000
commit6b6166151faa3d811ae0ec3010a89e518a26287b (patch)
tree9cf59872c2ddc7e99595db4f47c72a7ce08b6c10 /plugins/modules/vyos_config.py
parentd31b74ba6c74a6e3cdebd80b9eb5272aeb9b0fb4 (diff)
downloadvyos.vyos-6b6166151faa3d811ae0ec3010a89e518a26287b.tar.gz
vyos.vyos-6b6166151faa3d811ae0ec3010a89e518a26287b.zip
Updated from network content collector
Signed-off-by: CaptTrews <capttrews@gmail.com>
Diffstat (limited to 'plugins/modules/vyos_config.py')
-rw-r--r--plugins/modules/vyos_config.py121
1 files changed, 62 insertions, 59 deletions
diff --git a/plugins/modules/vyos_config.py b/plugins/modules/vyos_config.py
index 7c9f3ab..24fa161 100644
--- a/plugins/modules/vyos_config.py
+++ b/plugins/modules/vyos_config.py
@@ -23,96 +23,89 @@ ANSIBLE_METADATA = {
}
-DOCUMENTATION = """
----
-module: vyos_config
-version_added: "2.2"
-author: "Nathaniel Case (@Qalthos)"
+DOCUMENTATION = """module: vyos_config
+author: Nathaniel Case (@Qalthos)
short_description: Manage VyOS configuration on remote device
description:
- - This module provides configuration file management of VyOS
- devices. It provides arguments for managing both the
- configuration file and state of the active configuration. All
- configuration statements are based on `set` and `delete` commands
- in the device configuration.
-extends_documentation_fragment: vyos
+- This module provides configuration file management of VyOS devices. It provides
+ arguments for managing both the configuration file and state of the active configuration.
+ All configuration statements are based on `set` and `delete` commands in the device
+ configuration.
+extends_documentation_fragment:
+- vyos.vyos.vyos
notes:
- - Tested against VyOS 1.1.8 (helium).
- - This module works with connection C(network_cli). See L(the VyOS OS Platform Options,../network/user_guide/platform_vyos.html).
+- Tested against VyOS 1.1.8 (helium).
+- This module works with connection C(network_cli). See L(the VyOS OS Platform Options,../network/user_guide/platform_vyos.html).
options:
lines:
description:
- - The ordered set of configuration lines to be managed and
- compared with the existing configuration on the remote
- device.
+ - The ordered set of configuration lines to be managed and compared with the existing
+ configuration on the remote device.
src:
description:
- - The C(src) argument specifies the path to the source config
- file to load. The source config file can either be in
- bracket format or set format. The source file can include
- Jinja2 template variables.
+ - The C(src) argument specifies the path to the source config file to load. The
+ source config file can either be in bracket format or set format. The source
+ file can include Jinja2 template variables.
match:
description:
- - The C(match) argument controls the method used to match
- against the current active configuration. By default, the
- desired config is matched against the active config and the
- deltas are loaded. If the C(match) argument is set to C(none)
- the active configuration is ignored and the configuration is
- always loaded.
+ - The C(match) argument controls the method used to match against the current
+ active configuration. By default, the desired config is matched against the
+ active config and the deltas are loaded. If the C(match) argument is set to
+ C(none) the active configuration is ignored and the configuration is always
+ loaded.
default: line
- choices: ['line', 'none']
+ choices:
+ - line
+ - none
backup:
description:
- - The C(backup) argument will backup the current devices active
- configuration to the Ansible control host prior to making any
- changes. If the C(backup_options) value is not given, the
- backup file will be located in the backup folder in the playbook
- root directory or role root directory, if playbook is part of an
- ansible role. If the directory does not exist, it is created.
+ - The C(backup) argument will backup the current devices active configuration
+ to the Ansible control host prior to making any changes. If the C(backup_options)
+ value is not given, the backup file will be located in the backup folder in
+ the playbook root directory or role root directory, if playbook is part of an
+ ansible role. If the directory does not exist, it is created.
type: bool
default: 'no'
comment:
description:
- - Allows a commit description to be specified to be included
- when the configuration is committed. If the configuration is
- not changed or committed, this argument is ignored.
- default: 'configured by vyos_config'
+ - Allows a commit description to be specified to be included when the configuration
+ is committed. If the configuration is not changed or committed, this argument
+ is ignored.
+ default: configured by vyos_config
config:
description:
- - The C(config) argument specifies the base configuration to use
- to compare against the desired configuration. If this value
- is not specified, the module will automatically retrieve the
- current active configuration from the remote device.
+ - The C(config) argument specifies the base configuration to use to compare against
+ the desired configuration. If this value is not specified, the module will
+ automatically retrieve the current active configuration from the remote device.
save:
description:
- - The C(save) argument controls whether or not changes made
- to the active configuration are saved to disk. This is
- independent of committing the config. When set to True, the
- active configuration is saved.
+ - The C(save) argument controls whether or not changes made to the active configuration
+ are saved to disk. This is independent of committing the config. When set
+ to True, the active configuration is saved.
type: bool
default: 'no'
backup_options:
description:
- - This is a dict object containing configurable options related to backup file path.
- The value of this option is read only when C(backup) is set to I(yes), if C(backup) is set
- to I(no) this option will be silently ignored.
+ - This is a dict object containing configurable options related to backup file
+ path. The value of this option is read only when C(backup) is set to I(yes),
+ if C(backup) is set to I(no) this option will be silently ignored.
suboptions:
filename:
description:
- - The filename to be used to store the backup configuration. If the the filename
- is not given it will be generated based on the hostname, current time and date
- in format defined by <hostname>_config.<current-date>@<current-time>
+ - The filename to be used to store the backup configuration. If the the filename
+ is not given it will be generated based on the hostname, current time and
+ date in format defined by <hostname>_config.<current-date>@<current-time>
dir_path:
description:
- - This option provides the path ending with directory name in which the backup
- configuration file will be stored. If the directory does not exist it will be first
- created and the filename is either the value of C(filename) or default filename
- as described in C(filename) options description. If the path value is not given
- in that case a I(backup) directory will be created in the current working directory
- and backup configuration will be copied in C(filename) within I(backup) directory.
+ - This option provides the path ending with directory name in which the backup
+ configuration file will be stored. If the directory does not exist it will
+ be first created and the filename is either the value of C(filename) or
+ default filename as described in C(filename) options description. If the
+ path value is not given in that case a I(backup) directory will be created
+ in the current working directory and backup configuration will be copied
+ in C(filename) within I(backup) directory.
type: path
type: dict
- version_added: "2.8"
"""
EXAMPLES = """
@@ -217,7 +210,17 @@ def get_candidate(module):
def format_commands(commands):
- return [line for line in commands if len(line.strip()) > 0]
+ """
+ This function format the input commands and removes the prepend white spaces
+ for command lines having 'set' or 'delete' and it skips empty lines.
+ :param commands:
+ :return: list of commands
+ """
+ return [
+ line.strip() if line.split()[0] in ("set", "delete") else line
+ for line in commands
+ if len(line.strip()) > 0
+ ]
def diff_config(commands, config):