summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/network/eos/eos_static_routes.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/network/eos/eos_static_routes.py')
-rw-r--r--lib/ansible/modules/network/eos/eos_static_routes.py1444
1 files changed, 0 insertions, 1444 deletions
diff --git a/lib/ansible/modules/network/eos/eos_static_routes.py b/lib/ansible/modules/network/eos/eos_static_routes.py
deleted file mode 100644
index c04491beb8..0000000000
--- a/lib/ansible/modules/network/eos/eos_static_routes.py
+++ /dev/null
@@ -1,1444 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright 2019 Red Hat
-# GNU General Public License v3.0+
-# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
-
-#############################################
-# WARNING #
-#############################################
-#
-# This file is auto generated by the resource
-# module builder playbook.
-#
-# Do not edit this file manually.
-#
-# Changes to this file will be over written
-# by the resource module builder.
-#
-# Changes should be made in the model used to
-# generate this file or in the resource module
-# builder template.
-#
-#############################################
-
-"""
-The module file for eos_static_routes
-"""
-
-from __future__ import absolute_import, division, print_function
-__metaclass__ = type
-
-ANSIBLE_METADATA = {
- 'metadata_version': '1.1',
- 'status': ['preview'],
- 'supported_by': 'network'
-}
-
-DOCUMENTATION = """
----
-module: eos_static_routes
-version_added: "2.10"
-short_description: Configures and manages attributes of static routes on Arista EOS platforms.
-description: This module configures and manages the attributes of static routes on Arista EOS platforms.
-author: Gomathi Selvi Srinivasan (@GomathiselviS)
-notes:
-- Tested against Arista EOS 4.20.10M
-- This module works with connection C(network_cli). See the
- L(EOS Platform Options,../network/user_guide/platform_eos.html).
-options:
- config:
- description:
- - A list of configurations for static routes.
- type: list
- elements: dict
- suboptions:
- vrf:
- description:
- - The VRF to which the static route(s) belong.
- type: str
- address_families:
- description: A dictionary specifying the address family to which the static route(s) belong.
- type: list
- elements: dict
- suboptions:
- afi:
- description:
- - Specifies the top level address family indicator.
- type: str
- choices: ['ipv4', 'ipv6']
- required: True
- routes:
- description: A dictionary that specifies the static route configurations.
- elements: dict
- type: list
- suboptions:
- dest:
- description:
- - Destination IPv4 subnet (CIDR or address-mask notation).
- - The address format is <v4/v6 address>/<mask> or <v4/v6 address> <mask>.
- - The mask is number in range 0-32 for IPv4 and in range 0-128 for IPv6.
- type: str
- required: True
- next_hops:
- description:
- - Details of route to be taken.
- type: list
- elements: dict
- suboptions:
- forward_router_address:
- description:
- - Forwarding router's address on destination interface.
- type: str
- interface:
- description:
- - Outgoing interface to take. For anything except 'null0', then next hop IP address should also be configured.
- - IP address of the next hop router or
- - null0 Null0 interface or
- - ethernet e_num Ethernet interface or
- - loopback l_num Loopback interface or
- - management m_num Management interface or
- - port-channel p_num
- - vlan v_num
- - vxlan vx_num
- - Nexthop-Group Specify nexthop group name
- - Tunnel Tunnel interface
- - vtep Configure VXLAN Tunnel End Points
- type: str
- nexthop_grp:
- description:
- - Nexthop group
- type: str
- admin_distance:
- description:
- - Preference or administrative distance of route (range 1-255).
- type: int
- description:
- description:
- - Name of the static route.
- type: str
- tag:
- description:
- - Route tag value (ranges from 0 to 4294967295).
- type: int
- track:
- description:
- - Track value (range 1 - 512). Track must already be configured on the device before adding the route.
- type: str
- mpls_label:
- description:
- - MPLS label
- type: int
- vrf:
- description:
- - VRF of the destination.
- 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
- version_added: "2.10"
- type: str
- state:
- description:
- - The state the configuration should be left in.
- type: str
- choices:
- ['deleted', 'merged', 'overridden', 'replaced', 'gathered', 'rendered', 'parsed']
- default:
- merged
-"""
-EXAMPLES = """
-# Using deleted
-
-# Various scenarios for delete operations:
-
-# Before state:
-# ------------
-# veos(config)#show running-config | grep route
-# ip route 10.2.2.0/24 Ethernet1
-# ip route 10.2.2.0/24 64.1.1.1 label 17 33
-# ip route 33.33.33.0/24 Nexthop-Group testgrp
-# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
-# veos(config)#
-
-- name: Delete nexthop
- eos_static_routes:
- config:
- - address_families:
- - afi: ipv4
- routes:
- - dest: 10.2.2.0/24
- next_hops:
- - interface: 64.1.1.1
- mpls_label: 17
- admin_distance: 33
- - dest: "33.33.33.0 255.255.255.0"
- next_hops:
- - interface: 'Nexthop-Group testgrp'
- state: "deleted"
-
-# "after": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "10.2.2.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "22.65.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 90,
-# "description": "testroute",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# },
-# {
-# "admin_distance": 55,
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 90,
-# "description": "testroute1",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ],
-# "before": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "10.2.2.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 33,
-# "interface": "64.1.1.1",
-# "mpls_label": 17
-# }
-# ]
-# },
-# {
-# "dest": "33.33.33.0/24",
-# "next_hops": [
-# {
-# "nexthop_grp": "testgrp"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "22.65.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 90,
-# "description": "testroute",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# },
-# {
-# "admin_distance": 55,
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 90,
-# "description": "testroute1",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ],
-# "changed": true,
-# "commands": [
-# "no ip route 10.2.2.0/24 64.1.1.1 label 17 33",
-# "no ip route 33.33.33.0/24 Nexthop-Group testgrp"
-# ]
-
-
-# After State
-# -----------
-
-# veos(config)#show running-config | grep route
-# ip route 10.2.2.0/24 Ethernet1
-# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
-# veos(config)#
-
-
-# Before State
-# ____________
-
-# veos(config)#show running-config | grep route
-# ip route 10.2.2.0/24 Ethernet1
-# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
-# veos(config)#
-
-- name: Delete route
- eos_static_routes:
- config:
- - address_families:
- - afi: ipv4
- routes:
- - dest: 10.2.2.0/24
- state: "deleted"
-
-# "after": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "22.65.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 90,
-# "description": "testroute",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# },
-# {
-# "admin_distance": 55,
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 90,
-# "description": "testroute1",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ],
-# "before": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "10.2.2.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "22.65.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 90,
-# "description": "testroute",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# },
-# {
-# "admin_distance": 55,
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 90,
-# "description": "testroute1",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ],
-# "changed": true,
-# "commands": [
-# "no ip route 10.2.2.0/24 Ethernet1"
-# ]
-
-# After State
-# -----------
-# veos(config)#show running-config | grep route
-# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
-# veos(config)#
-
-
-# Before State:
-# ------------
-
-# veos(config)#show running-config | grep route
-# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
-# veos(config)#
-
-- name: Delete afi
- eos_static_routes:
- config:
- - vrf: "testvrf"
- address_families:
- - afi: "ipv4"
- state: "deleted"
-
-# "after": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# },
-# {
-# "admin_distance": 55,
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 90,
-# "description": "testroute1",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ],
-# "before": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "22.65.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 90,
-# "description": "testroute",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# },
-# {
-# "admin_distance": 55,
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 90,
-# "description": "testroute1",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ],
-# "changed": true,
-# "commands": [
-# "no ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute"
-# ],
-
-# After State
-# ___________
-
-# veos(config)#show running-config | grep route
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
-
-# Before State
-#-------------
-
-# veos(config)#show running-config | grep route
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
-
-- name: Delete vrf
- eos_static_routes:
- config:
- - vrf: testvrf
- state: "deleted"
-
-# "after": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "before": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# },
-# {
-# "admin_distance": 55,
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 90,
-# "description": "testroute1",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ],
-# "changed": true,
-# "commands": [
-# "no ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1",
-# "no ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55",
-# "no ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1"
-# ]
-#
-# After State:
-# -----------
-
-# veos(config)#show running-config | grep route
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# veos(config)#
-
-
-#
-# Using merged
-
-# Before : [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "165.10.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 100,
-# "interface": "Ethernet1"
-# }
-# ]
-# },
-# {
-# "dest": "172.17.252.0/24",
-# "next_hops": [
-# {
-# "nexthop_grp": "testgroup"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5001::/64",
-# "next_hops": [
-# {
-# "admin_distance": 50,
-# "interface": "Ethernet1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "130.1.122.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1",
-# "tag": 50
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ]
-#
-# Before State
-# -------------
-# veos(config)#show running-config | grep "route"
-# ip route 165.10.1.0/24 Ethernet1 100
-# ip route 172.17.252.0/24 Nexthop-Group testgroup
-# ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50
-# ipv6 route 5001::/64 Ethernet1 50
-# veos(config)#
-
-- name: Merge new static route configuration
- eos_static_routes:
- config:
- - vrf: testvrf
- address_families:
- - afi: ipv6
- routes:
- - dest: 2211::0/64
- next_hop:
- - forward_router_address: 100:1::2
- interface: "Ethernet1"
- state: merged
-
-# After State
-# -----------
-
-#After [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "165.10.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 100,
-# "interface": "Ethernet1"
-# }
-# ]
-# },
-# {
-# "dest": "172.17.252.0/24",
-# "next_hops": [
-# {
-# "nexthop_grp": "testgroup"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5001::/64",
-# "next_hops": [
-# {
-# "admin_distance": 50,
-# "interface": "Ethernet1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "130.1.122.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1",
-# "tag": 50
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2211::0/64",
-# "next_hops": [
-# {
-# "aforward_router_address": 100:1::2
-# "interface": "Ethernet1"
-# }
-# ]
-# }
-# ]
-# }
-
-# ],
-# "vrf": "testvrf"
-# }
-# ]
-#
-# veos(config)#show running-config | grep "route"
-# ip route 165.10.1.0/24 Ethernet1 100
-# ip route 172.17.252.0/24 Nexthop-Group testgroup
-# ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50
-# ipv6 route 2211::/64 Ethernet1 100:1::2
-# ipv6 route 5001::/64 Ethernet1 50
-# veos(config)#
-
-
-# Using overridden
-
-
-# Before State
-# -------------
-
-# "before": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "165.10.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 100,
-# "interface": "Ethernet1"
-# }
-# ]
-# },
-# {
-# "dest": "172.17.252.0/24",
-# "next_hops": [
-# {
-# "nexthop_grp": "testgroup"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5001::/64",
-# "next_hops": [
-# {
-# "admin_distance": 50,
-# "interface": "Ethernet1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "130.1.122.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1",
-# "tag": 50
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ]
-# veos(config)#show running-config | grep "route"
-# ip route 165.10.1.0/24 Ethernet1 100
-# ip route 172.17.252.0/24 Nexthop-Group testgroup
-# ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50
-# ipv6 route 5001::/64 Ethernet1 50
-# veos(config)#
-
-- name: Overridden static route configuration
- eos_static_routes:
- config:
- - address_families:
- - afi: ipv4
- routes:
- - dest: 10.2.2.0/24
- next_hop:
- - interface: "Ethernet1"
- state: replaced
-
-# After State
-# -----------
-
-# "after": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "10.2.2.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# veos(config)#show running-config | grep "route"
-# ip route 10.2.2.0/24 Ethernet1
-# veos(config)#
-
-
-# Using replaced
-
-# Before State
-# -------------
-
-# ip route 10.2.2.0/24 Ethernet1
-# ip route 10.2.2.0/24 64.1.1.1 label 17 33
-# ip route 33.33.33.0/24 Nexthop-Group testgrp
-# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
-
-# [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "10.2.2.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 33,
-# "interface": "64.1.1.1",
-# "mpls_label": 17
-# }
-# ]
-# },
-# {
-# "dest": "33.33.33.0/24",
-# "next_hops": [
-# {
-# "nexthop_grp": "testgrp"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "22.65.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 90,
-# "description": "testroute",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# },
-# {
-# "admin_distance": 90,
-# "description": "testroute1",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ]
-
-- name: Replace nexthop
- eos_static_routes:
- config:
- - vrf: testvrf
- address_families:
- - afi: ipv6
- routes:
- - dest: 2222:6::/64
- next_hops:
- - admin_distance: 55
- interface: "Ethernet1"
- state: "replaced"
-
-# After State
-# -----------
-
-# veos(config)#show running-config | grep route
-# ip route 10.2.2.0/24 Ethernet1
-# ip route 10.2.2.0/24 64.1.1.1 label 17 33
-# ip route 33.33.33.0/24 Nexthop-Group testgrp
-# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
-# ipv6 route 5222:5::/64 Management1 4312:100::1
-# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
-
-# "after": [
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "10.2.2.0/24",
-# "next_hops": [
-# {
-# "interface": "Ethernet1"
-# },
-# {
-# "admin_distance": 33,
-# "interface": "64.1.1.1",
-# "mpls_label": 17
-# }
-# ]
-# },
-# {
-# "dest": "33.33.33.0/24",
-# "next_hops": [
-# {
-# "nexthop_grp": "testgrp"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "5222:5::/64",
-# "next_hops": [
-# {
-# "forward_router_address": "4312:100::1",
-# "interface": "Management1"
-# }
-# ]
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "address_families": [
-# {
-# "afi": "ipv4",
-# "routes": [
-# {
-# "dest": "22.65.1.0/24",
-# "next_hops": [
-# {
-# "admin_distance": 90,
-# "description": "testroute",
-# "interface": "Null0"
-# }
-# ]
-# }
-# ]
-# },
-# {
-# "afi": "ipv6",
-# "routes": [
-# {
-# "dest": "2222:6::/64",
-# "next_hops": [
-# {
-# "admin_distance": 55,
-# "interface": "Ethernet1"
-# }
-# ]
-# }
-# ]
-# }
-# ],
-# "vrf": "testvrf"
-# }
-# ]
-
-# Before State
-# -------------
-# veos(config)#show running-config | grep "route"
-# ip route 165.10.1.0/24 Ethernet1 10.1.1.2 100
-# ipv6 route 5001::/64 Ethernet1
-# veos(config)#
-
-
-- name: Gather the exisitng condiguration
- eos_static_routes:
- state: gathered
-
-# returns :
-# eos_static_routes:
-# config:
-# - address_families:
-# - afi: ipv4
-# routes:
-# - dest: 165.10.1.0/24
-# next_hop:
-# - forward_router_address: 10.1.1.2
-# interface: "Ethernet1"
-# admin_distance: 100
-# - afi: ipv6
-# routes:
-# - dest: 5001::/64
-# next_hop:
-# - interface: "Ethernet1"
-
-
-# Using rendered
-
-# eos_static_routes:
-# config:
-# - address_families:
-# - afi: ipv4
-# routes:
-# - dest: 165.10.1.0/24
-# next_hop:
-# - forward_router_address: 10.1.1.2
-# interface: "Ethernet1"
-# admin_distance: 100
-# - afi: ipv6
-# routes:
-# - dest: 5001::/64
-# next_hop:
-# - interface: "Ethernet1"
-
-# returns:
-
-# ip route 165.10.1.0/24 Ethernet1 10.1.1.2 100
-# ipv6 route 5001::/64 Ethernet1
-
-
-"""
-RETURN = """
-before:
- description: The configuration prior to the model invocation.
- returned: always
- type: list
- sample: >
- The configuration returned will always be in the same format
- of the parameters above.
-after:
- description: The resulting configuration model invocation.
- returned: when changed
- type: list
- sample: >
- The configuration returned will always be in the same format
- of the parameters above.
-commands:
- description: The set of commands pushed to the remote device.
- returned: always
- type: list
- sample:
- - ip route vrf vrf1 192.2.2.0/24 125.2.3.1 93
-rendered:
- description: The set of CLI commands generated from the value in C(config) option
- returned: When C(state) is I(rendered)
- type: list
- sample: >
- "address_families": [
- {
- "afi": "ipv4",
- "routes": [
- {
- "dest": "192.2.2.0/24",
- "next_hops": [
- {
- "admin_distance": 93,
- "description": null,
- "forward_router_address": null,
- "interface": "125.2.3.1",
- "mpls_label": null,
- "nexthop_grp": null,
- "tag": null,
- "track": null,
- "vrf": null
- }
- ]
- }
- ]
- }
- ],
- "vrf": "vrf1"
- }
- ],
- "running_config": null,
- "state": "rendered"
- }
-gathered:
- description: The configuration as structured data transformed for the running configuration
- fetched from remote host
- returned: When C(state) is I(gathered)
- type: list
- sample: >
- The configuration returned will always be in the same format
- of the parameters above.
-parsed:
- description: The configuration as structured data transformed for the value of
- C(running_config) option
- returned: When C(state) is I(parsed)
- type: list
- sample: >
- The configuration returned will always be in the same format
- of the parameters above.
-"""
-
-
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils.network.eos.argspec.static_routes.static_routes import Static_routesArgs
-from ansible.module_utils.network.eos.config.static_routes.static_routes import Static_routes
-
-
-def main():
- """
- Main entry point for module execution
-
- :returns: the result form module invocation
- """
-
- required_if = [('state', 'merged', ('config',)),
- ('state', 'replaced', ('config',)),
- ('state', 'overridden', ('config',)),
- ('state', 'parsed', ('running_config',))]
- mutually_exclusive = [('config', 'running_config')]
-
- module = AnsibleModule(argument_spec=Static_routesArgs.argument_spec,
- required_if=required_if,
- supports_check_mode=True,
- mutually_exclusive=mutually_exclusive)
-
- result = Static_routes(module).execute_module()
- module.exit_json(**result)
-
-
-if __name__ == '__main__':
- main()