cisco_node_utils 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/CHANGELOG.md +126 -1
- data/README.md +19 -12
- data/Rakefile +1 -0
- data/bin/git/hooks/commit-msg/enforce_style +8 -0
- data/cisco_node_utils.gemspec +4 -3
- data/docs/README-develop-best-practices.md +127 -109
- data/docs/README-develop-node-utils-APIs.md +47 -39
- data/docs/template-router.rb +3 -7
- data/lib/.rubocop.yml +4 -4
- data/lib/cisco_node_utils.rb +1 -1
- data/lib/cisco_node_utils/aaa_authentication_login.rb +96 -0
- data/lib/cisco_node_utils/aaa_authentication_login_service.rb +133 -0
- data/lib/cisco_node_utils/aaa_authorization_service.rb +150 -0
- data/lib/cisco_node_utils/ace.rb +196 -0
- data/lib/cisco_node_utils/acl.rb +100 -0
- data/lib/cisco_node_utils/bgp.rb +301 -163
- data/lib/cisco_node_utils/bgp_af.rb +187 -19
- data/lib/cisco_node_utils/bgp_neighbor.rb +18 -33
- data/lib/cisco_node_utils/bgp_neighbor_af.rb +25 -48
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +23 -4
- data/lib/cisco_node_utils/cmd_ref/README_YAML.md +593 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +22 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +31 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +22 -0
- data/lib/cisco_node_utils/cmd_ref/acl.yaml +43 -0
- data/lib/cisco_node_utils/cmd_ref/bgp.yaml +242 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +164 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +131 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +179 -0
- data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +34 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +42 -0
- data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +172 -0
- data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +35 -0
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +42 -0
- data/lib/cisco_node_utils/cmd_ref/fex.yaml +9 -0
- data/lib/cisco_node_utils/cmd_ref/images.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +339 -0
- data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +28 -0
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +61 -0
- data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +54 -0
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +32 -0
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +45 -0
- data/lib/cisco_node_utils/cmd_ref/memory.yaml +13 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +14 -0
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +74 -0
- data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/pim.yaml +40 -0
- data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +69 -0
- data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +64 -0
- data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +14 -0
- data/lib/cisco_node_utils/cmd_ref/show_system.yaml +5 -0
- data/lib/cisco_node_utils/cmd_ref/show_version.yaml +72 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +23 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +50 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +51 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +55 -0
- data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +11 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +18 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/system.yaml +6 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +49 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +35 -0
- data/lib/cisco_node_utils/cmd_ref/vdc.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +6 -0
- data/lib/cisco_node_utils/cmd_ref/vlan.yaml +56 -0
- data/lib/cisco_node_utils/cmd_ref/vni.yaml +76 -0
- data/lib/cisco_node_utils/cmd_ref/vpc.yaml +197 -0
- data/lib/cisco_node_utils/cmd_ref/vrf.yaml +88 -0
- data/lib/cisco_node_utils/cmd_ref/vtp.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +60 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +39 -0
- data/lib/cisco_node_utils/cmd_ref/yum.yaml +13 -0
- data/lib/cisco_node_utils/command_reference.rb +359 -187
- data/lib/cisco_node_utils/configparser_lib.rb +1 -1
- data/lib/cisco_node_utils/dns_domain.rb +19 -5
- data/lib/cisco_node_utils/domain_name.rb +4 -8
- data/lib/cisco_node_utils/evpn_vni.rb +157 -0
- data/lib/cisco_node_utils/fabricpath_global.rb +388 -0
- data/lib/cisco_node_utils/fabricpath_topology.rb +150 -0
- data/lib/cisco_node_utils/feature.rb +111 -0
- data/lib/cisco_node_utils/interface.rb +390 -97
- data/lib/cisco_node_utils/interface_channel_group.rb +124 -0
- data/lib/cisco_node_utils/interface_ospf.rb +11 -34
- data/lib/cisco_node_utils/interface_portchannel.rb +157 -0
- data/lib/cisco_node_utils/interface_service_vni.rb +132 -0
- data/lib/cisco_node_utils/name_server.rb +1 -1
- data/lib/cisco_node_utils/node.rb +55 -249
- data/lib/cisco_node_utils/node_util.rb +5 -1
- data/lib/cisco_node_utils/ntp_config.rb +2 -2
- data/lib/cisco_node_utils/ntp_server.rb +14 -5
- data/lib/cisco_node_utils/overlay_global.rb +153 -0
- data/lib/cisco_node_utils/pim.rb +124 -0
- data/lib/cisco_node_utils/pim_group_list.rb +108 -0
- data/lib/cisco_node_utils/pim_rp_address.rb +102 -0
- data/lib/cisco_node_utils/platform.rb +8 -9
- data/lib/cisco_node_utils/portchannel_global.rb +277 -0
- data/lib/cisco_node_utils/radius_global.rb +9 -19
- data/lib/cisco_node_utils/radius_server.rb +31 -41
- data/lib/cisco_node_utils/radius_server_group.rb +117 -0
- data/lib/cisco_node_utils/router_ospf.rb +1 -1
- data/lib/cisco_node_utils/router_ospf_vrf.rb +14 -19
- data/lib/cisco_node_utils/snmp_notification_receiver.rb +158 -0
- data/lib/cisco_node_utils/snmpcommunity.rb +3 -5
- data/lib/cisco_node_utils/snmpgroup.rb +1 -1
- data/lib/cisco_node_utils/snmpnotification.rb +57 -0
- data/lib/cisco_node_utils/snmpserver.rb +8 -17
- data/lib/cisco_node_utils/snmpuser.rb +67 -28
- data/lib/cisco_node_utils/syslog_server.rb +3 -9
- data/lib/cisco_node_utils/syslog_settings.rb +2 -10
- data/lib/cisco_node_utils/tacacs_server.rb +9 -14
- data/lib/cisco_node_utils/tacacs_server_group.rb +145 -0
- data/lib/cisco_node_utils/tacacs_server_host.rb +5 -9
- data/lib/cisco_node_utils/vdc.rb +88 -0
- data/lib/cisco_node_utils/version.rb +5 -2
- data/lib/cisco_node_utils/vlan.rb +71 -8
- data/lib/cisco_node_utils/vni.rb +227 -0
- data/lib/cisco_node_utils/vpc.rb +377 -0
- data/lib/cisco_node_utils/vrf.rb +60 -9
- data/lib/cisco_node_utils/vrf_af.rb +191 -0
- data/lib/cisco_node_utils/vtp.rb +8 -6
- data/lib/cisco_node_utils/vxlan_vtep.rb +151 -0
- data/lib/cisco_node_utils/vxlan_vtep_vni.rb +234 -0
- data/lib/cisco_node_utils/yum.rb +1 -1
- data/tests/.rubocop.yml +1 -1
- data/tests/basetest.rb +16 -7
- data/tests/ciscotest.rb +55 -13
- data/tests/cmd_config.yaml +2 -2
- data/tests/platform_info.rb +3 -2
- data/tests/test_aaa_authentication_login.rb +219 -0
- data/tests/test_aaa_authentication_login_service.rb +759 -0
- data/tests/test_aaa_authorization_service.rb +1041 -0
- data/tests/test_ace.rb +160 -0
- data/tests/test_acl.rb +176 -0
- data/tests/test_bgp_af.rb +269 -13
- data/tests/test_bgp_neighbor.rb +38 -40
- data/tests/test_bgp_neighbor_af.rb +92 -32
- data/tests/test_command_config.rb +5 -5
- data/tests/test_command_reference.rb +284 -101
- data/tests/test_dns_domain.rb +1 -1
- data/tests/test_domain_name.rb +1 -1
- data/tests/test_evpn_vni.rb +106 -0
- data/tests/test_fabricpath_global.rb +243 -0
- data/tests/test_fabricpath_topology.rb +98 -0
- data/tests/test_interface.rb +292 -74
- data/tests/test_interface_channel_group.rb +74 -0
- data/tests/test_interface_ospf.rb +9 -4
- data/tests/test_interface_portchannel.rb +105 -0
- data/tests/test_interface_service_vni.rb +232 -0
- data/tests/test_interface_svi.rb +77 -62
- data/tests/test_interface_switchport.rb +17 -5
- data/tests/test_name_server.rb +1 -1
- data/tests/test_node.rb +1 -1
- data/tests/test_node_ext.rb +10 -20
- data/tests/test_ntp_config.rb +1 -1
- data/tests/test_ntp_server.rb +18 -6
- data/tests/test_overlay_global.rb +102 -0
- data/tests/test_pim.rb +177 -0
- data/tests/test_pim_group_list.rb +181 -0
- data/tests/test_pim_rp_address.rb +153 -0
- data/tests/test_platform.rb +3 -3
- data/tests/test_portchannel_global.rb +202 -0
- data/tests/test_radius_global.rb +1 -1
- data/tests/test_radius_server.rb +92 -57
- data/tests/test_radius_server_group.rb +149 -0
- data/tests/test_router_bgp.rb +283 -112
- data/tests/test_router_ospf.rb +2 -2
- data/tests/test_router_ospf_vrf.rb +4 -4
- data/tests/test_snmp_notification_receiver.rb +167 -0
- data/tests/test_snmpcommunity.rb +1 -1
- data/tests/test_snmpgroup.rb +1 -1
- data/tests/test_snmpnotification.rb +72 -0
- data/tests/test_snmpserver.rb +29 -105
- data/tests/test_snmpuser.rb +32 -30
- data/tests/test_syslog_server.rb +36 -10
- data/tests/test_syslog_settings.rb +1 -1
- data/tests/test_tacacs_server.rb +1 -1
- data/tests/test_tacacs_server_group.rb +405 -0
- data/tests/test_tacacs_server_host.rb +1 -1
- data/tests/test_vdc.rb +78 -0
- data/tests/test_vlan.rb +74 -19
- data/tests/test_vlan_mt_full.rb +95 -0
- data/tests/test_vni.rb +106 -0
- data/tests/test_vpc.rb +361 -0
- data/tests/test_vrf.rb +172 -29
- data/tests/test_vtp.rb +1 -1
- data/tests/test_vxlan_vtep.rb +214 -0
- data/tests/test_vxlan_vtep_vni.rb +201 -0
- data/tests/test_yum.rb +1 -1
- metadata +120 -11
- data/lib/cisco_node_utils/README_YAML.md +0 -325
- data/lib/cisco_node_utils/command_reference_common.yaml +0 -1051
- data/lib/cisco_node_utils/command_reference_common_bgp.yaml +0 -535
- data/lib/cisco_node_utils/command_reference_n3064.yaml +0 -13
- data/lib/cisco_node_utils/command_reference_n7k.yaml +0 -52
- data/lib/cisco_node_utils/command_reference_n9k.yaml +0 -26
- data/tests/platform_info.yaml +0 -10
@@ -0,0 +1,131 @@
|
|
1
|
+
# bgp_neighbor.yaml
|
2
|
+
---
|
3
|
+
_template:
|
4
|
+
config_get: "show running bgp all"
|
5
|
+
config_get_token: '/^router bgp <asnum>$/'
|
6
|
+
config_get_token_append:
|
7
|
+
- '/^vrf <vrf>$/'
|
8
|
+
- '/^neighbor <nbr>$/'
|
9
|
+
config_set: "router bgp <asnum>"
|
10
|
+
config_set_append:
|
11
|
+
- "vrf <vrf>"
|
12
|
+
- "neighbor <nbr>"
|
13
|
+
|
14
|
+
af:
|
15
|
+
config_set_append: '<state> address-family <afi> <safi>'
|
16
|
+
|
17
|
+
all_neighbors:
|
18
|
+
multiple: true
|
19
|
+
config_get_token_append: '/^neighbor (\S+)$/'
|
20
|
+
|
21
|
+
capability_negotiation:
|
22
|
+
auto_default: false
|
23
|
+
kind: boolean
|
24
|
+
config_get_token_append: '/^dont-capability-negotiate$/'
|
25
|
+
config_set_append: '<state> dont-capability-negotiate'
|
26
|
+
default_value: true
|
27
|
+
|
28
|
+
connected_check:
|
29
|
+
auto_default: false
|
30
|
+
kind: boolean
|
31
|
+
config_get_token_append: '/^disable-connected-check$/'
|
32
|
+
config_set_append: '<state> disable-connected-check'
|
33
|
+
default_value: true
|
34
|
+
|
35
|
+
description:
|
36
|
+
kind: string
|
37
|
+
config_get_token_append: '/^description (.*)/'
|
38
|
+
config_set_append: '<state> description <desc>'
|
39
|
+
default_value: ""
|
40
|
+
|
41
|
+
dynamic_capability:
|
42
|
+
kind: boolean
|
43
|
+
config_get_token_append: '/^(no )?dynamic-capability$/'
|
44
|
+
config_set_append: '<state> dynamic-capability'
|
45
|
+
default_value: true
|
46
|
+
|
47
|
+
ebgp_multihop:
|
48
|
+
auto_default: false
|
49
|
+
config_get_token_append: '/^ebgp-multihop (\d+)$/'
|
50
|
+
config_set_append: '<state> ebgp-multihop <ttl>'
|
51
|
+
default_value: false
|
52
|
+
|
53
|
+
local_as:
|
54
|
+
config_get_token_append: '/^local-as (\d*?.?\d+?)$/'
|
55
|
+
config_set_append: '<state> local-as <local_as>'
|
56
|
+
default_value: 0
|
57
|
+
|
58
|
+
log_neighbor_changes:
|
59
|
+
_exclude: [/N(5|6|7)/]
|
60
|
+
multiple: true # not actually, but we get an array of matches
|
61
|
+
auto_default: false
|
62
|
+
config_get_token_append: '/^log-neighbor-changes\s+??(\S+)?\s+??$/'
|
63
|
+
config_set_append: '<state> log-neighbor-changes <disable>'
|
64
|
+
default_value: "inherit"
|
65
|
+
|
66
|
+
low_memory_exempt:
|
67
|
+
kind: boolean
|
68
|
+
config_get_token_append: '/^low-memory exempt$/'
|
69
|
+
config_set_append: '<state> low-memory exempt'
|
70
|
+
default_value: false
|
71
|
+
|
72
|
+
maximum_peers:
|
73
|
+
kind: int
|
74
|
+
config_get_token_append: '/^maximum-peers (\d+)$/'
|
75
|
+
config_set_append: '<state> maximum-peers <num>'
|
76
|
+
default_value: 0
|
77
|
+
|
78
|
+
password:
|
79
|
+
config_get_token_append: '/^password \d+ (\S+)$/'
|
80
|
+
config_set_append: '<state> password <type> <passwd>'
|
81
|
+
default_value: ""
|
82
|
+
|
83
|
+
password_type:
|
84
|
+
kind: int
|
85
|
+
config_get_token_append: '/^password (\d+)/'
|
86
|
+
default_value: 0
|
87
|
+
|
88
|
+
remote_as:
|
89
|
+
config_get_token_append: '/^remote-as (\d*?.?\d+?)$/'
|
90
|
+
config_set_append: '<state> remote-as <remote_as>'
|
91
|
+
default_value: 0
|
92
|
+
|
93
|
+
remove_private_as:
|
94
|
+
multiple: true # not actually, but we get an array of matches
|
95
|
+
auto_default: false
|
96
|
+
config_get_token_append: '/^remove-private-as\s+??(\S+)?\s+??$/'
|
97
|
+
config_set_append: '<state> remove-private-as <option>'
|
98
|
+
default_value: "disable"
|
99
|
+
|
100
|
+
shutdown:
|
101
|
+
kind: boolean
|
102
|
+
config_get_token_append: '/^shutdown$/'
|
103
|
+
config_set_append: '<state> shutdown'
|
104
|
+
default_value: false
|
105
|
+
|
106
|
+
suppress_4_byte_as:
|
107
|
+
kind: boolean
|
108
|
+
config_get_token_append: '/^capability suppress 4-byte-as$/'
|
109
|
+
config_set_append: '<state> capability suppress 4-byte-as'
|
110
|
+
default_value: false
|
111
|
+
|
112
|
+
timers_holdtime:
|
113
|
+
default_value: 180
|
114
|
+
|
115
|
+
timers_keepalive:
|
116
|
+
default_value: 60
|
117
|
+
|
118
|
+
timers_keepalive_hold:
|
119
|
+
config_get_token_append: '/^timers (\d+) (\d+)$/'
|
120
|
+
config_set_append: '<state> timers <keepalive> <hold>'
|
121
|
+
|
122
|
+
transport_passive_only:
|
123
|
+
kind: boolean
|
124
|
+
config_get_token_append: '/^transport connection-mode passive$/'
|
125
|
+
config_set_append: '<state> transport connection-mode passive'
|
126
|
+
default_value: false
|
127
|
+
|
128
|
+
update_source:
|
129
|
+
config_get_token_append: '/^update-source (\S+)$/'
|
130
|
+
config_set_append: '<state> update-source <interface>'
|
131
|
+
default_value: ""
|
@@ -0,0 +1,179 @@
|
|
1
|
+
# bgp_neighbor_af.yaml
|
2
|
+
---
|
3
|
+
_template:
|
4
|
+
config_get: 'show running bgp all'
|
5
|
+
config_get_token: '/^router bgp <asnum>$/'
|
6
|
+
config_get_token_append:
|
7
|
+
- '/^vrf <vrf>$/'
|
8
|
+
- '/^neighbor <nbr>$/'
|
9
|
+
- '/^address-family <afi> <safi>$/'
|
10
|
+
config_set: 'router bgp <asnum>'
|
11
|
+
config_set_append:
|
12
|
+
- 'vrf <vrf>'
|
13
|
+
- 'neighbor <nbr>'
|
14
|
+
- 'address-family <afi> <safi>'
|
15
|
+
|
16
|
+
additional_paths_receive:
|
17
|
+
auto_default: false
|
18
|
+
config_get_token_append: '/^capability additional-paths receive(?: disable)?/'
|
19
|
+
config_set_append: '<state> capability additional-paths receive <disable>'
|
20
|
+
default_value: 'inherit'
|
21
|
+
|
22
|
+
additional_paths_send:
|
23
|
+
auto_default: false
|
24
|
+
config_get_token_append: '/^capability additional-paths send(?: disable)?/'
|
25
|
+
config_set_append: '<state> capability additional-paths send <disable>'
|
26
|
+
default_value: 'inherit'
|
27
|
+
|
28
|
+
advertise_map_exist:
|
29
|
+
config_get_token_append: '/^advertise-map (\S+) exist-map (\S+)$/'
|
30
|
+
config_set_append: '<state> advertise-map <map1> exist-map <map2>'
|
31
|
+
default_value: ''
|
32
|
+
|
33
|
+
advertise_map_non_exist:
|
34
|
+
config_get_token_append: '/^advertise-map (\S+) non-exist-map (\S+)$/'
|
35
|
+
config_set_append: '<state> advertise-map <map1> non-exist-map <map2>'
|
36
|
+
default_value: ''
|
37
|
+
|
38
|
+
all_afs:
|
39
|
+
multiple: true
|
40
|
+
config_get_token_append: '/^address-family (\S+) (\S+)$/'
|
41
|
+
|
42
|
+
allowas_in:
|
43
|
+
auto_default: false
|
44
|
+
config_get_token_append: '/^allowas-in(?: \d+)?/'
|
45
|
+
config_set_append: '<state> allowas-in <max>'
|
46
|
+
default_value: false
|
47
|
+
|
48
|
+
allowas_in_max:
|
49
|
+
default_value: 3
|
50
|
+
|
51
|
+
as_override:
|
52
|
+
kind: boolean
|
53
|
+
config_get_token_append: '/^as-override$/'
|
54
|
+
config_set_append: '<state> as-override'
|
55
|
+
default_value: false
|
56
|
+
|
57
|
+
default_originate:
|
58
|
+
config_get_token_append: '/^default-originate(?: route-map .*)?/'
|
59
|
+
config_set_append: '<state> default-originate <map>'
|
60
|
+
default_value: false
|
61
|
+
|
62
|
+
default_originate_route_map:
|
63
|
+
default_value: ~
|
64
|
+
|
65
|
+
disable_peer_as_check:
|
66
|
+
kind: boolean
|
67
|
+
config_get_token_append: '/^disable-peer-as-check$/'
|
68
|
+
config_set_append: '<state> disable-peer-as-check'
|
69
|
+
default_value: false
|
70
|
+
|
71
|
+
filter_list_in:
|
72
|
+
kind: string
|
73
|
+
config_get_token_append: '/^filter-list (\S+) in$/'
|
74
|
+
config_set_append: '<state> filter-list <str> in'
|
75
|
+
default_value: ''
|
76
|
+
|
77
|
+
filter_list_out:
|
78
|
+
kind: string
|
79
|
+
config_get_token_append: '/^filter-list (\S+) out$/'
|
80
|
+
config_set_append: '<state> filter-list <str> out'
|
81
|
+
default_value: ''
|
82
|
+
|
83
|
+
max_prefix:
|
84
|
+
config_get_token_append: '/^maximum-prefix .*$/'
|
85
|
+
config_set_append: '<state> maximum-prefix <limit> <threshold> <opt>'
|
86
|
+
|
87
|
+
max_prefix_interval:
|
88
|
+
default_value: ~
|
89
|
+
|
90
|
+
max_prefix_limit:
|
91
|
+
default_value: ~
|
92
|
+
|
93
|
+
max_prefix_threshold:
|
94
|
+
default_value: ~
|
95
|
+
|
96
|
+
max_prefix_warning:
|
97
|
+
default_value: ~
|
98
|
+
|
99
|
+
next_hop_self:
|
100
|
+
kind: boolean
|
101
|
+
config_get_token_append: '/^next-hop-self$/'
|
102
|
+
config_set_append: '<state> next-hop-self'
|
103
|
+
default_value: false
|
104
|
+
|
105
|
+
next_hop_third_party:
|
106
|
+
kind: boolean
|
107
|
+
config_get_token_append: '/^(no ?)next-hop-third-party$/'
|
108
|
+
config_set_append: '<state> next-hop-third-party'
|
109
|
+
default_value: true
|
110
|
+
|
111
|
+
prefix_list_in:
|
112
|
+
kind: string
|
113
|
+
config_get_token_append: '/^prefix-list (\S+) in$/'
|
114
|
+
config_set_append: '<state> prefix-list <str> in'
|
115
|
+
default_value: ''
|
116
|
+
|
117
|
+
prefix_list_out:
|
118
|
+
kind: string
|
119
|
+
config_get_token_append: '/^prefix-list (\S+) out$/'
|
120
|
+
config_set_append: '<state> prefix-list <str> out'
|
121
|
+
default_value: ''
|
122
|
+
|
123
|
+
route_map_in:
|
124
|
+
kind: string
|
125
|
+
config_get_token_append: '/^route-map (\S+) in$/'
|
126
|
+
config_set_append: '<state> route-map <str> in'
|
127
|
+
default_value: ''
|
128
|
+
|
129
|
+
route_map_out:
|
130
|
+
kind: string
|
131
|
+
config_get_token_append: '/^route-map (\S+) out$/'
|
132
|
+
config_set_append: '<state> route-map <str> out'
|
133
|
+
default_value: ''
|
134
|
+
|
135
|
+
route_reflector_client:
|
136
|
+
kind: boolean
|
137
|
+
config_get_token_append: '/^route-reflector-client$/'
|
138
|
+
config_set_append: '<state> route-reflector-client'
|
139
|
+
default_value: false
|
140
|
+
|
141
|
+
send_community:
|
142
|
+
auto_default: false
|
143
|
+
config_get_token_append: '/^send-community(?: .*)?/'
|
144
|
+
config_set_append: '<state> send-community <attr>'
|
145
|
+
default_value: 'none'
|
146
|
+
|
147
|
+
soft_reconfiguration_in:
|
148
|
+
auto_default: false
|
149
|
+
default_value: 'inherit'
|
150
|
+
/(N3K|N9K)/:
|
151
|
+
config_get_token_append: '/^soft-reconfiguration inbound(?: always)?/'
|
152
|
+
config_set_append: '<state> soft-reconfiguration inbound <always>'
|
153
|
+
else:
|
154
|
+
config_get_token_append: '/^soft-reconfiguration inbound/'
|
155
|
+
config_set_append: '<state> soft-reconfiguration inbound'
|
156
|
+
|
157
|
+
soo:
|
158
|
+
kind: string
|
159
|
+
config_get_token_append: '/^soo (.*)$/'
|
160
|
+
config_set_append: '<state> soo <str>'
|
161
|
+
default_value: ''
|
162
|
+
|
163
|
+
suppress_inactive:
|
164
|
+
kind: boolean
|
165
|
+
config_get_token_append: '/^suppress-inactive$/'
|
166
|
+
config_set_append: '<state> suppress-inactive'
|
167
|
+
default_value: false
|
168
|
+
|
169
|
+
unsuppress_map:
|
170
|
+
kind: string
|
171
|
+
config_get_token_append: '/^unsuppress-map (.*)$/'
|
172
|
+
config_set_append: '<state> unsuppress-map <str>'
|
173
|
+
default_value: ''
|
174
|
+
|
175
|
+
weight:
|
176
|
+
kind: int
|
177
|
+
config_get_token_append: '/^weight (\d+)$/'
|
178
|
+
config_set_append: '<state> weight <int>'
|
179
|
+
default_value: false
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# dnsclient
|
2
|
+
---
|
3
|
+
_template:
|
4
|
+
config_get: "show running-config all"
|
5
|
+
|
6
|
+
domain_list:
|
7
|
+
multiple: true
|
8
|
+
config_get_token: '/^ip domain-list (\S+)$/'
|
9
|
+
config_set: '<state> ip domain-list <name>'
|
10
|
+
default_value: []
|
11
|
+
|
12
|
+
domain_list_vrf:
|
13
|
+
multiple: true
|
14
|
+
config_get_token: ['/vrf context <vrf>/', '/ip domain-list (\S+)/']
|
15
|
+
config_set: ['vrf context <vrf>', '<state> ip domain-list <name>']
|
16
|
+
default_value: []
|
17
|
+
|
18
|
+
domain_name:
|
19
|
+
cli_nexus:
|
20
|
+
config_set: '<state> ip domain-name <name>'
|
21
|
+
config_get_token: '/^ip domain-name (\S+)$/'
|
22
|
+
default_value: ''
|
23
|
+
|
24
|
+
domain_name_vrf:
|
25
|
+
config_get_token: ['/vrf context <vrf>/', '/ip domain-name (\S+)/']
|
26
|
+
config_set: ['vrf context <vrf>', '<state> ip domain-name <name>']
|
27
|
+
default_value: ''
|
28
|
+
|
29
|
+
name_server:
|
30
|
+
multiple: true
|
31
|
+
default_value: []
|
32
|
+
config_get: "show running-config all | include 'ip name-server' | exclude 'use-vrf'"
|
33
|
+
config_get_token: '/^ip name-server ([\s\d\.:]+)$/'
|
34
|
+
config_set: '<state> ip name-server <ip>'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# evpn_vni.yaml
|
2
|
+
---
|
3
|
+
_template:
|
4
|
+
config_get: "show running bgp all"
|
5
|
+
config_get_token: '/^evpn$/'
|
6
|
+
config_get_token_append:
|
7
|
+
- '/^vni <vni> l2$/'
|
8
|
+
config_set: 'evpn'
|
9
|
+
config_set_append:
|
10
|
+
- "vni <vni> l2"
|
11
|
+
|
12
|
+
evpn:
|
13
|
+
config_get_token: "/^evpn$/"
|
14
|
+
config_set: "<state> evpn"
|
15
|
+
|
16
|
+
route_distinguisher:
|
17
|
+
config_get_token_append: '/^rd (\S+)$/'
|
18
|
+
config_set_append: "<state> rd <rd>"
|
19
|
+
default_value: ""
|
20
|
+
|
21
|
+
route_target_both:
|
22
|
+
config_get_token_append: '/^route-target both (\S+)$/'
|
23
|
+
config_set_append: "<state> route-target both <community>"
|
24
|
+
multiple: true
|
25
|
+
default_value: []
|
26
|
+
|
27
|
+
route_target_export:
|
28
|
+
config_get_token_append: '/^route-target export (\S+)$/'
|
29
|
+
config_set_append: "<state> route-target export <community>"
|
30
|
+
multiple: true
|
31
|
+
default_value: []
|
32
|
+
|
33
|
+
route_target_import:
|
34
|
+
config_get_token_append: '/^route-target import (\S+)$/'
|
35
|
+
config_set_append: "<state> route-target import <community>"
|
36
|
+
multiple: true
|
37
|
+
default_value: []
|
38
|
+
|
39
|
+
vni:
|
40
|
+
multiple: true
|
41
|
+
config_get_token_append: '/^vni\s+(\S+)\s+l2$/'
|
42
|
+
config_set: ["evpn", "<state> vni <vni> l2", "end"]
|
@@ -0,0 +1,172 @@
|
|
1
|
+
# fabricpath
|
2
|
+
---
|
3
|
+
# Fabricpath feature is not available on N3K and N9K
|
4
|
+
_exclude: [/N3/, /N9K/]
|
5
|
+
|
6
|
+
aggregate_multicast_routes:
|
7
|
+
_exclude: [/N5K/, /N6K/]
|
8
|
+
kind: boolean
|
9
|
+
config_get: "show run fabricpath all"
|
10
|
+
config_get_token: '/^fabricpath multicast aggregate\-routes\s*$/'
|
11
|
+
config_set: "<state> fabricpath multicast aggregate-routes"
|
12
|
+
default_value: false
|
13
|
+
|
14
|
+
allocate_delay:
|
15
|
+
kind: int
|
16
|
+
config_get: "show run fabricpath all"
|
17
|
+
config_get_token: '/^fabricpath timers allocate\-delay (\d+)/'
|
18
|
+
config_set: "<state> fabricpath timers allocate-delay <delay>"
|
19
|
+
default_value: 10
|
20
|
+
|
21
|
+
auto_switch_id:
|
22
|
+
kind: int
|
23
|
+
config_get: "show fabricpath switch-id"
|
24
|
+
config_get_token: '/^\*\s+(\d+).*No\s*$/'
|
25
|
+
|
26
|
+
feature:
|
27
|
+
config_get: "show feature-set"
|
28
|
+
config_get_token: '/^fabricpath[\s]+[\d]+[\s]+(\S+)/'
|
29
|
+
config_set: "<state> feature-set fabricpath"
|
30
|
+
default_value: disabled
|
31
|
+
|
32
|
+
feature_install:
|
33
|
+
config_set: "<state> install feature-set fabricpath"
|
34
|
+
|
35
|
+
graceful_merge:
|
36
|
+
auto_default: false
|
37
|
+
kind: boolean
|
38
|
+
config_get: "show run fabricpath all"
|
39
|
+
config_get_token: '/^fabricpath graceful\-merge disable\s*$/'
|
40
|
+
config_set: "<state> fabricpath graceful-merge disable"
|
41
|
+
default_value: true
|
42
|
+
|
43
|
+
linkup_delay:
|
44
|
+
kind: int
|
45
|
+
config_get: "show run fabricpath all"
|
46
|
+
config_get_token: '/^fabricpath timers linkup-delay (\d+)\s*$/'
|
47
|
+
config_set: "<state> fabricpath timers linkup-delay <delay>"
|
48
|
+
default_value: 10
|
49
|
+
|
50
|
+
linkup_delay_always:
|
51
|
+
_exclude: [/N5K/, /N6K/]
|
52
|
+
kind: boolean
|
53
|
+
config_get: "show run fabricpath all"
|
54
|
+
config_get_token: '/^fabricpath timers linkup-delay always\s*$/'
|
55
|
+
config_set: "<state> fabricpath timers linkup-delay always"
|
56
|
+
default_value: false
|
57
|
+
|
58
|
+
linkup_delay_enable:
|
59
|
+
_exclude: [/N5K/, /N6K/]
|
60
|
+
auto_default: false
|
61
|
+
kind: boolean
|
62
|
+
config_get: "show run fabricpath all"
|
63
|
+
config_get_token: '/^fabricpath linkup-delay\s*$/'
|
64
|
+
config_set: "<state> fabricpath linkup-delay"
|
65
|
+
default_value: true
|
66
|
+
|
67
|
+
loadbalance_algorithm:
|
68
|
+
kind: string
|
69
|
+
config_get: "show run fabricpath all"
|
70
|
+
config_get_token: '/^fabricpath load-balance (\S+)\s*$/'
|
71
|
+
config_set: "<state> fabricpath load-balance <algo>"
|
72
|
+
/N5K/:
|
73
|
+
default_value: "source-destination"
|
74
|
+
else:
|
75
|
+
default_value: "symmetric"
|
76
|
+
|
77
|
+
loadbalance_multicast_has_vlan:
|
78
|
+
_exclude: [/N5K/, /N6K/]
|
79
|
+
kind: boolean
|
80
|
+
auto_default: false
|
81
|
+
config_get: "show fabricpath load-balance | begin Ftag"
|
82
|
+
config_get_token: '/^Use VLAN: TRUE\s*$/'
|
83
|
+
default_value: true
|
84
|
+
|
85
|
+
loadbalance_multicast_reset:
|
86
|
+
_exclude: [/N5K/, /N6K/]
|
87
|
+
config_set: "no fabricpath load-balance multicast"
|
88
|
+
|
89
|
+
loadbalance_multicast_rotate:
|
90
|
+
_exclude: [/N5K/, /N6K/]
|
91
|
+
kind: int
|
92
|
+
config_get: "show fabricpath load-balance | begin Ftag"
|
93
|
+
config_get_token: '/^Rotate amount: (\d+)/'
|
94
|
+
default_value: 1
|
95
|
+
|
96
|
+
loadbalance_multicast_set:
|
97
|
+
_exclude: [/N5K/, /N6K/]
|
98
|
+
config_set: 'fabricpath load-balance multicast <rotate_amt> <inc_vlan>'
|
99
|
+
|
100
|
+
loadbalance_unicast_has_vlan:
|
101
|
+
kind: boolean
|
102
|
+
auto_default: false
|
103
|
+
config_get: "show fabricpath load-balance | begin ECMP next 4"
|
104
|
+
config_get_token: '/^Use VLAN: TRUE\s*$/'
|
105
|
+
config_set: "<state> fabricpath load-balance unicast include-vlan"
|
106
|
+
default_value: true
|
107
|
+
|
108
|
+
loadbalance_unicast_layer:
|
109
|
+
kind: string
|
110
|
+
config_get: "show fabricpath load-balance | begin ECMP next 4"
|
111
|
+
config_get_token: '/^L3\/L4 Preference: (\S+)/'
|
112
|
+
config_set: "<state> fabricpath load-balance unicast <pref>"
|
113
|
+
default_value: "mixed"
|
114
|
+
|
115
|
+
loadbalance_unicast_reset:
|
116
|
+
config_set: "no fabricpath load-balance unicast"
|
117
|
+
|
118
|
+
loadbalance_unicast_rotate:
|
119
|
+
_exclude: [/N5K/, /N6K/]
|
120
|
+
kind: int
|
121
|
+
config_get: "show fabricpath load-balance | begin ECMP next 4"
|
122
|
+
config_get_token: '/^Rotate amount: (\d+)/'
|
123
|
+
default_value: 1
|
124
|
+
|
125
|
+
loadbalance_unicast_set:
|
126
|
+
config_set: 'fabricpath load-balance unicast <pref> <rotate_amt> <inc_vlan>'
|
127
|
+
|
128
|
+
loadbalance_unicast_support:
|
129
|
+
kind: string
|
130
|
+
/N5K/:
|
131
|
+
default_only: "split"
|
132
|
+
/N6K/:
|
133
|
+
default_only: "split"
|
134
|
+
else:
|
135
|
+
default_only: "combined"
|
136
|
+
|
137
|
+
mode:
|
138
|
+
kind: string
|
139
|
+
config_get: "show run fabricpath all"
|
140
|
+
config_get_token: '/^fabricpath mode (\S+)/'
|
141
|
+
config_set: "<state> fabricpath mode transit"
|
142
|
+
default_value: "normal"
|
143
|
+
|
144
|
+
switch_id:
|
145
|
+
kind: int
|
146
|
+
config_get: "show run fabricpath all"
|
147
|
+
config_get_token: '/^fabricpath switch-id (\d+)\s*$/'
|
148
|
+
config_set: "fabricpath switch-id <swid>"
|
149
|
+
|
150
|
+
transition_delay:
|
151
|
+
kind: int
|
152
|
+
config_get: "show run fabricpath all"
|
153
|
+
config_get_token: '/^fabricpath timers transition\-delay (\d+)\s*$/'
|
154
|
+
config_set: "<state> fabricpath timers transition-delay <delay>"
|
155
|
+
default_value: 10
|
156
|
+
|
157
|
+
ttl_multicast:
|
158
|
+
_exclude: [/N5K/, /N6K/]
|
159
|
+
kind: int
|
160
|
+
config_get: "show run fabricpath all"
|
161
|
+
config_get_token: '/^fabricpath ttl multicast (\d+)\s*$/'
|
162
|
+
config_set: "<state> fabricpath ttl multicast <ttl>"
|
163
|
+
default_value: 32
|
164
|
+
|
165
|
+
ttl_unicast:
|
166
|
+
_exclude: [/N5K/, /N6K/]
|
167
|
+
kind: int
|
168
|
+
config_get: "show run fabricpath all"
|
169
|
+
config_get_token: '/^fabricpath ttl unicast (\d+)\s*$/'
|
170
|
+
config_set: "<state> fabricpath ttl unicast <ttl>"
|
171
|
+
default_value: 32
|
172
|
+
|