From 5ff854284fe7b13b47040378b1f3198b21fd8f9a Mon Sep 17 00:00:00 2001 From: Rohit Thakur Date: Thu, 30 Apr 2020 17:38:01 +0530 Subject: new states added Signed-off-by: Rohit Thakur --- .../vyos/argspec/lldp_global/lldp_global.py | 11 +- .../network/vyos/config/lldp_global/lldp_global.py | 58 +++++-- plugins/modules/vyos_lldp_global.py | 184 ++++++++++++++++++++- .../vyos_lldp_global/tests/cli/_parsed_config.cfg | 2 + .../vyos_lldp_global/tests/cli/empty_config.yaml | 23 +++ .../vyos_lldp_global/tests/cli/gathered.yaml | 33 ++++ .../targets/vyos_lldp_global/tests/cli/parsed.yaml | 41 +++++ .../vyos_lldp_global/tests/cli/rendered.yaml | 38 +++++ .../targets/vyos_lldp_global/vars/main.yaml | 5 + 9 files changed, 368 insertions(+), 27 deletions(-) create mode 100644 tests/integration/targets/vyos_lldp_global/tests/cli/_parsed_config.cfg create mode 100644 tests/integration/targets/vyos_lldp_global/tests/cli/gathered.yaml create mode 100644 tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml create mode 100644 tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml diff --git a/plugins/module_utils/network/vyos/argspec/lldp_global/lldp_global.py b/plugins/module_utils/network/vyos/argspec/lldp_global/lldp_global.py index 84bbc00c..6205fd77 100644 --- a/plugins/module_utils/network/vyos/argspec/lldp_global/lldp_global.py +++ b/plugins/module_utils/network/vyos/argspec/lldp_global/lldp_global.py @@ -19,7 +19,6 @@ # builder template. # ############################################# - """ The arg spec for the vyos_lldp_global module """ @@ -48,8 +47,16 @@ class Lldp_globalArgs(object): # pylint: disable=R0903 }, "type": "dict", }, + "running_config": {"type": "str"}, "state": { - "choices": ["merged", "replaced", "deleted"], + "choices": [ + "merged", + "replaced", + "deleted", + "rendered", + "parsed", + "gathered", + ], "default": "merged", "type": "str", }, diff --git a/plugins/module_utils/network/vyos/config/lldp_global/lldp_global.py b/plugins/module_utils/network/vyos/config/lldp_global/lldp_global.py index 010e96dd..c70d27ff 100644 --- a/plugins/module_utils/network/vyos/config/lldp_global/lldp_global.py +++ b/plugins/module_utils/network/vyos/config/lldp_global/lldp_global.py @@ -47,20 +47,20 @@ class Lldp_global(ConfigBase): def __init__(self, module): super(Lldp_global, self).__init__(module) - def get_lldp_global_facts(self): + def get_lldp_global_facts(self, data=None): """ Get the 'facts' (the current configuration) :rtype: A dictionary :returns: The current configuration as a dictionary """ facts, _warnings = Facts(self._module).get_facts( - self.gather_subset, self.gather_network_resources + self.gather_subset, self.gather_network_resources, data=data ) lldp_global_facts = facts["ansible_network_resources"].get( "lldp_global" ) if not lldp_global_facts: - return {} + return [] return lldp_global_facts def execute_module(self): @@ -70,22 +70,45 @@ class Lldp_global(ConfigBase): :returns: The result from module execution """ result = {"changed": False} - commands = list() warnings = list() + commands = list() + + if self.state in self.ACTION_STATES: + existing_lldp_global_facts = self.get_lldp_global_facts() + else: + existing_lldp_global_facts = [] - existing_lldp_global_facts = self.get_lldp_global_facts() - commands.extend(self.set_config(existing_lldp_global_facts)) - if commands: + if self.state in self.ACTION_STATES or self.state == "rendered": + commands.extend(self.set_config(existing_lldp_global_facts)) + + if commands and self.state in self.ACTION_STATES: if not self._module.check_mode: self._connection.edit_config(commands) result["changed"] = True - result["commands"] = commands - changed_lldp_global_facts = self.get_lldp_global_facts() + if self.state in self.ACTION_STATES: + result["commands"] = commands + + if self.state in self.ACTION_STATES or self.state == "gathered": + changed_lldp_global_facts = self.get_lldp_global_facts() + elif self.state == "rendered": + result["rendered"] = commands + elif self.state == "parsed": + running_config = self._module.params["running_config"] + if not running_config: + self._module.fail_json( + msg="value of running_config parameter must not be empty for state parsed" + ) + result["parsed"] = self.get_lldp_global_facts(data=running_config) + else: + changed_lldp_global_facts = [] - result["before"] = existing_lldp_global_facts - if result["changed"]: - result["after"] = changed_lldp_global_facts + if self.state in self.ACTION_STATES: + result["before"] = existing_lldp_global_facts + if result["changed"]: + result["after"] = changed_lldp_global_facts + elif self.state == "gathered": + result["gathered"] = changed_lldp_global_facts result["warnings"] = warnings return result @@ -113,18 +136,17 @@ class Lldp_global(ConfigBase): to the desired configuration """ commands = [] - state = self._module.params["state"] - if state in ("merged", "replaced") and not want: + if self.state in ("merged", "replaced", "rendered") and not want: self._module.fail_json( msg="value of config parameter must not be empty for state {0}".format( - state + self.state ) ) - if state == "deleted": + if self.state == "deleted": commands.extend(self._state_deleted(want=None, have=have)) - elif state == "merged": + elif self.state in ("merged", "rendered"): commands.extend(self._state_merged(want=want, have=have)) - elif state == "replaced": + elif self.state == "replaced": commands.extend(self._state_replaced(want=want, have=have)) return commands diff --git a/plugins/modules/vyos_lldp_global.py b/plugins/modules/vyos_lldp_global.py index 08eb1133..3b11a250 100644 --- a/plugins/modules/vyos_lldp_global.py +++ b/plugins/modules/vyos_lldp_global.py @@ -37,8 +37,7 @@ ANSIBLE_METADATA = { } DOCUMENTATION = """module: vyos_lldp_global -short_description: Manage link layer discovery protocol (LLDP) attributes on VyOS - devices.. +short_description: LLDP global resource module description: This module manages link layer discovery protocol (LLDP) attributes on VyOS devices. notes: @@ -72,6 +71,15 @@ options: - edp - fdp - sonmp + running_config: + description: + - This option is used only with state I(parsed). + - The value of this option should be the output received from the VyOS device by executing + the command B(show configuration commands | grep lldp). + - The state I(parsed) reads the configuration from C(running_config) option and transforms + it into Ansible structured data as per the resource module's argspec and the value is then + returned in the I(parsed) key within the result. + type: str state: description: - The state of the configuration after module completion. @@ -80,6 +88,9 @@ options: - merged - replaced - deleted + - gathered + - rendered + - parsed default: merged """ EXAMPLES = """ @@ -89,10 +100,9 @@ EXAMPLES = """ # ------------- # # vyos@vyos:~$ show configuration commands|grep lldp -# vyos@vyos:~$ # - name: Merge provided configuration with device configuration - vyos_lldp_global: + vyos.vyos.vyos_lldp_global: config: legacy_protocols: - 'fdp' @@ -154,7 +164,7 @@ EXAMPLES = """ # set service lldp snmp enable # - name: Replace device configurations with provided configurations - vyos_lldp_global: + vyos.vyos.vyos_lldp_global: config: legacy_protocols: - 'edp' @@ -231,7 +241,7 @@ EXAMPLES = """ # set service lldp management-address '192.0.2.14' # - name: Delete attributes of given lldp service (This won't delete the LLDP service itself) - vyos_lldp_global: + vyos.vyos.vyos_lldp_global: config: state: deleted # @@ -273,6 +283,163 @@ EXAMPLES = """ # set service lldp +# Using gathered +# +# Before state: +# ------------- +# +# vyos@192# run show configuration commands | grep lldp +# set service lldp legacy-protocols 'cdp' +# set service lldp management-address '192.0.2.17' +# +- name: Gather lldp global config with provided configurations + vyos.vyos.vyos_lldp_global: + config: + state: gathered +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +# "gathered": [ +# { +# "config_trap": true, +# "group": { +# "address_group": [ +# { +# "description": "Sales office hosts address list", +# "members": [ +# { +# "address": "192.0.3.1" +# }, +# { +# "address": "192.0.3.2" +# } +# ], +# "name": "ENG-HOSTS" +# }, +# { +# "description": "Sales office hosts address list", +# "members": [ +# { +# "address": "192.0.2.1" +# }, +# { +# "address": "192.0.2.2" +# }, +# { +# "address": "192.0.2.3" +# } +# ], +# "name": "SALES-HOSTS" +# } +# ], +# "network_group": [ +# { +# "description": "This group has the Management network addresses", +# "members": [ +# { +# "address": "192.0.1.0/24" +# } +# ], +# "name": "MGMT" +# } +# ] +# }, +# "log_martians": true, +# "ping": { +# "all": true, +# "broadcast": true +# }, +# "route_redirects": [ +# { +# "afi": "ipv4", +# "icmp_redirects": { +# "receive": false, +# "send": true +# }, +# "ip_src_route": true +# } +# ], +# "state_policy": [ +# { +# "action": "accept", +# "connection_type": "established", +# "log": true +# }, +# { +# "action": "reject", +# "connection_type": "invalid" +# } +# ], +# "syn_cookies": true, +# "twa_hazards_protection": true, +# "validation": "strict" +# } +# +# After state: +# ------------- +# +# vyos@192# run show configuration commands | grep lldp +# set service lldp legacy-protocols 'cdp' +# set service lldp management-address '192.0.2.17' + + +# Using rendered +# +# +- name: Render the commands for provided configuration + vyos.vyos.vyos_lldp_global: + config: + address: 192.0.2.17 + enable: true + legacy_protocols: + - cdp + state: rendered +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +# +# "rendered": [ +# "set service lldp legacy-protocols 'cdp'", +# "set service lldp", +# "set service lldp management-address '192.0.2.17'" +# ] +# + + +# Using parsed +# +# +- name: Parse the provided commands to provide structured configuration + vyos.vyos.vyos_lldp_global: + running_config: + "set service lldp legacy-protocols 'cdp' + set service lldp legacy-protocols 'fdp' + set service lldp management-address '192.0.2.11'" + state: parsed +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +# +# "parsed": { +# "address": "192.0.2.11", +# "enable": true, +# "legacy_protocols": [ +# "cdp", +# "fdp" +# ] +# } +# + + """ RETURN = """ before: @@ -317,13 +484,16 @@ def main(): required_if = [ ("state", "merged", ("config",)), ("state", "replaced", ("config",)), + ("state", "rendered", ("config",)), + ("state", "parsed", ("running_config",)), ] + mutually_exclusive = [("config", "running_config")] module = AnsibleModule( argument_spec=Lldp_globalArgs.argument_spec, required_if=required_if, supports_check_mode=True, + mutually_exclusive=mutually_exclusive, ) - result = Lldp_global(module).execute_module() module.exit_json(**result) diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/_parsed_config.cfg b/tests/integration/targets/vyos_lldp_global/tests/cli/_parsed_config.cfg new file mode 100644 index 00000000..4eedf01d --- /dev/null +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/_parsed_config.cfg @@ -0,0 +1,2 @@ +set service lldp legacy-protocols 'cdp' +set service lldp management-address '192.0.2.17' diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/empty_config.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/empty_config.yaml index a197c454..0333fa41 100644 --- a/tests/integration/targets/vyos_lldp_global/tests/cli/empty_config.yaml +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/empty_config.yaml @@ -24,3 +24,26 @@ - assert: that: - result.msg == 'value of config parameter must not be empty for state replaced' + +- name: Parsed with empty running_config should give appropriate error message + register: result + ignore_errors: true + vyos.vyos.vyos_lldp_global: + running_config: + state: parsed + +- assert: + that: + - result.msg == 'value of running_config parameter must not be empty for state + parsed' + +- name: Rendered with empty config should give appropriate error message + register: result + ignore_errors: true + vyos.vyos.vyos_lldp_global: + config: + state: rendered + +- assert: + that: + - result.msg == 'value of config parameter must not be empty for state rendered' diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/gathered.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/gathered.yaml new file mode 100644 index 00000000..8ba7dd5a --- /dev/null +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/gathered.yaml @@ -0,0 +1,33 @@ +--- +- debug: + msg: START vyos_lldp_global gathered integration tests on connection={{ + ansible_connection }} + +- include_tasks: _remove_config.yaml + +- include_tasks: _populate.yaml + +- block: + + - name: Merge the provided configuration with the exisiting running configuration + register: result + vyos.vyos.vyos_lldp_global: &id001 + config: + state: gathered + + - name: Assert that gathered dicts was correctly generated + assert: + that: + - "{{ populate == result['gathered'] }}" + + - name: Gather the existing running configuration (IDEMPOTENT) + register: result + vyos.vyos.vyos_lldp_global: *id001 + + - name: Assert that the previous task was idempotent + assert: + that: + - result['changed'] == false + always: + + - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml new file mode 100644 index 00000000..21b93240 --- /dev/null +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml @@ -0,0 +1,41 @@ +--- +- debug: + msg: START vyos_lldp_global parsed integration tests on connection={{ ansible_connection + }} + +- include_tasks: _remove_config.yaml + +- include_tasks: _populate.yaml + +- block: + + - name: Gather lldp_global facts + register: lldp_global_facts + vyos.vyos.vyos_facts: + gather_subset: + - default + gather_network_resources: + - lldp_global + + - name: Provide the running configuration for parsing (config to be parsed) + register: result + vyos.vyos.vyos_lldp_global: &id001 + running_config: "{{ lookup('file', '_parsed_config.cfg') }}" + state: parsed + + - name: Assert that correct parsing done + assert: + that: "{{ ansible_facts['network_resources']['lldp_global'] == result['parsed']\ + \ }}" + + - name: Gather the existing running configuration (IDEMPOTENT) + register: result + vyos.vyos.vyos_lldp_global: *id001 + + - name: Assert that the previous task was idempotent + assert: + that: + - result['changed'] == false + always: + + - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml new file mode 100644 index 00000000..a8327877 --- /dev/null +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml @@ -0,0 +1,38 @@ +--- +- debug: + msg: START vyos_lldp_global rendered integration tests on connection={{ + ansible_connection }} + +- include_tasks: _remove_config.yaml + +- include_tasks: _populate.yaml + +- block: + + - name: Structure provided configuration into device specific commands + register: result + vyos.vyos.vyos_lldp_global: &id001 + config: + address: 192.0.2.17 + enable: true + legacy_protocols: + - cdp + state: rendered + + - name: Assert that correct set of commands were generated + assert: + that: + - "{{ rendered['commands'] | symmetric_difference(result['rendered'])\ + \ |length == 0 }}" + + - name: Structure provided configuration into device specific commands (IDEMPOTENT) + register: result + vyos.vyos.vyos_lldp_global: *id001 + + - name: Assert that the previous task was idempotent + assert: + that: + - result['changed'] == false + always: + + - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_lldp_global/vars/main.yaml b/tests/integration/targets/vyos_lldp_global/vars/main.yaml index 81e71bed..fb4b31e9 100644 --- a/tests/integration/targets/vyos_lldp_global/vars/main.yaml +++ b/tests/integration/targets/vyos_lldp_global/vars/main.yaml @@ -31,6 +31,11 @@ replaced: - cdp - edp - sonmp +rendered: + commands: + - set service lldp legacy-protocols 'cdp' + - set service lldp + - set service lldp management-address '192.0.2.17' deleted: commands: - delete service lldp management-address -- cgit v1.2.3 From 116cac16a41c92f051fff0d8365caddabb415721 Mon Sep 17 00:00:00 2001 From: Rohit Thakur Date: Mon, 4 May 2020 09:57:33 +0530 Subject: version added Signed-off-by: Rohit Thakur --- plugins/modules/vyos_lldp_global.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/modules/vyos_lldp_global.py b/plugins/modules/vyos_lldp_global.py index 3b11a250..80ec4c13 100644 --- a/plugins/modules/vyos_lldp_global.py +++ b/plugins/modules/vyos_lldp_global.py @@ -80,6 +80,7 @@ options: it into Ansible structured data as per the resource module's argspec and the value is then returned in the I(parsed) key within the result. type: str + version_added: "1.0.0" state: description: - The state of the configuration after module completion. -- cgit v1.2.3 From 3314d6619c34636f19444031ef65c612a4c4d06f Mon Sep 17 00:00:00 2001 From: Rohit Thakur Date: Wed, 6 May 2020 17:15:08 +0530 Subject: common comments incorporated Signed-off-by: Rohit Thakur --- plugins/modules/vyos_lldp_global.py | 8 ++------ .../targets/vyos_lldp_global/tests/cli/gathered.yaml | 12 ++---------- .../targets/vyos_lldp_global/tests/cli/parsed.yaml | 10 +--------- .../targets/vyos_lldp_global/tests/cli/rendered.yaml | 10 +--------- 4 files changed, 6 insertions(+), 34 deletions(-) diff --git a/plugins/modules/vyos_lldp_global.py b/plugins/modules/vyos_lldp_global.py index 80ec4c13..3a93c955 100644 --- a/plugins/modules/vyos_lldp_global.py +++ b/plugins/modules/vyos_lldp_global.py @@ -30,16 +30,13 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -ANSIBLE_METADATA = { - "metadata_version": "1.1", - "status": ["preview"], - "supported_by": "network", -} +ANSIBLE_METADATA = {"metadata_version": "1.1", "supported_by": "Ansible"} DOCUMENTATION = """module: vyos_lldp_global short_description: LLDP global resource module description: This module manages link layer discovery protocol (LLDP) attributes on VyOS devices. +version_added: "1.0.0" 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). @@ -80,7 +77,6 @@ options: it into Ansible structured data as per the resource module's argspec and the value is then returned in the I(parsed) key within the result. type: str - version_added: "1.0.0" state: description: - The state of the configuration after module completion. diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/gathered.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/gathered.yaml index 8ba7dd5a..95e01de6 100644 --- a/tests/integration/targets/vyos_lldp_global/tests/cli/gathered.yaml +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/gathered.yaml @@ -9,9 +9,9 @@ - block: - - name: Merge the provided configuration with the exisiting running configuration + - name: Gather the provided configuration with the exisiting running configuration register: result - vyos.vyos.vyos_lldp_global: &id001 + vyos.vyos.vyos_lldp_global: config: state: gathered @@ -20,14 +20,6 @@ that: - "{{ populate == result['gathered'] }}" - - name: Gather the existing running configuration (IDEMPOTENT) - register: result - vyos.vyos.vyos_lldp_global: *id001 - - - name: Assert that the previous task was idempotent - assert: - that: - - result['changed'] == false always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml index 21b93240..173e3a6d 100644 --- a/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml @@ -19,7 +19,7 @@ - name: Provide the running configuration for parsing (config to be parsed) register: result - vyos.vyos.vyos_lldp_global: &id001 + vyos.vyos.vyos_lldp_global: running_config: "{{ lookup('file', '_parsed_config.cfg') }}" state: parsed @@ -28,14 +28,6 @@ that: "{{ ansible_facts['network_resources']['lldp_global'] == result['parsed']\ \ }}" - - name: Gather the existing running configuration (IDEMPOTENT) - register: result - vyos.vyos.vyos_lldp_global: *id001 - - - name: Assert that the previous task was idempotent - assert: - that: - - result['changed'] == false always: - include_tasks: _remove_config.yaml diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml index a8327877..620fb78e 100644 --- a/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml @@ -11,7 +11,7 @@ - name: Structure provided configuration into device specific commands register: result - vyos.vyos.vyos_lldp_global: &id001 + vyos.vyos.vyos_lldp_global: config: address: 192.0.2.17 enable: true @@ -25,14 +25,6 @@ - "{{ rendered['commands'] | symmetric_difference(result['rendered'])\ \ |length == 0 }}" - - name: Structure provided configuration into device specific commands (IDEMPOTENT) - register: result - vyos.vyos.vyos_lldp_global: *id001 - - - name: Assert that the previous task was idempotent - assert: - that: - - result['changed'] == false always: - include_tasks: _remove_config.yaml -- cgit v1.2.3 From eb0b2da9decdedffb669f53aeb0517b2b07c6748 Mon Sep 17 00:00:00 2001 From: Rohit Thakur Date: Fri, 8 May 2020 11:15:31 +0530 Subject: parsed test case updated Signed-off-by: Rohit Thakur --- .../vyos_lldp_global/tests/cli/_parsed_config.cfg | 1 + .../targets/vyos_lldp_global/tests/cli/parsed.yaml | 38 ++++++---------------- .../vyos_lldp_global/tests/cli/rendered.yaml | 2 -- .../targets/vyos_lldp_global/vars/main.yaml | 7 ++++ 4 files changed, 18 insertions(+), 30 deletions(-) diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/_parsed_config.cfg b/tests/integration/targets/vyos_lldp_global/tests/cli/_parsed_config.cfg index 4eedf01d..9c9f66c5 100644 --- a/tests/integration/targets/vyos_lldp_global/tests/cli/_parsed_config.cfg +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/_parsed_config.cfg @@ -1,2 +1,3 @@ +set service lldp legacy-protocols 'fdp' set service lldp legacy-protocols 'cdp' set service lldp management-address '192.0.2.17' diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml index 173e3a6d..b9c3abf0 100644 --- a/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/parsed.yaml @@ -3,31 +3,13 @@ msg: START vyos_lldp_global parsed integration tests on connection={{ ansible_connection }} -- include_tasks: _remove_config.yaml - -- include_tasks: _populate.yaml - -- block: - - - name: Gather lldp_global facts - register: lldp_global_facts - vyos.vyos.vyos_facts: - gather_subset: - - default - gather_network_resources: - - lldp_global - - - name: Provide the running configuration for parsing (config to be parsed) - register: result - vyos.vyos.vyos_lldp_global: - running_config: "{{ lookup('file', '_parsed_config.cfg') }}" - state: parsed - - - name: Assert that correct parsing done - assert: - that: "{{ ansible_facts['network_resources']['lldp_global'] == result['parsed']\ - \ }}" - - always: - - - include_tasks: _remove_config.yaml +- name: Parse externally provided LLDP global config to agnostic model + register: result + vyos.vyos.vyos_lldp_global: + running_config: "{{ lookup('file', '_parsed_config.cfg') }}" + state: parsed + +- name: Assert that config was correctly parsed + assert: + that: + - "{{ parsed['after'] == result['parsed'] }}" diff --git a/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml b/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml index 620fb78e..5e9f4c5a 100644 --- a/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml +++ b/tests/integration/targets/vyos_lldp_global/tests/cli/rendered.yaml @@ -5,8 +5,6 @@ - include_tasks: _remove_config.yaml -- include_tasks: _populate.yaml - - block: - name: Structure provided configuration into device specific commands diff --git a/tests/integration/targets/vyos_lldp_global/vars/main.yaml b/tests/integration/targets/vyos_lldp_global/vars/main.yaml index fb4b31e9..622b8e4d 100644 --- a/tests/integration/targets/vyos_lldp_global/vars/main.yaml +++ b/tests/integration/targets/vyos_lldp_global/vars/main.yaml @@ -31,6 +31,13 @@ replaced: - cdp - edp - sonmp +parsed: + after: + address: 192.0.2.17 + enable: true + legacy_protocols: + - fdp + - cdp rendered: commands: - set service lldp legacy-protocols 'cdp' -- cgit v1.2.3