summaryrefslogtreecommitdiff
path: root/plugins/module_utils
diff options
context:
space:
mode:
authorRohit Thakur <rohitthakur2590@outlook.com>2020-04-30 17:38:01 +0530
committerRohit Thakur <rohitthakur2590@outlook.com>2020-04-30 17:38:01 +0530
commit5ff854284fe7b13b47040378b1f3198b21fd8f9a (patch)
treefeee2d7585ecf7ddadccfa03eaa9d4213b494dbf /plugins/module_utils
parent77e8b041b2983415ac36eb6264f6e385ac87b074 (diff)
downloadvyos-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.py11
-rw-r--r--plugins/module_utils/network/vyos/config/lldp_global/lldp_global.py58
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