diff options
Diffstat (limited to 'plugins/modules')
| -rw-r--r-- | plugins/modules/vyos_interfaces.py | 264 | ||||
| -rw-r--r-- | plugins/modules/vyos_lag_interfaces.py | 230 | ||||
| -rw-r--r-- | plugins/modules/vyos_static_routes.py | 257 | 
3 files changed, 491 insertions, 260 deletions
| diff --git a/plugins/modules/vyos_interfaces.py b/plugins/modules/vyos_interfaces.py index 93df4e46..6730e306 100644 --- a/plugins/modules/vyos_interfaces.py +++ b/plugins/modules/vyos_interfaces.py @@ -30,14 +30,10 @@ from __future__ import absolute_import, division, print_function  __metaclass__ = type -ANSIBLE_METADATA = { -    "metadata_version": "1.1", -    "status": ["preview"], -    "supported_by": "network", -} +ANSIBLE_METADATA = {"metadata_version": "1.1", "supported_by": "Ansible"}  DOCUMENTATION = """module: vyos_interfaces -short_description: Manages interface attributes of VyOS network devices. +short_description: Interfaces resource module  description:  - This module manages the interface attributes on VyOS network devices.  - This module supports managing base attributes of Ethernet, Bonding, VXLAN, Loopback @@ -45,7 +41,10 @@ description:  notes:  - Tested against VyOS 1.1.8 (helium).  - This module works with connection C(network_cli). See L(the VyOS OS Platform Options,../network/user_guide/platform_vyos.html). -author: Nilashish Chakraborty (@nilashishc) +version_added: "1.0.0" +author: +- Nilashish Chakraborty (@nilashishc) +- Rohit Thakur (@rohitthakur2590)  options:    config:      description: The provided interfaces configuration. @@ -119,6 +118,15 @@ options:              - MTU for the virtual sub-interface.              - Refer to vendor documentation for valid values.              type: int +  running_config: +    description: +      - This option is used only with state I(parsed). +      - The value of this option should be the output received from the VyOS device by executing +        the command B(show configuration commands | grep interfaces). +      - The state I(parsed) reads the configuration from C(running_config) option and transforms +        it into Ansible structured data as per the resource module's argspec and the value is then +        returned in the I(parsed) key within the result. +    type: str    state:      description:      - The state of the configuration after module completion. @@ -128,6 +136,9 @@ options:      - replaced      - overridden      - deleted +    - rendered +    - gathered +    - parsed      default: merged  """  EXAMPLES = """ @@ -152,7 +163,7 @@ EXAMPLES = """  # set interfaces loopback lo  - name: Merge provided configuration with device configuration -  vyos_interfaces: +  vyos.vyos.vyos_interfaces:      config:        - name: eth2          description: 'Configured by Ansible' @@ -330,7 +341,7 @@ EXAMPLES = """  #  #  - name: Replace device configurations of listed interfaces with provided configurations -  vyos_interfaces: +  vyos.vyos.vyos_interfaces:      config:        - name: eth2          description: "Replaced by Ansible" @@ -515,7 +526,7 @@ EXAMPLES = """  #  #  - name: Overrides all device configuration with provided configuration -  vyos_interfaces: +  vyos.vyos.vyos_interfaces:      config:        - name: eth0          description: Outbound Interface For The Appliance @@ -700,7 +711,7 @@ EXAMPLES = """  #  #  - name: Delete attributes of given interfaces (Note - This won't delete the interfaces themselves) -  vyos_interfaces: +  vyos.vyos.vyos_interfaces:      config:        - name: bond1 @@ -838,6 +849,224 @@ EXAMPLES = """  # set interfaces loopback lo  #  # + + +# Using gathered +# +# Before state: +# ------------- +# +# vyos@192# run show configuration commands | grep interfaces +# set interfaces ethernet eth0 address 'dhcp' +# set interfaces ethernet eth0 duplex 'auto' +# set interfaces ethernet eth0 hw-id '08:00:27:50:5e:19' +# set interfaces ethernet eth0 smp_affinity 'auto' +# set interfaces ethernet eth0 speed 'auto' +# set interfaces ethernet eth1 description 'Configured by Ansible' +# set interfaces ethernet eth1 duplex 'auto' +# set interfaces ethernet eth1 mtu '1500' +# set interfaces ethernet eth1 speed 'auto' +# set interfaces ethernet eth1 vif 200 description 'VIF - 200' +# set interfaces ethernet eth2 description 'Configured by Ansible' +# set interfaces ethernet eth2 duplex 'auto' +# set interfaces ethernet eth2 mtu '1500' +# set interfaces ethernet eth2 speed 'auto' +# set interfaces ethernet eth2 vif 200 description 'VIF - 200' +# +- name: Gather listed interfaces with provided configurations +  vyos.vyos.vyos_interfaces: +    config: +    state: gathered +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +#    "gathered": [ +#         { +#             "description": "Configured by Ansible", +#             "duplex": "auto", +#             "enabled": true, +#             "mtu": 1500, +#             "name": "eth2", +#             "speed": "auto", +#             "vifs": [ +#                 { +#                     "description": "VIF - 200", +#                     "enabled": true, +#                     "vlan_id": 200 +#                 } +#             ] +#         }, +#         { +#             "description": "Configured by Ansible", +#             "duplex": "auto", +#             "enabled": true, +#             "mtu": 1500, +#             "name": "eth1", +#             "speed": "auto", +#             "vifs": [ +#                 { +#                     "description": "VIF - 200", +#                     "enabled": true, +#                     "vlan_id": 200 +#                 } +#             ] +#         }, +#         { +#             "duplex": "auto", +#             "enabled": true, +#             "name": "eth0", +#             "speed": "auto" +#         } +#     ] +# +# +# After state: +# ------------- +# +# vyos@192# run show configuration commands | grep interfaces +# set interfaces ethernet eth0 address 'dhcp' +# set interfaces ethernet eth0 duplex 'auto' +# set interfaces ethernet eth0 hw-id '08:00:27:50:5e:19' +# set interfaces ethernet eth0 smp_affinity 'auto' +# set interfaces ethernet eth0 speed 'auto' +# set interfaces ethernet eth1 description 'Configured by Ansible' +# set interfaces ethernet eth1 duplex 'auto' +# set interfaces ethernet eth1 mtu '1500' +# set interfaces ethernet eth1 speed 'auto' +# set interfaces ethernet eth1 vif 200 description 'VIF - 200' +# set interfaces ethernet eth2 description 'Configured by Ansible' +# set interfaces ethernet eth2 duplex 'auto' +# set interfaces ethernet eth2 mtu '1500' +# set interfaces ethernet eth2 speed 'auto' +# set interfaces ethernet eth2 vif 200 description 'VIF - 200' + + +# Using rendered +# +# +- name: Render the commands for provided  configuration +  vyos.vyos.vyos_interfaces: +    config: +      - name: eth0 +        enabled: true +        duplex: auto +        speed: auto +      - name: eth1 +        description: Configured by Ansible - Interface 1 +        mtu: 1500 +        speed: auto +        duplex: auto +        enabled: true +        vifs: +          - vlan_id: 100 +            description: Eth1 - VIF 100 +            mtu: 400 +            enabled: true +          - vlan_id: 101 +            description: Eth1 - VIF 101 +            enabled: true +      - name: eth2 +        description: Configured by Ansible - Interface 2 (ADMIN DOWN) +        mtu: 600 +        enabled: false +    state: rendered +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +# +# "rendered": [ +#         "set interfaces ethernet eth0 duplex 'auto'", +#         "set interfaces ethernet eth0 speed 'auto'", +#         "delete interfaces ethernet eth0 disable", +#         "set interfaces ethernet eth1 duplex 'auto'", +#         "delete interfaces ethernet eth1 disable", +#         "set interfaces ethernet eth1 speed 'auto'", +#         "set interfaces ethernet eth1 description 'Configured by Ansible - Interface 1'", +#         "set interfaces ethernet eth1 mtu '1500'", +#         "set interfaces ethernet eth1 vif 100 description 'Eth1 - VIF 100'", +#         "set interfaces ethernet eth1 vif 100 mtu '400'", +#         "set interfaces ethernet eth1 vif 101 description 'Eth1 - VIF 101'", +#         "set interfaces ethernet eth2 disable", +#         "set interfaces ethernet eth2 description 'Configured by Ansible - Interface 2 (ADMIN DOWN)'", +#         "set interfaces ethernet eth2 mtu '600'" +#     ] + + +# Using parsed +# +# +- name: Parse the configuration. +  vyos.vyos.vyos_interfaces: +    running_config: +      "set interfaces ethernet eth0 address 'dhcp' + set interfaces ethernet eth0 duplex 'auto' + set interfaces ethernet eth0 hw-id '08:00:27:50:5e:19' + set interfaces ethernet eth0 smp_affinity 'auto' + set interfaces ethernet eth0 speed 'auto' + set interfaces ethernet eth1 description 'Configured by Ansible' + set interfaces ethernet eth1 duplex 'auto' + set interfaces ethernet eth1 mtu '1500' + set interfaces ethernet eth1 speed 'auto' + set interfaces ethernet eth1 vif 200 description 'VIF - 200' + set interfaces ethernet eth2 description 'Configured by Ansible' + set interfaces ethernet eth2 duplex 'auto' + set interfaces ethernet eth2 mtu '1500' + set interfaces ethernet eth2 speed 'auto' + set interfaces ethernet eth2 vif 200 description 'VIF - 200'" +    state: parsed +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +# +# "parsed": [ +#         { +#             "description": "Configured by Ansible", +#             "duplex": "auto", +#             "enabled": true, +#             "mtu": 1500, +#             "name": "eth2", +#             "speed": "auto", +#             "vifs": [ +#                 { +#                     "description": "VIF - 200", +#                     "enabled": true, +#                     "vlan_id": 200 +#                 } +#             ] +#         }, +#         { +#             "description": "Configured by Ansible", +#             "duplex": "auto", +#             "enabled": true, +#             "mtu": 1500, +#             "name": "eth1", +#             "speed": "auto", +#             "vifs": [ +#                 { +#                     "description": "VIF - 200", +#                     "enabled": true, +#                     "vlan_id": 200 +#                 } +#             ] +#         }, +#         { +#             "duplex": "auto", +#             "enabled": true, +#             "name": "eth0", +#             "speed": "auto" +#         } +#     ] + +  """  RETURN = """  before: @@ -879,8 +1108,19 @@ def main():      :returns: the result form module invocation      """ +    required_if = [ +        ("state", "merged", ("config",)), +        ("state", "replaced", ("config",)), +        ("state", "rendered", ("config",)), +        ("state", "overridden", ("config",)), +        ("state", "parsed", ("running_config",)), +    ] +    mutually_exclusive = [("config", "running_config")]      module = AnsibleModule( -        argument_spec=InterfacesArgs.argument_spec, supports_check_mode=True +        argument_spec=InterfacesArgs.argument_spec, +        required_if=required_if, +        supports_check_mode=True, +        mutually_exclusive=mutually_exclusive,      )      result = Interfaces(module).execute_module() diff --git a/plugins/modules/vyos_lag_interfaces.py b/plugins/modules/vyos_lag_interfaces.py index 84f3d018..1ba511c9 100644 --- a/plugins/modules/vyos_lag_interfaces.py +++ b/plugins/modules/vyos_lag_interfaces.py @@ -30,16 +30,13 @@ from __future__ import absolute_import, division, print_function  __metaclass__ = type -ANSIBLE_METADATA = { -    "metadata_version": "1.1", -    "status": ["preview"], -    "supported_by": "network", -} +ANSIBLE_METADATA = {"metadata_version": "1.1", "supported_by": "Ansible"}  DOCUMENTATION = """module: vyos_lag_interfaces -short_description: Manages attributes of link aggregation groups on VyOS network devices. +short_description: LAG interfaces resource module  description: This module manages attributes of link aggregation groups on VyOS network    devices. +version_added: "1.0.0"  notes:  - Tested against VyOS 1.1.8 (helium).  - This module works with connection C(network_cli). See L(the VyOS OS Platform Options,../network/user_guide/platform_vyos.html). @@ -100,6 +97,15 @@ options:              description:              - IP address to use for ARP monitoring.              type: list +  running_config: +    description: +      - This option is used only with state I(parsed). +      - The value of this option should be the output received from the VyOS device by executing +        the command B(show configuration commands | grep bond). +      - The state I(parsed) reads the configuration from C(running_config) option and transforms +        it into Ansible structured data as per the resource module's argspec and the value is then +        returned in the I(parsed) key within the result. +    type: str    state:      description:      - The state of the configuration after module completion. @@ -109,6 +115,9 @@ options:      - replaced      - overridden      - deleted +    - parsed +    - gathered +    - rendered      default: merged  """  EXAMPLES = """ @@ -122,7 +131,7 @@ EXAMPLES = """  # set interfaces bonding bond3  #  - name: Merge provided configuration with device configuration -  vyos_lag_interfaces: +  vyos.vyos.vyos_lag_interfaces:      config:        - name: bond2          mode: active-backup @@ -226,7 +235,7 @@ EXAMPLES = """  # set interfaces ethernet eth3 bond-group 'bond3'  #  - name: Replace device configurations of listed LAGs with provided configurations -  vyos_lag_interfaces: +  vyos.vyos.vyos_lag_interfaces:      config:        - name: bond3          mode: '802.3ad' @@ -331,7 +340,7 @@ EXAMPLES = """  # set interfaces ethernet eth3 bond-group 'bond3'  #  - name: Overrides all device configuration with provided configuration -  vyos_lag_interfaces: +  vyos.vyos.vyos_lag_interfaces:      config:        - name: bond3          mode: active-backup @@ -441,7 +450,7 @@ EXAMPLES = """  # set interfaces ethernet eth3 bond-group 'bond3'  #  - name: Delete LAG attributes of given interfaces (Note This won't delete the interface itself) -  vyos_lag_interfaces: +  vyos.vyos.vyos_lag_interfaces:      config:        - name: bond2        - name: bond3 @@ -507,6 +516,202 @@ EXAMPLES = """  # set interfaces bonding bond3 +# Using gathered +# +# Before state: +# ------------- +# +# vyos@192# run show configuration commands | grep bond +# set interfaces bonding bond0 hash-policy 'layer2' +# set interfaces bonding bond0 mode 'active-backup' +# set interfaces bonding bond0 primary 'eth1' +# set interfaces bonding bond1 hash-policy 'layer2+3' +# set interfaces bonding bond1 mode 'active-backup' +# set interfaces bonding bond1 primary 'eth2' +# set interfaces ethernet eth1 bond-group 'bond0' +# set interfaces ethernet eth2 bond-group 'bond1' +# +- name: Gather listed  lag interfaces with provided configurations +  vyos.vyos.vyos_lag_interfaces: +    config: +    state: gathered +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +#    "gathered": [ +#        { +#            "afi": "ipv6", +#            "rule_sets": [ +#                { +#                    "default_action": "accept", +#                    "description": "This is ipv6 specific rule-set", +#                    "name": "UPLINK", +#                    "rules": [ +#                        { +#                            "action": "accept", +#                            "description": "Fwipv6-Rule 1 is configured by Ansible", +#                            "ipsec": "match-ipsec", +#                            "number": 1 +#                        }, +#                        { +#                            "action": "accept", +#                            "description": "Fwipv6-Rule 2 is configured by Ansible", +#                            "ipsec": "match-ipsec", +#                            "number": 2 +#                        } +#                    ] +#                } +#            ] +#        }, +#        { +#            "afi": "ipv4", +#            "rule_sets": [ +#                { +#                    "default_action": "accept", +#                    "description": "IPv4 INBOUND rule set", +#                    "name": "INBOUND", +#                    "rules": [ +#                        { +#                            "action": "accept", +#                            "description": "Rule 101 is configured by Ansible", +#                            "ipsec": "match-ipsec", +#                            "number": 101 +#                        }, +#                        { +#                            "action": "reject", +#                            "description": "Rule 102 is configured by Ansible", +#                            "ipsec": "match-ipsec", +#                            "number": 102 +#                        }, +#                        { +#                            "action": "accept", +#                            "description": "Rule 103 is configured by Ansible", +#                            "destination": { +#                                "group": { +#                                    "address_group": "inbound" +#                                } +#                            }, +#                            "number": 103, +#                            "source": { +#                                "address": "192.0.2.0" +#                            }, +#                            "state": { +#                                "established": true, +#                                "invalid": false, +#                                "new": false, +#                                "related": true +#                            } +#                        } +#                    ] +#                } +#            ] +#        } +#    ] +# +# +# After state: +# ------------- +# +# vyos@192# run show configuration commands | grep bond +# set interfaces bonding bond0 hash-policy 'layer2' +# set interfaces bonding bond0 mode 'active-backup' +# set interfaces bonding bond0 primary 'eth1' +# set interfaces bonding bond1 hash-policy 'layer2+3' +# set interfaces bonding bond1 mode 'active-backup' +# set interfaces bonding bond1 primary 'eth2' +# set interfaces ethernet eth1 bond-group 'bond0' +# set interfaces ethernet eth2 bond-group 'bond1' + + +# Using rendered +# +# +- name: Render the commands for provided  configuration +  vyos.vyos.vyos_lag_interfaces: +    config: +       - name: bond0 +         hash_policy: layer2 +         members: +           - member: eth1 +         mode: active-backup +         primary: eth1 +       - name: bond1 +         hash_policy: layer2+3 +         members: +           - member: eth2 +         mode: active-backup +         primary: eth2 +    state: rendered +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +# +# "rendered": [ +#        "set interfaces bonding bond0 hash-policy 'layer2'", +#        "set interfaces ethernet eth1 bond-group 'bond0'", +#        "set interfaces bonding bond0 mode 'active-backup'", +#        "set interfaces bonding bond0 primary 'eth1'", +#        "set interfaces bonding bond1 hash-policy 'layer2+3'", +#        "set interfaces ethernet eth2 bond-group 'bond1'", +#        "set interfaces bonding bond1 mode 'active-backup'", +#        "set interfaces bonding bond1 primary 'eth2'" +#    ] + + +# Using parsed +# +# +- name: Parsed the commands for provided  configuration +  vyos.vyos.vyos_l3_interfaces: +    running_config: +      "set interfaces bonding bond0 hash-policy 'layer2' + set interfaces bonding bond0 mode 'active-backup' + set interfaces bonding bond0 primary 'eth1' + set interfaces bonding bond1 hash-policy 'layer2+3' + set interfaces bonding bond1 mode 'active-backup' + set interfaces bonding bond1 primary 'eth2' + set interfaces ethernet eth1 bond-group 'bond0' + set interfaces ethernet eth2 bond-group 'bond1'" +    state: parsed +# +# +# ------------------------- +# Module Execution Result +# ------------------------- +# +# +# "parsed": [ +#         { +#             "hash_policy": "layer2", +#             "members": [ +#                 { +#                     "member": "eth1" +#                 } +#             ], +#             "mode": "active-backup", +#             "name": "bond0", +#             "primary": "eth1" +#         }, +#         { +#             "hash_policy": "layer2+3", +#             "members": [ +#                 { +#                     "member": "eth2" +#                 } +#             ], +#             "mode": "active-backup", +#             "name": "bond1", +#             "primary": "eth2" +#         } +#     ] + +  """  RETURN = """  before: @@ -551,12 +756,17 @@ def main():      required_if = [          ("state", "merged", ("config",)),          ("state", "replaced", ("config",)), +        ("state", "rendered", ("config",)),          ("state", "overridden", ("config",)), +        ("state", "parsed", ("running_config",)),      ] +    mutually_exclusive = [("config", "running_config")] +      module = AnsibleModule(          argument_spec=Lag_interfacesArgs.argument_spec,          required_if=required_if,          supports_check_mode=True, +        mutually_exclusive=mutually_exclusive,      )      result = Lag_interfaces(module).execute_module() diff --git a/plugins/modules/vyos_static_routes.py b/plugins/modules/vyos_static_routes.py index 6e502037..e71114a1 100644 --- a/plugins/modules/vyos_static_routes.py +++ b/plugins/modules/vyos_static_routes.py @@ -30,16 +30,13 @@ from __future__ import absolute_import, division, print_function  __metaclass__ = type -ANSIBLE_METADATA = { -    "metadata_version": "1.1", -    "status": ["preview"], -    "supported_by": "network", -} +ANSIBLE_METADATA = {"metadata_version": "1.1", "supported_by": "Ansible"}  DOCUMENTATION = """module: vyos_static_routes -short_description: Manages attributes of static routes on VyOS network devices. +short_description: Static routes resource module  description: This module manages attributes of static routes on VyOS network devices.  notes: +version_added: "1.0.0"  - Tested against VyOS 1.1.8 (helium).  - This module works with connection C(network_cli). See L(the VyOS OS Platform Options,../network/user_guide/platform_vyos.html).  author: @@ -114,13 +111,12 @@ options:                      type: str    running_config:      description: -    - The module, by default, will connect to the remote device and retrieve the current -      running-config to use as a base for comparing against the contents of source. -      There are times when it is not desirable to have the task get the current running-config -      for every task in a playbook.  The I(running_config) argument allows the implementer -      to pass in the configuration to use as the base config for comparison. This -      value of this option should be the output received from device by executing -      command C(show configuration commands | grep 'static route') +      - This option is used only with state I(parsed). +      - The value of this option should be the output received from the VyOS device by executing +        the command B(show configuration commands | grep static route). +      - The state I(parsed) reads the configuration from C(running_config) option and transforms +        it into Ansible structured data as per the resource module's argspec and the value is then +        returned in the I(parsed) key within the result.      type: str    state:      description: @@ -145,7 +141,7 @@ EXAMPLES = """  # vyos@vyos:~$ show configuration  commands | grep static  #  - name: Merge the provided configuration with the exisiting running configuration -  vyos_static_routes: +  vyos.vyos.vyos_static_routes:      config:       - address_families:         - afi: 'ipv4' @@ -259,7 +255,7 @@ EXAMPLES = """  # set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'  #  - name: Replace device configurations of listed static routes with provided configurations -  vyos_static_routes: +  vyos.vyos.vyos_static_routes:      config:       - address_families:         - afi: 'ipv4' @@ -435,7 +431,7 @@ EXAMPLES = """  # set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'  #  - name: Overrides all device configuration with provided configuration -  vyos_static_routes: +  vyos.vyos.vyos_static_routes:      config:       - address_families:         - afi: 'ipv4' @@ -531,92 +527,6 @@ EXAMPLES = """  # set protocols static route 198.0.2.48/28 next-hop '192.0.2.18' -# Using deleted to delete static route based on destination -# -# Before state -# ------------- -# -# vyos@vyos:~$ show configuration commands| grep static -# set protocols static route 192.0.2.32/28 'blackhole' -# set protocols static route 192.0.2.32/28 next-hop '192.0.2.6' -# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7' -# set protocols static route6 2001:db8:1000::/36 blackhole distance '2' -# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1' -# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2' -# -- name: Delete static route per destination. -  vyos_static_routes: -    config: -     - address_families: -       - afi: 'ipv4' -         routes: -           - dest: '192.0.2.32/28' -       - afi: 'ipv6' -         routes: -           - dest: '2001:db8:1000::/36' -    state: deleted -# -# -# ------------------------ -# Module Execution Results -# ------------------------ -# -#    "before": [ -#        { -#            "address_families": [ -#                { -#                    "afi": "ipv4", -#                    "routes": [ -#                        { -#                            "blackhole_config": { -#                                "type": "blackhole" -#                            }, -#                            "dest": "192.0.2.32/28", -#                            "next_hops": [ -#                                { -#                                    "forward_router_address": "192.0.2.6" -#                                }, -#                                { -#                                    "forward_router_address": "192.0.2.7" -#                                } -#                            ] -#                        } -#                    ] -#                }, -#                { -#                    "afi": "ipv6", -#                    "routes": [ -#                        { -#                            "blackhole_config": { -#                                "distance": 2 -#                            }, -#                            "dest": "2001:db8:1000::/36", -#                            "next_hops": [ -#                                { -#                                    "forward_router_address": "2001:db8:2000:2::1" -#                                }, -#                                { -#                                    "forward_router_address": "2001:db8:2000:2::2" -#                                } -#                            ] -#                        } -#                    ] -#                } -#            ] -#        } -#    ] -#    "commands": [ -#       "delete protocols static route 192.0.2.32/28", -#       "delete protocols static route6 2001:db8:1000::/36" -#    ] -# -# "after": [] -# After state -# ------------ -# vyos@vyos# run show configuration commands | grep static -# set protocols 'static' - -  # Using deleted to delete static route based on afi  #  # Before state @@ -631,7 +541,7 @@ EXAMPLES = """  # set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'  #  - name: Delete static route based on afi. -  vyos_static_routes: +  vyos.vyos.vyos_static_routes:      config:       - address_families:         - afi: 'ipv4' @@ -713,7 +623,7 @@ EXAMPLES = """  # set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'  #  - name: Delete all the static routes. -  vyos_static_routes: +  vyos.vyos.vyos_static_routes:      config:      state: deleted  # @@ -778,141 +688,11 @@ EXAMPLES = """  # set protocols 'static' -# Using deleted to delete static route based on next-hop -# -# Before state -# ------------- -# -# vyos@vyos:~$ show configuration commands| grep static -# set protocols static route 192.0.2.32/28 'blackhole' -# set protocols static route 192.0.2.32/28 next-hop '192.0.2.6' -# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7' -# set protocols static route6 2001:db8:1000::/36 blackhole distance '2' -# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1' -# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2' -# -- name: Delete static routes per next-hops -  vyos_static_routes: -    config: -     - address_families: -       - afi: 'ipv4' -         routes: -           - dest: '192.0.2.32/28' -             next-hops: -               - forward_router_address: '192.0.2.6' -       - afi: 'ipv6' -         routes: -           - dest: '2001:db8:1000::/36' -             next-hops: -               - forward_router_address: '2001:db8:2000:2::1' -    state: deleted -# -# -# ------------------------ -# Module Execution Results -# ------------------------ -# -#    "before": [ -#        { -#            "address_families": [ -#                { -#                    "afi": "ipv4", -#                    "routes": [ -#                        { -#                            "blackhole_config": { -#                                "type": "blackhole" -#                            }, -#                            "dest": "192.0.2.32/28", -#                            "next_hops": [ -#                                { -#                                    "forward_router_address": "192.0.2.6" -#                                }, -#                                { -#                                    "forward_router_address": "192.0.2.7" -#                                } -#                            ] -#                        } -#                    ] -#                }, -#                { -#                    "afi": "ipv6", -#                    "routes": [ -#                        { -#                            "blackhole_config": { -#                                "distance": 2 -#                            }, -#                            "dest": "2001:db8:1000::/36", -#                            "next_hops": [ -#                                { -#                                    "forward_router_address": "2001:db8:2000:2::1" -#                                }, -#                                { -#                                    "forward_router_address": "2001:db8:2000:2::2" -#                                } -#                            ] -#                        } -#                    ] -#                } -#            ] -#        } -#    ] -#    "commands": [ -#       "delete protocols static route 192.0.2.32/28 next-hop '192.0.2.6'", -#       "delete protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::1'" -#    ] -# -#    "after": [ -#        { -#            "address_families": [ -#                { -#                    "afi": "ipv4", -#                    "routes": [ -#                        { -#                            "blackhole_config": { -#                                "type": "blackhole" -#                            }, -#                            "dest": "192.0.2.32/28", -#                            "next_hops": [ -#                                { -#                                    "forward_router_address": "192.0.2.7" -#                                } -#                            ] -#                        } -#                    ] -#                }, -#                { -#                    "afi": "ipv6", -#                    "routes": [ -#                        { -#                            "blackhole_config": { -#                                "distance": 2 -#                            }, -#                            "dest": "2001:db8:1000::/36", -#                            "next_hops": [ -#                                { -#                                    "forward_router_address": "2001:db8:2000:2::2" -#                                } -#                            ] -#                        } -#                    ] -#                } -#            ] -#        } -#    ] -# After state -# ------------ -# vyos@vyos:~$ show configuration commands| grep static -# set protocols static route 192.0.2.32/28 'blackhole' -# set protocols static route 192.0.2.32/28 next-hop '192.0.2.7' -# set protocols static route6 2001:db8:1000::/36 blackhole distance '2' -# set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2' - -  # Using rendered  #  #  - name: Render the commands for provided  configuration -  vyos_static_routes: +  vyos.vyos.vyos_static_routes:      config:        - address_families:            - afi: 'ipv4' @@ -955,8 +735,8 @@ EXAMPLES = """  # Using parsed  #  # -- name: Render the commands for provided  configuration -  vyos_static_routes: +- name: Parse the provided running configuration +  vyos.vyos.vyos_static_routes:      running_config:        "set protocols static route 192.0.2.32/28 'blackhole'   set protocols static route 192.0.2.32/28 next-hop '192.0.2.6' @@ -1026,7 +806,7 @@ EXAMPLES = """  # set protocols static route6 2001:db8:1000::/36 next-hop '2001:db8:2000:2::2'  #  - name: Gather listed static routes with provided configurations -  vyos_static_routes: +  vyos.vyos.vyos_static_routes:      config:      state: gathered  # @@ -1137,6 +917,7 @@ def main():      required_if = [          ("state", "merged", ("config",)),          ("state", "replaced", ("config",)), +        ("state", "rendered", ("config",)),          ("state", "overridden", ("config",)),          ("state", "parsed", ("running_config",)),      ] | 
