summaryrefslogtreecommitdiff
path: root/plugins/module_utils
diff options
context:
space:
mode:
authorRohit Thakur <rohitthakur2590@outlook.com>2020-05-04 12:50:58 +0530
committerRohit Thakur <rohitthakur2590@outlook.com>2020-05-04 12:50:58 +0530
commit79c97597c38931299aff64e47d68bef9e469ba2d (patch)
tree98f55ee667a55afae61ae44c8cda3f261fa8d7da /plugins/module_utils
parent77e8b041b2983415ac36eb6264f6e385ac87b074 (diff)
downloadvyos-ansible-collection-79c97597c38931299aff64e47d68bef9e469ba2d.tar.gz
vyos-ansible-collection-79c97597c38931299aff64e47d68bef9e469ba2d.zip
tox linters fix
Signed-off-by: Rohit Thakur <rohitthakur2590@outlook.com>
Diffstat (limited to 'plugins/module_utils')
-rw-r--r--plugins/module_utils/network/vyos/argspec/l3_interfaces/l3_interfaces.py12
-rw-r--r--plugins/module_utils/network/vyos/config/l3_interfaces/l3_interfaces.py60
-rw-r--r--plugins/module_utils/network/vyos/facts/l3_interfaces/l3_interfaces.py7
3 files changed, 57 insertions, 22 deletions
diff --git a/plugins/module_utils/network/vyos/argspec/l3_interfaces/l3_interfaces.py b/plugins/module_utils/network/vyos/argspec/l3_interfaces/l3_interfaces.py
index 91434e4..2f1dfe4 100644
--- a/plugins/module_utils/network/vyos/argspec/l3_interfaces/l3_interfaces.py
+++ b/plugins/module_utils/network/vyos/argspec/l3_interfaces/l3_interfaces.py
@@ -25,7 +25,6 @@
The arg spec for the vyos_l3_interfaces module
"""
-
from __future__ import absolute_import, division, print_function
__metaclass__ = type
@@ -73,8 +72,17 @@ class L3_interfacesArgs(object): # pylint: disable=R0903
},
"type": "list",
},
+ "running_config": {"type": "str"},
"state": {
- "choices": ["merged", "replaced", "overridden", "deleted"],
+ "choices": [
+ "merged",
+ "replaced",
+ "overridden",
+ "deleted",
+ "rendered",
+ "gathered",
+ "parsed",
+ ],
"default": "merged",
"type": "str",
},
diff --git a/plugins/module_utils/network/vyos/config/l3_interfaces/l3_interfaces.py b/plugins/module_utils/network/vyos/config/l3_interfaces/l3_interfaces.py
index a23e417..122cc1e 100644
--- a/plugins/module_utils/network/vyos/config/l3_interfaces/l3_interfaces.py
+++ b/plugins/module_utils/network/vyos/config/l3_interfaces/l3_interfaces.py
@@ -52,14 +52,14 @@ class L3_interfaces(ConfigBase):
def __init__(self, module):
super(L3_interfaces, self).__init__(module)
- def get_l3_interfaces_facts(self):
+ def get_l3_interfaces_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
)
l3_interfaces_facts = facts["ansible_network_resources"].get(
"l3_interfaces"
@@ -78,25 +78,44 @@ class L3_interfaces(ConfigBase):
warnings = list()
commands = list()
- existing_l3_interfaces_facts = self.get_l3_interfaces_facts()
- commands.extend(self.set_config(existing_l3_interfaces_facts))
- if commands:
- if self._module.check_mode:
- resp = self._connection.edit_config(commands, commit=False)
- else:
- resp = self._connection.edit_config(commands)
- result["changed"] = True
+ if self.state in self.ACTION_STATES:
+ existing_l3_interfaces_facts = self.get_l3_interfaces_facts()
+ else:
+ existing_l3_interfaces_facts = []
- result["commands"] = commands
+ if self.state in self.ACTION_STATES or self.state == "rendered":
+ commands.extend(self.set_config(existing_l3_interfaces_facts))
- if self._module._diff:
- result["diff"] = resp["diff"] if result["changed"] else None
+ if commands and self.state in self.ACTION_STATES:
+ if not self._module.check_mode:
+ self._connection.edit_config(commands)
+ result["changed"] = True
- changed_l3_interfaces_facts = self.get_l3_interfaces_facts()
+ if self.state in self.ACTION_STATES:
+ result["commands"] = commands
+
+ if self.state in self.ACTION_STATES or self.state == "gathered":
+ changed_l3_interfaces_facts = self.get_l3_interfaces_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_l3_interfaces_facts(
+ data=running_config
+ )
+ else:
+ changed_l3_interfaces_facts = []
- result["before"] = existing_l3_interfaces_facts
- if result["changed"]:
- result["after"] = changed_l3_interfaces_facts
+ if self.state in self.ACTION_STATES:
+ result["before"] = existing_l3_interfaces_facts
+ if result["changed"]:
+ result["after"] = changed_l3_interfaces_facts
+ elif self.state == "gathered":
+ result["gathered"] = changed_l3_interfaces_facts
result["warnings"] = warnings
return result
@@ -126,7 +145,10 @@ class L3_interfaces(ConfigBase):
commands = []
state = self._module.params["state"]
- if state in ("merged", "replaced", "overridden") and not want:
+ if (
+ state in ("merged", "replaced", "overridden", "rendered")
+ and not want
+ ):
self._module.fail_json(
msg="value of config parameter must not be empty for state {0}".format(
state
@@ -154,7 +176,7 @@ class L3_interfaces(ConfigBase):
if not obj_in_have:
obj_in_have = {"name": item["name"]}
- if state == "merged":
+ if state in ("merged", "rendered"):
commands.extend(self._state_merged(item, obj_in_have))
elif state == "replaced":
diff --git a/plugins/module_utils/network/vyos/facts/l3_interfaces/l3_interfaces.py b/plugins/module_utils/network/vyos/facts/l3_interfaces/l3_interfaces.py
index d1d62c2..3b99d34 100644
--- a/plugins/module_utils/network/vyos/facts/l3_interfaces/l3_interfaces.py
+++ b/plugins/module_utils/network/vyos/facts/l3_interfaces/l3_interfaces.py
@@ -10,7 +10,12 @@ for a given resource, parsed, and the facts tree is populated
based on the configuration.
"""
-from __future__ import absolute_import, division, print_function
+from __future__ import (
+ absolute_import,
+ division,
+ print_function,
+ unicode_literals,
+)
__metaclass__ = type