File: //usr/lib/python3.9/site-packages/ansible_collections/arista/eos/plugins/modules/eos_lldp.py
# -*- coding: utf-8 -*-
# (c) 2017, Ansible by Red Hat, inc
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = """
module: eos_lldp
author: Ganesh Nalawade (@ganeshrn)
short_description: Manage LLDP configuration on Arista EOS network devices
description:
- This module provides declarative management of LLDP service on Arista EOS network
devices.
version_added: 1.0.0
notes:
- Tested against Arista EOS 4.24.6F
options:
state:
description:
- State of the LLDP configuration. If value is I(present) lldp will be enabled
else if it is I(absent) it will be disabled.
default: present
type: str
choices:
- present
- absent
- enabled
- disabled
"""
EXAMPLES = """
- name: Enable LLDP service
arista.eos.eos_lldp:
state: present
- name: Disable LLDP service
arista.eos.eos_lldp:
state: absent
"""
RETURN = """
commands:
description: The list of configuration mode commands to send to the device
returned: always, except for the platforms that use Netconf transport to manage the device.
type: list
sample:
- lldp run
"""
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.arista.eos.plugins.module_utils.network.eos.eos import (
get_config,
load_config,
)
def has_lldp(module):
config = get_config(module, flags=["| section lldp"])
is_lldp_enable = False
if "no lldp run" not in config:
is_lldp_enable = True
return is_lldp_enable
def main():
"""main entry point for module execution"""
argument_spec = dict(
state=dict(
default="present",
choices=["present", "absent", "enabled", "disabled"],
),
)
module = AnsibleModule(
argument_spec=argument_spec,
supports_check_mode=True,
)
warnings = list()
result = {"changed": False}
if warnings:
result["warnings"] = warnings
HAS_LLDP = has_lldp(module)
commands = []
if module.params["state"] == "absent" and HAS_LLDP:
commands.append("no lldp run")
elif module.params["state"] == "present" and not HAS_LLDP:
commands.append("lldp run")
result["commands"] = commands
if commands:
commit = not module.check_mode
response = load_config(module, commands, commit=commit)
if response.get("diff") and module._diff:
result["diff"] = {"prepared": response.get("diff")}
result["session_name"] = response.get("session")
result["changed"] = True
module.exit_json(**result)
if __name__ == "__main__":
main()