Skip to content

Commit 2b1a9f6

Browse files
Merge pull request #227 from cisco/release_1.2.0
Release 1.2.0
2 parents 0823bd4 + 1f2e2ff commit 2b1a9f6

File tree

200 files changed

+17983
-4025
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

200 files changed

+17983
-4025
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ pkg/*
33
vendor/*
44
coverage
55
Gemfile.lock
6-
*.gem
6+
*.gem
7+
*.swp

CHANGELOG.md

+126-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,126 @@
11
Changelog
22
=========
33

4+
## [v1.2.0]
5+
6+
### New feature support
7+
* ACL (platforms: Nexus 3k and Nexus 9k)
8+
* acl (@saqibraza)
9+
* ace (@yjyongz)
10+
* remark ace (@bansalpradeep)
11+
* EVPN (platforms: Nexus 3k and Nexus 9k)
12+
* evpn_vni (@andish)
13+
* Fabric Path (platforms: Nexus 7k)
14+
* fabricpath_global (@dcheriancisco)
15+
* fabricpath_topology (@dcheriancisco)
16+
* Feature
17+
* feature (@robert-w-gries)
18+
* Interface (platforms: Nexus 3k, Nexus 5k, Nexus 6k, Nexus 7k and Nexus 9k)
19+
* interface_channel_group (@chrisvanheuveln)
20+
* interface_portchannel (@saichint)
21+
* interface_service_vni (@chrisvanheuveln)
22+
* PIM (platforms: Nexus 3k and Nexus 9k)
23+
* pim (@smigopal)
24+
* pim_group_list (@smigopal)
25+
* pim_rp_address (@smigopal)
26+
* Port Channel (platforms: Nexus 3k, Nexus 5k, Nexus 6k, Nexus 7k and Nexus 9k)
27+
* interface_channel_group (@chrisvanheuveln)
28+
* interface_portchannel (@saichint)
29+
* portchannel_global (@saichint)
30+
* SNMP (platforms: Nexus 3k, Nexus 5k, Nexus 6k, Nexus 7k and Nexus 9k)
31+
* snmpnotification (@tphoney)
32+
* VDC (platforms: Nexus 7k)
33+
* vdc (@chrisvanheuveln)
34+
* VPC (platforms: Nexus 3k, Nexus 5k, Nexus 6k, Nexus 7k and Nexus 9k)
35+
* vpc (@dcheriancisco)
36+
* VRF (platforms: Nexus 3k, Nexus 5k, Nexus 6k, Nexus 7k and Nexus 9k)
37+
* vrf_af (@chrisvanheuveln)
38+
* VXLAN (platforms: Nexus 9k)
39+
* overlay_global (@alok-aggarwal)
40+
* vxlan_vtep (@dcheriancisco)
41+
* vxlan_vtep_vni (@mikewiebe)
42+
43+
44+
### Additional platform support added to existing classes
45+
#### Cisco Nexus 56xx, 60xx and 7xxx
46+
* AAA
47+
* aaa_authentication_login
48+
* aaa_authentication_login_service
49+
* aaa_authentication_service
50+
* BGP
51+
* bgp
52+
* bgp_af
53+
* bgp_af_neighobr
54+
* bgp_neighbor_af
55+
* COMMAND_CONFIG
56+
* command_config (config_parser)
57+
* DOMAIN
58+
* dns_domain
59+
* domain_name
60+
* name_server
61+
* INTERFACE
62+
* interface
63+
* NTP
64+
* ntp_config
65+
* ntp_server
66+
* OSPF
67+
* interface_ospf
68+
* ospf
69+
* ospf_vrf
70+
* RADIUS
71+
* radius_global
72+
* SNMP
73+
* snmp_community
74+
* snmp_group
75+
* snmp_notification_receiver
76+
* snmp_server
77+
* snmp_user
78+
* SYSLOG
79+
* syslog_server
80+
* syslog_setting
81+
* TACACS
82+
* tacacs_server
83+
* tacacs_server_group
84+
* tacacs_server_host
85+
* VLAN
86+
* vlan
87+
88+
### Added
89+
90+
* `Cisco::UnsupportedError` exception class, raised when a command is explicitly marked as unsupported on a particular class of nodes.
91+
* Extend bgp with attributes:
92+
* `disable_policy_batching`, `disable_policy_batching_ipv4`, `disable_policy_batching_ipv6`
93+
* `event_history_cli`, `event_history_detail`, `event_history_events`, `event_history_periodic`
94+
* `fast_external_fallover`
95+
* `flush_routes`
96+
* `isolate`
97+
* `neighbor_down_fib_accelerate`
98+
* `route_distinguisher`
99+
* Extend bgp_af with attributes:
100+
* `default_metric`
101+
* `distance_ebgp`, `distance_ibgp`, `distance_local`
102+
* `inject_map`
103+
* `suppress_inactive`
104+
* `table_map`
105+
* Extend interface with attributes:
106+
* `fabric_forwarding_anycast_gateway`
107+
* `ipv4_acl_in`, `ipv4_acl_out`, `ipv6_acl_in`, `ipv6_acl_out`
108+
* `ipv4_address_secondary`, `ipv4_arp_timeout`
109+
* `vlan_mapping`
110+
* `vpc_id`, `vpc_peer_link`
111+
* switchport mode `fabricpath`
112+
* Extend vrf with attributes:
113+
* `vni`
114+
* Extend vlan with attribute:
115+
* `mode`
116+
117+
### Changed
118+
119+
* Major refactor and enhancement of `CommandReference` YAML files:
120+
- Added support for `auto_default`, `default_only`, `kind`, and `multiple`
121+
- Added filtering by product ID (`/N7K/`) and by client type (`cli_nexus`)
122+
- `CommandReference` methods that do key-value style wildcard substitution now raise an `ArgumentError` if the result is empty (because not enough parameters were supplied).
123+
4124
## [v1.1.0]
5125

6126
### New feature support
@@ -15,10 +135,12 @@ Changelog
15135
* RADIUS
16136
* radius_global (@jonnytpuppet)
17137
* radius_server (@jonnytpuppet)
138+
* SNMP
139+
* snmp_notification_receiver (@jonnytpuppet)
18140
* SYSLOG
19141
* syslog_server (@jonnytpuppet)
20142
* syslog_setting (@jonnytpuppet)
21-
* Miscellaneous
143+
* Miscellaneous
22144
* dns_domain (@hunner)
23145
* domain_name (@bmjen)
24146
* name_server (@hunner)
@@ -43,6 +165,8 @@ Changelog
43165
* Added `config` and `(assert|refute)_show_match` helper methods for testing.
44166
* Added `bin/check_metric_limits.rb` helper script in support of refactoring.
45167
* Added best practices development guide.
168+
* Added support for radius_global (@jonnytpuppet)
169+
* Added support for radius_server_group (@jonnytpuppet)
46170

47171
### Fixed
48172

@@ -92,6 +216,7 @@ Changelog
92216
[git-flow]: https://github.com/petervanderdoes/gitflow-avh
93217
[SimpleCov]: https://github.com/colszowka/simplecov
94218

219+
[v1.2.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.1.0...v1.2.0
95220
[v1.1.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.0.1...v1.1.0
96221
[v1.0.1]: https://github.com/cisco/cisco-network-node-utils/compare/v1.0.0...v1.0.1
97222
[v1.0.0]: https://github.com/cisco/cisco-network-node-utils/compare/v0.9.0...v1.0.0

README.md

+19-12
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,23 @@ Please see [Learning Resources](#resources) for additional references.
3535

3636
The CiscoNodeUtils gem provides utilities for management of Cisco network
3737
nodes. It is designed to work with Puppet and Chef as well as other
38-
open source management tools. This release supports Cisco NX-OS nodes
39-
running NX-OS 7.0(3)I2(1) and later.
38+
open source management tools.
4039

41-
Please note: A virtual Nexus N9000/N3000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can obtain a copy of a virtual Nexus N9000/N3000 by sending their [cisco.com](http://cisco.com) user ID in an email to <[email protected]>. If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
40+
This CiscoNodeUtils gem release supports the following:
41+
42+
Platform | OS | OS Version |
43+
-----------------|-------|----------------------|
44+
Cisco Nexus 30xx | NX-OS | 7.0(3)I2(1) and later
45+
Cisco Nexus 31xx | NX-OS | 7.0(3)I2(1) and later
46+
Cisco Nexus 93xx | NX-OS | 7.0(3)I2(1) and later
47+
Cisco Nexus 95xx | NX-OS | 7.0(3)I2(1) and later
48+
Cisco N9kv | NX-OS | 7.0(3)I2(1) and later
49+
Cisco Nexus 56xx | NX-OS | 7.3(0)N1(1) and later
50+
Cisco Nexus 60xx | NX-OS | 7.3(0)N1(1) and later
51+
Cisco Nexus 7xxx | NX-OS | 7.3(0)D1(1) and later
52+
53+
54+
Please note: For Cisco Nexus 3k and 9k platforms, a virtual Nexus N9000/N3000 may be helpful for development and testing. Users with a valid [cisco.com](http://cisco.com) user ID can obtain a copy of a virtual Nexus N9000/N3000 by sending their [cisco.com](http://cisco.com) user ID in an email to <[email protected]>. If you do not have a [cisco.com](http://cisco.com) user ID please register for one at [https://tools.cisco.com/IDREG/guestRegistration](https://tools.cisco.com/IDREG/guestRegistration)
4255

4356
## <a name="installation">Installation</a>
4457

@@ -97,15 +110,9 @@ network node. It provides the base APIs `config_set`, `config_get`, and
97110

98111
### CommandReference
99112

100-
The `CommandReference` module provides for the abstraction of NX-OS CLI,
101-
especially to handle its variance between hardware platforms.
102-
A series of YAML files are used to describe the CLI corresponding to a given
103-
`(feature, attribute)` tuple for any given platform. When a `Node` is
104-
connected, the platform identification of the Node is used to construct a
105-
`CmdRef` object that corresponds to this platform. The `Node` APIs
106-
`config_set`, `config_get`, and `config_get_default` all rely on the `CmdRef`.
113+
The `CommandReference` class abstracts away the differences between various supported `Node` types, be that API differences (CLI vs. YANG), platform differences (NX-OS vs. IOS XR), or hardware differences (Nexus 9xxx vs. Nexus 3xxx). A series of YAML files describe various `feature` groupings. Each file describes a set of `attributes` of the given feature and the specifics of how to inspect and manage these attributes for any supported `Node` types. When a `Node` is connected, the platform identification of the Node is used to construct a `CommandReference` instance containing a set of `CmdRef` objects specific to this `Node`. The `Node` APIs `config_set`, `config_get`, and `config_get_default` all rely on the `CmdRef`.
107114

108-
See also [README_YAML](lib/cisco_node_utils/README_YAML.md).
115+
See also [README_YAML](lib/cisco_node_utils/cmd_ref/README_YAML.md).
109116

110117
### Feature Providers
111118

@@ -161,7 +168,7 @@ See [CHANGELOG](CHANGELOG.md) for a list of changes.
161168
## <a name="license_info">License Information</a>
162169

163170

164-
Copyright (c) 2013-2015 Cisco and/or its affiliates.
171+
Copyright (c) 2013-2016 Cisco and/or its affiliates.
165172

166173
Licensed under the Apache License, Version 2.0 (the "License");
167174
you may not use this file except in compliance with the License.

Rakefile

+1
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ Rake::TestTask.new do |t|
1818
t.pattern = 'tests/test_*.rb'
1919
t.warning = true
2020
t.verbose = true
21+
t.options = '-v'
2122
end

bin/git/hooks/commit-msg/enforce_style

+8
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,14 @@ if $errors > 0 # rubocop:disable Style/GlobalVars
7676
puts '{'
7777
puts message_lines.join("\n")
7878
puts '}'
79+
80+
fd = IO.sysopen('/dev/tty', 'w+')
81+
a = IO.new(fd, 'w+')
82+
a.puts 'Continue anyway? [y/N] '
83+
response = a.gets.chomp
84+
# rubocop:disable Style/GlobalVars
85+
$errors = 0 if response.downcase[0] == 'y'
86+
# rubocop:enable Style/GlobalVars
7987
end
8088

8189
exit $errors # rubocop:disable Style/GlobalVars

cisco_node_utils.gemspec

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ Gem::Specification.new do |spec|
77
spec.name = 'cisco_node_utils'
88
spec.version = CiscoNodeUtils::VERSION
99
spec.authors = ['Alex Hunsberger', 'Glenn Matthews',
10-
'Chris Van Heuveln', 'Mike Wiebe', 'Jie Yang']
10+
'Chris Van Heuveln', 'Mike Wiebe', 'Jie Yang',
11+
'Rob Gries']
1112
spec.email = '[email protected]'
1213
spec.summary = 'Utilities for management of Cisco network nodes'
1314
spec.description = <<-EOF
@@ -30,7 +31,7 @@ Currently supports NX-OS nodes.
3031
spec.add_development_dependency 'minitest', '~> 5.0'
3132
spec.add_development_dependency 'bundler', '~> 1.7'
3233
spec.add_development_dependency 'rake', '~> 10.0'
33-
spec.add_development_dependency 'rubocop', '= 0.34.2'
34+
spec.add_development_dependency 'rubocop', '= 0.35.1'
3435
spec.add_development_dependency 'simplecov', '~> 0.9'
35-
spec.add_runtime_dependency 'cisco_nxapi', '~> 1.0'
36+
spec.add_runtime_dependency 'cisco_nxapi', '~> 1.0', '>= 1.0.1'
3637
end

0 commit comments

Comments
 (0)