summaryrefslogtreecommitdiff
path: root/plugins/modules/vyos_ospf_interfaces.py.preview
diff options
context:
space:
mode:
authoromnom62 <omnom62@outlook.com>2026-06-01 05:42:31 +1000
committeromnom62 <omnom62@outlook.com>2026-06-01 05:42:31 +1000
commit967a8c581df46f3c01d642ed08ec0d7ec43d79f6 (patch)
treedccfe21768a6629ac85de2fb70136cd1baf9be3f /plugins/modules/vyos_ospf_interfaces.py.preview
parent6a161ed8f263e152ebfd227e669a51773de5a028 (diff)
downloadrest.vyos-967a8c581df46f3c01d642ed08ec0d7ec43d79f6.tar.gz
rest.vyos-967a8c581df46f3c01d642ed08ec0d7ec43d79f6.zip
removing previews
Diffstat (limited to 'plugins/modules/vyos_ospf_interfaces.py.preview')
-rw-r--r--plugins/modules/vyos_ospf_interfaces.py.preview290
1 files changed, 0 insertions, 290 deletions
diff --git a/plugins/modules/vyos_ospf_interfaces.py.preview b/plugins/modules/vyos_ospf_interfaces.py.preview
deleted file mode 100644
index 37876d4..0000000
--- a/plugins/modules/vyos_ospf_interfaces.py.preview
+++ /dev/null
@@ -1,290 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# GNU General Public License v3.0+
-
-from __future__ import absolute_import, division, print_function
-
-
-__metaclass__ = type
-
-DOCUMENTATION = r"""
----
-module: vyos_ospf_interfaces
-short_description: OSPF Interfaces Resource Module via REST API.
-description:
- - Manages per-interface OSPF parameters (cost, hello/dead timers, authentication,
- passive mode, etc.) for both OSPFv2 and OSPFv3 via the VyOS HTTPS REST API.
-version_added: "1.0.0"
-author:
- - VyOS Community (@vyos)
-options:
- config:
- description: List of OSPF interface configurations.
- type: list
- elements: dict
- suboptions:
- name:
- description: Interface name.
- type: str
- address_family:
- description: OSPF settings per address family.
- type: list
- elements: dict
- suboptions:
- afi:
- description: Address family (ipv4=OSPFv2, ipv6=OSPFv3).
- type: str
- choices: [ipv4, ipv6]
- required: true
- authentication:
- type: dict
- suboptions:
- plaintext_password:
- type: str
- md5_key:
- type: dict
- suboptions:
- key_id:
- type: int
- key:
- type: str
- bandwidth:
- type: int
- cost:
- type: int
- dead_interval:
- type: int
- hello_interval:
- type: int
- mtu_ignore:
- type: bool
- network:
- type: str
- priority:
- type: int
- retransmit_interval:
- type: int
- transmit_delay:
- type: int
- ifmtu:
- type: int
- instance:
- type: str
- passive:
- type: bool
- state:
- type: str
- choices: [merged, replaced, overridden, deleted, gathered]
- default: merged
- hostname:
- type: str
- required: true
- port:
- type: int
- default: 443
- api_key:
- type: str
- required: true
- no_log: true
- timeout:
- type: int
- default: 30
- verify_ssl:
- type: bool
- default: false
-"""
-
-RETURN = r"""
-before:
- returned: always
- type: list
-after:
- returned: when changed
- type: list
-commands:
- returned: always
- type: list
-"""
-
-from ansible.module_utils.basic import AnsibleModule
-from ansible_collections.vyos.rest.plugins.module_utils.vyos_rest import (
- VYOS_REST_CONNECTION_ARGSPEC,
- VyOSRestClient,
- VyOSRestError,
-)
-
-
-_IFACE_TYPES = {
- "eth": "ethernet",
- "bond": "bonding",
- "lo": "loopback",
- "dummy": "dummy",
- "br": "bridge",
- "wg": "wireguard",
- "tun": "tunnel",
- "vxlan": "vxlan",
-}
-
-
-def _itype(name):
- for p, t in _IFACE_TYPES.items():
- if name.startswith(p):
- return t
- return "ethernet"
-
-
-def _ospf_iface_base(name, afi):
- itype = _itype(name)
- if afi == "ipv4":
- return ["interfaces", itype, name, "ip", "ospf"]
- return ["interfaces", itype, name, "ipv6", "ospfv3"]
-
-
-def _apply(client, cfg, commands):
- name = cfg["name"]
- for af in cfg.get("address_family") or []:
- afi = af["afi"]
- base = _ospf_iface_base(name, afi)
-
- int_map = {
- "cost": "cost",
- "bandwidth": "bandwidth",
- "dead_interval": "dead-interval",
- "hello_interval": "hello-interval",
- "priority": "priority",
- "retransmit_interval": "retransmit-interval",
- "transmit_delay": "transmit-delay",
- "ifmtu": "ifmtu",
- }
- for param, key in int_map.items():
- if af.get(param) is not None:
- client.configure_set(base + [key], str(af[param]))
- commands.append("set {b} {k} {v}".format(b=" ".join(base), k=key, v=af[param]))
-
- if af.get("mtu_ignore"):
- client.configure_set(base + ["mtu-ignore"])
- commands.append("set {b} mtu-ignore".format(b=" ".join(base)))
- if af.get("passive"):
- client.configure_set(base + ["passive"])
- commands.append("set {b} passive".format(b=" ".join(base)))
- if af.get("network"):
- client.configure_set(base + ["network"], af["network"])
- if af.get("instance"):
- client.configure_set(base + ["instance-id"], af["instance"])
-
- auth = af.get("authentication") or {}
- if auth.get("plaintext_password"):
- client.configure_set(
- base + ["authentication", "plaintext-password"],
- auth["plaintext_password"],
- )
- commands.append(
- "set {b} authentication plaintext-password ...".format(b=" ".join(base)),
- )
- md5 = auth.get("md5_key") or {}
- if md5.get("key_id") and md5.get("key"):
- client.configure_set(
- base + ["authentication", "md5", "key-id", str(md5["key_id"]), "md5-key"],
- md5["key"],
- )
-
-
-def _get(client):
- try:
- r = client.retrieve_show_config(["interfaces"])
- raw = r.get("data") or {}
- out = []
- for itype, itype_data in raw.items():
- if not isinstance(itype_data, dict):
- continue
- for iname, idata in itype_data.items():
- if not isinstance(idata, dict):
- continue
- afs = []
- ip_ospf = (idata.get("ip") or {}).get("ospf")
- if ip_ospf:
- afs.append({"afi": "ipv4", "ospf_data": ip_ospf})
- ip6_ospfv3 = (idata.get("ipv6") or {}).get("ospfv3")
- if ip6_ospfv3:
- afs.append({"afi": "ipv6", "ospfv3_data": ip6_ospfv3})
- if afs:
- out.append({"name": iname, "address_family": afs})
- return out
- except VyOSRestError:
- return []
-
-
-def main():
- argument_spec = dict(
- config=dict(
- type="list",
- elements="dict",
- options=dict(
- name=dict(type="str"),
- address_family=dict(
- type="list",
- elements="dict",
- options=dict(
- afi=dict(type="str", required=True, choices=["ipv4", "ipv6"]),
- authentication=dict(
- type="dict",
- options=dict(
- plaintext_password=dict(type="str", no_log=True),
- md5_key=dict(
- type="dict",
- options=dict(
- key_id=dict(type="int"),
- key=dict(type="str", no_log=True),
- ),
- ),
- ),
- ),
- bandwidth=dict(type="int"),
- cost=dict(type="int"),
- dead_interval=dict(type="int"),
- hello_interval=dict(type="int"),
- mtu_ignore=dict(type="bool"),
- network=dict(type="str"),
- priority=dict(type="int"),
- retransmit_interval=dict(type="int"),
- transmit_delay=dict(type="int"),
- ifmtu=dict(type="int"),
- instance=dict(type="str"),
- passive=dict(type="bool"),
- ),
- ),
- ),
- ),
- state=dict(
- type="str",
- default="merged",
- choices=["merged", "replaced", "overridden", "deleted", "gathered"],
- ),
- )
- argument_spec.update(VYOS_REST_CONNECTION_ARGSPEC)
- module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True)
- client = VyOSRestClient(module)
- state = module.params["state"]
- config = module.params.get("config") or []
- commands = []
- changed = False
- before = _get(client)
-
- if state == "gathered":
- module.exit_json(changed=False, gathered=before, before=before, commands=[])
- if module.check_mode:
- module.exit_json(changed=True, before=before, commands=["(check mode)"])
-
- try:
- for cfg in config:
- _apply(client, cfg, commands)
- changed = True
- except VyOSRestError as exc:
- module.fail_json(msg=str(exc))
-
- after = _get(client) if changed else before
- module.exit_json(changed=changed, before=before, after=after, commands=commands)
-
-
-if __name__ == "__main__":
- main()