diff options
author | Rohit Thakur <rohitthakur2590@outlook.com> | 2020-04-30 17:38:01 +0530 |
---|---|---|
committer | Rohit Thakur <rohitthakur2590@outlook.com> | 2020-04-30 17:38:01 +0530 |
commit | 5ff854284fe7b13b47040378b1f3198b21fd8f9a (patch) | |
tree | feee2d7585ecf7ddadccfa03eaa9d4213b494dbf /plugins/module_utils | |
parent | 77e8b041b2983415ac36eb6264f6e385ac87b074 (diff) | |
download | vyos-ansible-collection-5ff854284fe7b13b47040378b1f3198b21fd8f9a.tar.gz vyos-ansible-collection-5ff854284fe7b13b47040378b1f3198b21fd8f9a.zip |
new states added
Signed-off-by: Rohit Thakur <rohitthakur2590@outlook.com>
Diffstat (limited to 'plugins/module_utils')
-rw-r--r-- | plugins/module_utils/network/vyos/argspec/lldp_global/lldp_global.py | 11 | ||||
-rw-r--r-- | plugins/module_utils/network/vyos/config/lldp_global/lldp_global.py | 58 |
2 files changed, 49 insertions, 20 deletions
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 84bbc00..6205fd7 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 010e96d..c70d27f 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 |