Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

interface: private_vlan refactor #406

Merged
merged 5 commits into from
May 17, 2016
Merged

interface: private_vlan refactor #406

merged 5 commits into from
May 17, 2016

Conversation

chrisvanheuveln
Copy link
Contributor

  • There were a few errors with the original implementation. As I worked through this I found that it made sense to rewrite many of the methods to use the new range conversion utilities, and with so many functional changes we decided to take the opportunity to shorten the property names. Since the original code was already released with 1.3.0 we decided to just deprecate them.
  • Created DEPRECATED.yaml and interface_DEPRECATED.rb for the original code. The setters will raise a warning if used, which includes the name of the new property to use. I ran the original test_interface_private_vlan tests against the deprecated code and they still pass, but then updated the test file to use the new methods. This means that going forward the deprecated methods will not have any tests run, and any issues found will not be fixed.
  • Related puppet fixes are in the works.
  • Tested on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* There were a few errors with the original implementation. As I worked through this I found that it made sense to rewrite many of the methods to use the new range conversion utilities, and with so many functional changes we decided to take the opportunity to shorten the property names. Since the original code was already released with 1.3.0 we decided to just deprecate them.

* Created `DEPRECATED.yaml` and `interface_DEPRECATED.rb` for the original code. The setters will raise a warning if used, which includes the name of the new property to use. I ran the original test_interface_private_vlan tests against the deprecated code and they still pass, but then updated the test file to use the new methods. This means that going forward the deprecated methods will not have any tests run, and any issues found will not be fixed.

* Related puppet fixes are in the works.

* Tested on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3
* My first pass at this code missed that this property supported multiple occurrences
  * Added a delta_hash method for trunk
  * Changed `pvlan_range_delta` to a single-caller method for `switchport_pvlan_mapping` since it's no longer shared with the trunk method
  * Fixed the minitest

* Passes on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3
* Tests pass on all NX platforms
* This is just a minor cleanup to make this simpler to remove later on
get_command: "show running interface all"

private_vlan_any:
# DEPRECATED (REMOVING AT 2.0.0). USE 'pvlan_any'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit How about DEPRECATED (REMOVING IN VER: 2.0.0). USE...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed it to:
DEPRECATED (REMOVING WITH RELEASE 2.0.0)

@mikewiebe
Copy link
Contributor

mikewiebe commented May 16, 2016

I looked this over pretty thoroughly and it looks good. Just wondering if we should keep the tests that cover the deprecated api names until we remove them. Otherwise 👍

@chrisvanheuveln
Copy link
Contributor Author

I considered keeping the old tests. The methods are now EOL though so if we find breakage down the road we won't be fixing those methods; thus the tests are somewhat pointless IMO.

@mikewiebe mikewiebe merged commit 33df6f8 into cisco:release_1.3.1 May 17, 2016
chrisvanheuveln added a commit that referenced this pull request May 20, 2016
* Broken by #406

* Tested on n9-i3
@chrisvanheuveln chrisvanheuveln deleted the intf_pvlan branch May 20, 2016 18:04
chrisvanheuveln pushed a commit that referenced this pull request Aug 2, 2016
* Add 8K to BGP wait_for_process_initialized()

* Add 8K to OSPF wait_for_process_initialized()

* Fix for n8k vrf context

* fix comment

* Remove skip for CSCuz44696

* fix vni for all supported platforms

* Fix minitest for aaa feature

* yaml fix

* Update version.rb

* Utils.normalize_range_array

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

* The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* There's also a method that breaks the ranges down into individual elements so that delta_add_remove can add or remove specific elements on the switch.

* I have a related commit for Puppet on the way.

* Tested on n9k

* Property mapped_vni fix for n5|6k

* private_vlan_association minitest fix

* Updated result values to reflect that API now uses Utils.normalize_range_array, which summarizes the ranges.

* The rest is just cleanup, ie removed the else clause since the if block does a return.

* Tested on n3,n5,n6,n7,n8,n9-I3

* comment updates only

* Refactor yaml to use default_only

* Error condition for l2vpn added

* Minor test code cleanups

* Add basic filter to Interface.filter

* Get rid of interfaces_id method

* shorten test method names in test_interface_private_vlan

* tested on n9

* Simplified yaml entry

* process_initialized is included for n8k

* Fix negotiate auto invalid skips (#404)

* Condense negoitate test code and fix invalid skips

* Remove debug code

* Update aaa_authentication_login_service.rb

* interface: private_vlan refactor

* There were a few errors with the original implementation. As I worked through this I found that it made sense to rewrite many of the methods to use the new range conversion utilities, and with so many functional changes we decided to take the opportunity to shorten the property names. Since the original code was already released with 1.3.0 we decided to just deprecate them.

* Created `DEPRECATED.yaml` and `interface_DEPRECATED.rb` for the original code. The setters will raise a warning if used, which includes the name of the new property to use. I ran the original test_interface_private_vlan tests against the deprecated code and they still pass, but then updated the test file to use the new methods. This means that going forward the deprecated methods will not have any tests run, and any issues found will not be fixed.

* Related puppet fixes are in the works.

* Tested on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* switchport_pvlan_mapping_trunk needs to be a multiple

* My first pass at this code missed that this property supported multiple occurrences
  * Added a delta_hash method for trunk
  * Changed `pvlan_range_delta` to a single-caller method for `switchport_pvlan_mapping` since it's no longer shared with the trunk method
  * Fixed the minitest

* Passes on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* Move svi pvlan test into test_interface_svi.rb

* Tests pass on all NX platforms

* Move deprecated keys into own hash

* This is just a minor cleanup to make this simpler to remove later on

* Update comments in DEPRECATED.yaml

* change private_vlan to pvlan

* changelog

* fix for context

* Change deprecation warning msg

* Change deprecation warning msg

* pvlan_mapping should always return array

* This property allows input as string or array. The getter was returning default as [] and non-default as String - which forces special handling in puppet's insync? method - so I changed it to always return an array. This way we don't need to override insync? at all.

* Also moved the pvlan_mapping test out of the svi file. While it does only apply to svi interfaces it seems to fit better with the other interface-related private-vlan tests.

* Tested on n5,n7,n9-I3

* Add requires for DEPRECATED providers

* Symptom: Noticed a corner case where changing a deprecated file on the device but not changing the inheriting file (I updated interface_DEPRECATED.rb but not interface.rb) caused the following error:

```
Linux# puppet agent -t
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Facter: error while resolving custom fact "cisco_node_utils": uninitialized constant Cisco::NodeUtil
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: already initialized constant Cisco::PVLAN_PROPERTY
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: previous definition of PVLAN_PROPERTY was here
```

* Analysis: Looks like facter caches the provider files. I found that making a whitespace change in interface.rb was enough to trigger the cache clear for that file and it avoided the error. But the real problem is that the deprecated providers do not have a require for 'node_utils', so just needed to add those to avoid this problem.

* Also moved PVLAN_PROPERTY hash within the class to avoid the re-definition warning. This is probably not necessary but it's cleaner.

* Also found that `set_value` didn't get included for `switchport_mode_private_vlan_trunk_promiscuous` when I copied the file contents over to DEPRECATED.yaml, so it's there now.

* Tested on n9k-i3

* Update interface_DEPRECATED.rb

* Update vlan_DEPRECATED.rb

* virtual_service and system_image yaml fix

* Fix yaml validation error

* Addressed PR comments

* Remove hardcoded tacacs server reference

* Interface shutdown property fix

* Update test_interface.rb

* switchport disable is broken

* Broken by #406

* Tested on n9-i3

* test_interface_private_vlan.rb: /private_vlan/pvlan/

* The vlan object still referenced the old names

* Tested on n9-I3

* test_interface* minor cleanups

* method name changes only for the most part

* tested on n3-I4

* yum package manager fixes

* Removed debug

* Remove trailing whitespace

* Do not track tacacs server info

* Add full relative path to tacacs server info

* Test if tacacs server is valid

* Add relative path of yaml file

* Refined the error message for invalid server

* Pim.pims fix for feature disabled

* The global nature of the pim resource means that an object will be created for each vrf regardless of state; however, this meant that objects were getting created even when feature pim was disabled, causing puppet agent/resource to to raise an error whenever the getter was called.

* Tested on n7

* Add N8k references

* Handle no virtual-services installed case

* vxlan and pvlan fix

* Remove delta check for cpu utilization (#421)

* Add 8k support to CHANGELOG

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423) (#441)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* Fix error due to time zone difference (#443)

* Fix suppress-fib-pending lib and test code (#445)

* Remove testing of vrf context and fix default test

* Fix broken yaml

* Merge default test code into main testcase

* Snmp packet_size fixes (#446)

* Snmp packet_size fixes

* Add n8k

* Fix last_reset check for platform (#444)

* Fix cannot disable local issue (#447)

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Fix auth method local cleanup (#449)

* Refactor aaa local auth removal (#450)

* Refactor aaa local auth removal

* Remove whitespace

* Remove unneeded test steps (#452)

* New overlay_global behaviors (#451)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Prevent removal of method local on unsupported platforms (#453)

* Missed merge conflict
chrisvanheuveln pushed a commit to cisco/cisco-network-puppet-module that referenced this pull request Aug 2, 2016
* Add note on existing_str

* Refactor test_interface.rb into multiple files

* This test was trying to do too much; it became too large and unwieldy to use and troubleshoot.
* Refactor to use new test syntax (test_harness_run)
* File changes:
  *  deleted:    test_interface.rb
  *  new file:   interfacelib.rb
  *  new file:   test_interface_L2.rb
  *  new file:   test_interface_L3.rb
  *  new file:   test_interface_bdi.rb
  *  modified:   test_interface_capabilities.rb
  *  modified:   test_interface_stp.rb
  *  new file:   test_interface_svi.rb
  *  new file:   test_interface_private_vlan.rb

* renamed test_vlan_mapping.rb to test_interface_vlan_mapping.rb

* Only tested on n7k and n9k so far but there's a lot here and I wanted to get some eyes on the changes

* Platform tweaks for test_interface*

* test_interface: add skip_unless_supported plat checks

* Minor change to bail out of the test immediately if the platform does not apply

* test_interface_private_vlan: fix trunk assoc cleanup

* Found a bug on n9k where 'private-vlan association trunk' does not get cleaned up by 'default interface', which breaks this beaker test

* Created a workaround cleanup method that does 'no switchport'

* Tested on N9k-I3

* test_private_vlan: refactor, remove redundancies

* Refactored to use new test syntax; removed unnecessary/redundant tests and some that didn't test anything
* This test suffers from the same idempotency bug as the interface private-vlan code; it will require the same kind of fix

* Tested on n9k-I3, N7

* Bump version number.

* Add testing for switchport_autostate_exclude

* Remove old and redudant access_vlan tests

* Remove old style beaker tests

* normalize_range_array for puppet

This is the puppet counter-part to NU. The notes below are copied from: cisco/cisco-network-node-utils#400
The main difference between these is a default check in Utils.normalize_range_array and that there's no Utils.dash_range_to_elements since that's not needed in puppet.

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

  * The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* Tested on n9k. Additional testing coming on the other platforms, as well well as demo, Readme, etc.

* bgp_af l2vpn

* Fix demo_bgp

* Fix additional_paths_install

* New beaker style vlan tests

* l2vpn/evpn support

* l2vpn/evpn support

* exclude n3k

* review comments

* Review comments

* cisco_interface: deprecate private_vlan*

* private_vlan refactor

* cisco_interface: private_vlan refactor

* Deprecated the private_vlan properties that were released with 1.3.0 and created new pvlan properties in their place.

* This is the companion to NU PR: cisco/cisco-network-node-utils#406

* Updated Type, Provider, Beaker, Demo, README, and CHANGELOG.

* Currently only tested on N7, N9-i3. Additional testing in prog.

* readme and changelog

* readme and changelog

* Update README.md

* pvlan beaker fixups for 6k

* The 6k cli is strict about requiring vlan associations before allowing interface vlan association; therefore I added the dependencies to the test. I need to rerun the test on all the platforms to see if the platform check needs to be tweaked.

* Only tested on n6 so far

* Minor demo_interface changes

* Added some private-vlan dependency resources

* test_interface_private_vlan: n3k platform fixes

* demo manifest as well

* tested on n3-i4,n9-i2,n5,n9-i3,n7

* test_interface_stp needs vlan cleanup

* tested on n9-i3

* Re-add n8k doc references

* Fix some N8k references

* Add N8k back to support table

* Remove extra property

* Fix spacing in rotate property

* anycast_gateway platform checks

* Restrict the anycast test to n9k only

* Tested on n3,n7,n9-i2,n9-i3

* test_interface_service_vni script fixes

* Some cleanup / setup was insufficient

* :non_default was not getting run

* This is only supported on n7k; tested on n7k.

* test_vrf: f3 dependencies

* N7k needs an f3-only vdc for route_distinguisher

* tested on n7

* test_vrf_af: add f3 dependency for 7k

* tested on n7k

* Update README-agent-install.md

* Update README.md

* test_vlan/test_private_vlan: add f3 deps

* Tested on n7

* test_vxlan_vtep*: add f3 deps

* Tested on n7

* Refactor package provider to use rpm - qip (#328)

* Replace regexp with rpm -qip

* patching demo updates

* Updated fail message

* Update demo_patching.pp

* Add back rpm filename regexp support (#329)

* Add back rpm filename regexp support

* Remove debugs

* Update README.md

* interface svi fix

* Remove explicit anycast config

* anycast-gateway-mac is a required dependency; a recent commit added an explicit call to the test file to set this up; BUT we already had existing code for doing this that was part of interfacelib.rb

* The interfacelib code was returning early because of /unless/if/

* Tested on n9-i4

* test_interface_L2 should reset sys_def_switchport

* This test sets the system default switchport state to true but it should reset it to false when it's finished.

* Tested on n9-i4

* test_vxlan_vtep_vni: suppress_uuc broken

* There was a platform exception that tried to add this property using the new test syntax; however this test file uses an older syntax.

* Added an nv overlay hw support check (my n6k does not support nv overlay)

* Tested on n6

* README-agent-install: doc cleanup (#330)

* README-agent-install: doc cleanup

* This doc has had a lot of misc updates in the past so I tried to streamline the content somewhat and organize the sections into discrete steps.

* A couple of things that need a closer look:
 * The RPM table may need updating to reflect the GS fix coming out any day
 * The auto-install section for cisco_node_utils gem is a little weak. I'm not sure if I referenced the correct pp file and used the right directory target.

* README-agent-install.md: Cleanup node-utils section

* README-agent-install.md: fix broken links

* Review comments addressed

* All addressed except for the GS RPM comment.

* README-agent-install: GS RPM v1.5 tested

* Add markdown syntax flags

* README.md cleanup for 1.3.2 (#335)

* Move Document Workflow Map to Documentation Guide table

* README: Move Limitations into Platform Support

* Add Legend & tables

* README: Update Usage section

* README: Move platform support section after resource ref tables

* README.md: minor text change

* URL change: /develop/master/

* Addressed remaining PR comments

* /develop/master/ URL fixup

* test_vdc: fix for non-F3 testbeds (#336)

* test_vdc: fix for non-F3 testbeds

* Updated this test to work with non-F3 N7k testbeds.
  * Initially set the VDC module-type to default state
  * Then set module-type to F3 and test
  * There's no great way to know which way to leave the module-type when this test completes, so:
    * Reset module-type to default for non-F3 testbeds since leaving it as F3 means the device won't have any usable interfaces
    * Noop for F3 testbeds so that it leaves their F3 still usable

* Tested on n6, n7-non-F3

* beaker tests: add F3 dependencies

* vdc, bridge-domain tests

* tested on n6, n7-non-F3

* Fix vxlan_vtep_vni suppress_uuc prop (#341)

* Readme.md changes for itd_service (#346)

* itd_service pre requisite

* cleanup

* cleanup

* review comment

* review comment

* review comment

* Add n8k reference to CHANGELOG

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* New overlay_global behaviors (#360)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Remove vsh code (#361)

* Fix cisco_aaa* 'TACACS+ group delete denied, group is in use' issue (#362)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Fix cisco_tacacs* 'TACACS+ group delete denied, group is in use' (#363)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Fix netdev tacacs* 'TACACS+ group delete denied, group is in use' (#364)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Add setup/cleanup steps

* Fixed merge issue
mikewiebe added a commit to cisco/cisco-network-puppet-module that referenced this pull request Oct 3, 2016
* Added IOS XR support for tacacs_server

* Updated CHANGELOG

* Update CHANGELOG.md

* Added support on IOS XR for tacacs_server_group

* remove sync damage from demo_bridge

* Refactored network_interface provider. Updated tests and code to
support IOS XR.

* Matrix updates for overlay_global & network_trunk

* domain and search options are mutually exclusive

http://man7.org/linux/man-pages/man5/resolv.conf.5.html

* Remove source_interface_hold_down_time for 8k

* Collapse release_1.3.2 to develop

* cisco_bfd_global: new properties (#334)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* network_snmp ios_xr does not support global enable

* bgp_neighbor: add bfd (#340)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* add bfd to bgp_neighbor

* bfd prop

* documentation

* Fix BFD caveat

* Update CHANGELOG.md

* search_domain, tests platform agnostic (#343)

* modificatins for snmp_notification on IOS_XR

* test fixes for ios_xr snmp_notification_receiver (#338)

* Add test_get / test_set to command_config (#348)

* Add test_get / test_set to command_config

* Needed a way for beaker to query / set config that didn't have explicit resource support (e.g. disabling a feature)

* test_get is a simple get-only property that does a show running; callers set a filter to parse what they need:
    `puppet resource cisco_command_config 'cc' test_get='incl feature'`

* test_set is a simple set-only property:
    `puppet resource cisco_command_config 'cc' test_set='no feature foo'`

* Tested on n3,n5,n7,n9

* Bad regex in bkr test service_provider_nondefaults.rb

* Add beaker test_get / test_set

* config_find_remove() uses test_get to search for existing configs, then test_set to remove it.

* Fix the fabricpath tests which ran into an issue on n5k when cleaning up 'feature nv overlay' with command_config: Puppet resource removes the config but then immediately does a 'show runn' which gets a SAP timeout on the device itself and the test errors. Using the test_set setter instead of regular command_config gets around this problem because it's a "set-only" with a dummy test_set getter.

* Tested on n5,n7,n9

* test_get: add debugs, comments

* tested on n5

* Skipped tacacs provider test on IOS XR (#350)

* Refactor tests: aaa_group_tacacs (#351)

* Converted to new test syntax

* Tested on n9-i4

* Add cisco_ospf_area provider (#352)

This PR is for cisco_ospf_area provider. The properties do not include nssa and its associated properties. They will be added as part of another user story.

Since this provider becomes absent when all properties are set to default, cisco_pim model is followed for beaker tests.

All demo_manifests and beaker tests passed on all platforms.

Squashed commits:

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* Added IOS XR support for snmp_user (#353)

* Add nssa properties to ospf_area provider (#354)

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* nssa

* small correction

* name changes

* fix manifest

* fix nssa_set

* include cmnutils

* beaker test added for nssa

* typo fix

* documentation

* fix docmentation

* fix README

* Fix review comments

* tacacs_global changes for ios_xr (#342)

* router_ospf_area_vlink: new provider (#355)

Adds virtual-link support

* Fixes for cisco_interface_ospf provider (#357)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* minor vrf name change

* to avoid annoying conflict with 'management'

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* Merge release_1.3.2 --> develop (#365)

* Add note on existing_str

* Refactor test_interface.rb into multiple files

* This test was trying to do too much; it became too large and unwieldy to use and troubleshoot.
* Refactor to use new test syntax (test_harness_run)
* File changes:
  *  deleted:    test_interface.rb
  *  new file:   interfacelib.rb
  *  new file:   test_interface_L2.rb
  *  new file:   test_interface_L3.rb
  *  new file:   test_interface_bdi.rb
  *  modified:   test_interface_capabilities.rb
  *  modified:   test_interface_stp.rb
  *  new file:   test_interface_svi.rb
  *  new file:   test_interface_private_vlan.rb

* renamed test_vlan_mapping.rb to test_interface_vlan_mapping.rb

* Only tested on n7k and n9k so far but there's a lot here and I wanted to get some eyes on the changes

* Platform tweaks for test_interface*

* test_interface: add skip_unless_supported plat checks

* Minor change to bail out of the test immediately if the platform does not apply

* test_interface_private_vlan: fix trunk assoc cleanup

* Found a bug on n9k where 'private-vlan association trunk' does not get cleaned up by 'default interface', which breaks this beaker test

* Created a workaround cleanup method that does 'no switchport'

* Tested on N9k-I3

* test_private_vlan: refactor, remove redundancies

* Refactored to use new test syntax; removed unnecessary/redundant tests and some that didn't test anything
* This test suffers from the same idempotency bug as the interface private-vlan code; it will require the same kind of fix

* Tested on n9k-I3, N7

* Bump version number.

* Add testing for switchport_autostate_exclude

* Remove old and redudant access_vlan tests

* Remove old style beaker tests

* normalize_range_array for puppet

This is the puppet counter-part to NU. The notes below are copied from: cisco/cisco-network-node-utils#400
The main difference between these is a default check in Utils.normalize_range_array and that there's no Utils.dash_range_to_elements since that's not needed in puppet.

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

  * The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* Tested on n9k. Additional testing coming on the other platforms, as well well as demo, Readme, etc.

* bgp_af l2vpn

* Fix demo_bgp

* Fix additional_paths_install

* New beaker style vlan tests

* l2vpn/evpn support

* l2vpn/evpn support

* exclude n3k

* review comments

* Review comments

* cisco_interface: deprecate private_vlan*

* private_vlan refactor

* cisco_interface: private_vlan refactor

* Deprecated the private_vlan properties that were released with 1.3.0 and created new pvlan properties in their place.

* This is the companion to NU PR: cisco/cisco-network-node-utils#406

* Updated Type, Provider, Beaker, Demo, README, and CHANGELOG.

* Currently only tested on N7, N9-i3. Additional testing in prog.

* readme and changelog

* readme and changelog

* Update README.md

* pvlan beaker fixups for 6k

* The 6k cli is strict about requiring vlan associations before allowing interface vlan association; therefore I added the dependencies to the test. I need to rerun the test on all the platforms to see if the platform check needs to be tweaked.

* Only tested on n6 so far

* Minor demo_interface changes

* Added some private-vlan dependency resources

* test_interface_private_vlan: n3k platform fixes

* demo manifest as well

* tested on n3-i4,n9-i2,n5,n9-i3,n7

* test_interface_stp needs vlan cleanup

* tested on n9-i3

* Re-add n8k doc references

* Fix some N8k references

* Add N8k back to support table

* Remove extra property

* Fix spacing in rotate property

* anycast_gateway platform checks

* Restrict the anycast test to n9k only

* Tested on n3,n7,n9-i2,n9-i3

* test_interface_service_vni script fixes

* Some cleanup / setup was insufficient

* :non_default was not getting run

* This is only supported on n7k; tested on n7k.

* test_vrf: f3 dependencies

* N7k needs an f3-only vdc for route_distinguisher

* tested on n7

* test_vrf_af: add f3 dependency for 7k

* tested on n7k

* Update README-agent-install.md

* Update README.md

* test_vlan/test_private_vlan: add f3 deps

* Tested on n7

* test_vxlan_vtep*: add f3 deps

* Tested on n7

* Refactor package provider to use rpm - qip (#328)

* Replace regexp with rpm -qip

* patching demo updates

* Updated fail message

* Update demo_patching.pp

* Add back rpm filename regexp support (#329)

* Add back rpm filename regexp support

* Remove debugs

* Update README.md

* interface svi fix

* Remove explicit anycast config

* anycast-gateway-mac is a required dependency; a recent commit added an explicit call to the test file to set this up; BUT we already had existing code for doing this that was part of interfacelib.rb

* The interfacelib code was returning early because of /unless/if/

* Tested on n9-i4

* test_interface_L2 should reset sys_def_switchport

* This test sets the system default switchport state to true but it should reset it to false when it's finished.

* Tested on n9-i4

* test_vxlan_vtep_vni: suppress_uuc broken

* There was a platform exception that tried to add this property using the new test syntax; however this test file uses an older syntax.

* Added an nv overlay hw support check (my n6k does not support nv overlay)

* Tested on n6

* README-agent-install: doc cleanup (#330)

* README-agent-install: doc cleanup

* This doc has had a lot of misc updates in the past so I tried to streamline the content somewhat and organize the sections into discrete steps.

* A couple of things that need a closer look:
 * The RPM table may need updating to reflect the GS fix coming out any day
 * The auto-install section for cisco_node_utils gem is a little weak. I'm not sure if I referenced the correct pp file and used the right directory target.

* README-agent-install.md: Cleanup node-utils section

* README-agent-install.md: fix broken links

* Review comments addressed

* All addressed except for the GS RPM comment.

* README-agent-install: GS RPM v1.5 tested

* Add markdown syntax flags

* README.md cleanup for 1.3.2 (#335)

* Move Document Workflow Map to Documentation Guide table

* README: Move Limitations into Platform Support

* Add Legend & tables

* README: Update Usage section

* README: Move platform support section after resource ref tables

* README.md: minor text change

* URL change: /develop/master/

* Addressed remaining PR comments

* /develop/master/ URL fixup

* test_vdc: fix for non-F3 testbeds (#336)

* test_vdc: fix for non-F3 testbeds

* Updated this test to work with non-F3 N7k testbeds.
  * Initially set the VDC module-type to default state
  * Then set module-type to F3 and test
  * There's no great way to know which way to leave the module-type when this test completes, so:
    * Reset module-type to default for non-F3 testbeds since leaving it as F3 means the device won't have any usable interfaces
    * Noop for F3 testbeds so that it leaves their F3 still usable

* Tested on n6, n7-non-F3

* beaker tests: add F3 dependencies

* vdc, bridge-domain tests

* tested on n6, n7-non-F3

* Fix vxlan_vtep_vni suppress_uuc prop (#341)

* Readme.md changes for itd_service (#346)

* itd_service pre requisite

* cleanup

* cleanup

* review comment

* review comment

* review comment

* Add n8k reference to CHANGELOG

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* New overlay_global behaviors (#360)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Remove vsh code (#361)

* Fix cisco_aaa* 'TACACS+ group delete denied, group is in use' issue (#362)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Fix cisco_tacacs* 'TACACS+ group delete denied, group is in use' (#363)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Fix netdev tacacs* 'TACACS+ group delete denied, group is in use' (#364)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Add setup/cleanup steps

* Fixed merge issue

* Add noop beaker test

* This is a dummy test for use during CI development

* Move noop.rb to base dir

* Munge events value 'false' to 'size_disable' (#366)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`.

This change munges the manifest value of `false` to `size_disable`.

* Ospf bfd for interfaces (#367)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* bfd added to router ospf vrf

* bfd_per_link added to interface_portchannel

* add bfd and network to int ospf

* add bfd echo to intf

* changelog

* doc

* Remove get_vshell_cmd calls (#368)

* L3 PIM-on-VRF-intf beaker fix (#369)

* ip pim sparse-mode was failing to nvgen during the test
  * Factors: a) the intf is in vrf 'test1'; and, b) 'test1' has not been instantiated yet
  * Normally these forward-references are not a problem but the new DME-based PIM cli is silently rejecting it because the vrf is not instantiated
  * For puppet it's not unreasonable to require a pre-instantiated vrf, and since this change only affects our beaker test I'm just going to update the test. The PIM team did say they would reconsider raising an error for this, or better yet just create the pim cli object regardless of vrf-instantiation state.

* Also fixed a cleanup issue for dot1q sub-ints.

* Tested on N9-I5

* Add Ospf properties for interfaces (#371)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* Fix beaker test bug (#372)

* bug fix for interface_portchannel beaker test (#373)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Removed, no longer needed

* Remove broken snmp_user XR support (#374)

* Add agent_probe to utility.lib (#375)

* `feature vn-segment-vlan-based` is not supported on some n3k's

* Added a simple helper method to test for h/w support; the result is then used by `unsupported_properties` to update the test cases

* Tested on n3k(3048), n7k, n9k

* Add f3 utility for n7 bkr tests (#376)

* Tested on n7k

* Fix half/full in test_duplex (#377)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* This fix is a little trickier than the NU fix because the output from puppet resource is 'raw' whereas the NU output is a pre-processed hash of capabilities; thus we have to be careful not to munge the vsh or puppet resource output.

* Tested on n3048

* Update service provider beaker test to work in guestshell (#378)

* Select service based on OS family

* Update fail_test message

* Add teardowns to beaker (#379)

* f3 handling for test_vrf (#380)

* f3 handling for test_vrf

* N7k setup/cleanup when missing F3 cards

* New `image?` method for checking image version pattern; used as test for unprops

* New `remove_all_vrfs` method that uses `test_get`/`test_set`; this is much faster than removing vrfs one at a time

* Remove :description image check

* Remove redundant cleanup

* f3 setup/teardown for vrf_af

* f3 setup/teardown bridge-domain

* f3 setup/teardown for encap

* bkr setup/teardown cleanups

* f3 setup/teardown for interface_svi

* f3 setup/teardown for service_vni

* f3 setup/teardown test_private_vlan

* f3 setup/teardown for vxlan_vtep*

* f3 setup/teardown for fabricpath_topology

* setup/teardown cleanups for cisco_itd_device_group_node

* beaker fix for resilient and symmetry non support on n3k (#381)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* setup/teardown for bfd_global

* setup/teardown bridge_domain

* setup/teardown acl

* setup/teardown bgp_af

* setup/teardown cisco_pim

* Convert test_fabricpath_global to new syntax

* Setup/teardown test_interface_L3

* setup/teardown test_interface_private_vlan

* Convert test_interface_channel_group to new syntax

* Convert test_interface_portchannel to new syntax

* setup/teardown for test_itd_service

* setup/teardown cisco_ospf_area*

* setup/teardown cisco_interface_ospf

* setup/teardown cisco_ospf_vrf

* Bad cleanup test_itd_service

* Convert test_command_config to new syntax

* better cleanup for bfd

* setup/teardown for test_bgp

* setup/teardown test_bgpaf

* better cleanup for pim

* setup/teardown test_bgpneighbor

* Better remove_all_vlans

* setup/teardown test_bgpneighboraf

* ospf_vrf cleanup should remove feature bfd

* setup/teardown test_stp_global

* setup/teardown test_bgpneighbor*

* better cleanup test_interface_L3

* better cleanup test_interface_ospf

* setup/teardown test_interface_portchannel

* setup/teardown test_interface_stp

* setup/teardown test_interface_bdi

* setup/teardown test_evpn_vni

* Convert test_vpc_domain to new syntax

* setup/teardown test_itd_device_group

* Convert test_overlay_global to new syntax

* Rel140/refactor package tests (#382)

* Refactor beaker package tests

* Remove unused code

* Rubocop fix

* Uncomment filename

* Add ensure_prop_override setting

* Rubocop fix

* Fix test_itd_service

* The cleanup in the dependency manifest was turning off 'feature itd' but that needs to be re-enabled in order to configure the itd device-group dependency

* beaker: Remove raise_skip call from summary checker

* test_interface_ospf dependency fix

* Add :array opt to test_get bkr utility

* Enable yum package testing in guestshell (#384)

* Initial gs package test support

* Minor refactoring

* Add camden i2.1 patch details

* Use specific yum patch for camden fcs

* Separate native and gs test flow

* Remove ensure absent in manifest_props

* Enable additional releases

* I5 patch fix

* Use single workflow for gs and native

* Convert test_snmp_server to new syntax (#385)

* Convert test_snmp_server to new syntax

* packetsize was failing on n7k so I just rewrote the test to use the new format

* tested on n7k,n9k-I5

* Fix pktsize cleanup

* Rename test_package.rb -> test_package_patch.rb

* Converted the old style tests to new syntax. (#386)

Most of these are straightforward changes. The package test is complicated on native since third-party rpms require setting up a yum repo, but I set up the test to do the repo init via puppet so we actually get a bit more coverage this way.

* Tested on N5,N7,N9-I5 using native/GS/OAC

* utilitylib: Restore tests[id][:resource]['ensure']

I pulled this out by mistake with this commit:
  2641c7a#diff-e0883d3270eb11e5d50fcdc5c4f83003L603

* test_interface_ospf: Fix process dependency

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* test_interface_ospf: Fix process dependency (#388)

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* Add log.error to beaker search_pattern

* When test_resource fails it just displays what it's expecting to find but it doesn't show what the current output was (which often helps with troubleshooting). This just includes the output when there's a failure.

* Add titles for bgp vrf beaker tests

* Suppress fib pending fix (#387)

* Generalize the method for checking nexus images

* Fix suppress fib pending for non-I5 images

* Clean up image check and post-merge leftovers

* cisco_interface enhancement (#389)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* Add'l cleanup for test_interface_ospf

* Fix id bug

* Replace skip_nexus_i2_image() with skip_nexus_image() api call (#390)

* Skip dns provider test instead of error

* Remove commented out call to fail api

* Update test_harness_dependencies for test_interface_ospf.rb (#393)

* Fixed rubocop errors

* Remove debug code

* Dhcp Relay Global (#392)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* Remove packet_size prop testing for I2 and I3 images

* cisco_interface beaker test (#394)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* Update version -> 1.4.0

* Remove old README doc

* Rel140/test service fix (#396)

* Change test service

* Fix typo in service name

* Switch to functional crond service

* Update changelog

* Add date stamp

* Remove N8K references (#397)

* Remove n8k references from README.md

* Remove n8k references and deprecate beaker agent installer

* Remove n8k checks and align hash rockets

* Remove n8k sample patch

* Document n3k agent install workaround (#398)
mikewiebe added a commit that referenced this pull request Nov 2, 2016
* Modification of tacacs_server for tacacs_global

* Add README-pre-1.3.0.md

Save this for now since it has 8k/XR info.

* Add 8K to BGP wait_for_process_initialized()

* Add 8K to OSPF wait_for_process_initialized()

* ios xr implementation of snmpserver

snmp_server for IOS_XR, contact and location

* feature vfd

* changelog

* First commit

* remove new files

* first commit

* first commit

* test

* Review comments

* Fix few things

* testing

* fabricpath

* Collapse release_1.3.1 to develop

* more tests

* tested on platforms

* minitest complete

* remove exclude for echo_interface

* bfd_global

* Fix error in init

* review comments

* EXR support for snmp_community

* loopback added to echo intf

* implementing snmp_notification_receiver for XR

* bfd_global: Add remaining properties (#418)

* errors fixed

* interval array change

* missing ipv6 default

* remove name

* add exclude for interval

* Add comments

* Review comment fixes

* Bfd for bgp_neighbor (#419)

* errors fixed

* interval array change

* missing ipv6 default

* remove name

* add exclude for interval

* Add comments

* Review comment fixes

* bfd prop added to bgp_neighbor

* CHANGELOG

* review comment

* rview comments

* Update CHANGELOG.md

* version may be absent on 'snmp-server host' (#420)

* Ospf Area (#422)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* Condense vlan configuration and fix teardown error (#426)

* test_aaa*: shorten class & testcase names

* test_interface*: short class & testcase names

* modify/delete some repetitive tests

* tested on n9-i4

* Add feature ospf enable (#428)

* test_pim_group_list: class/testcase renaming

* Tested on n9-i4

* test_snmpcommunity: short class/testcase names

* snmpuser: dummy_user var does not exist

* YANG JSON support for gRPC client (#425)

* Added support for setting/getting YANG config

* revert

* skip all tests on nexus

* cleanup

* method name change

* fixed rubocop errors

* Changes based on feedback

* removed blank line

* test_snmpuser: shorten testcase names

* test_tacacs_server_host: class/testcase name changes

* minitest: shorten class / testcase names

* Added IOS XR support for snmp_user

* Refactored snmp_user

* Updated test_snmpuser.rb

* Fixed NXOS issue with snmp_user

* Updated test_snmpuser.rb for NXOS

* Update docs for XR + small fix (#431)

* Resurrected XR doc. Fixed constant reference.

* split line that was too long

* removed whitespace

* Fixed 6.0.0 version number.

* changes based on review

* Refactor test_snmpserver (#430)

* Refactor test_snmpcommunity

* Shortened class/testcase names
* Removed redundancy by combining several test sections into a single test
* Added validate_property checks

* Tested on n9-i4

* remove comment line

* implement tacacs_global to match radius_global (#429)

* Add nssa support to ospf_area (#432)

This PR is for router_ospf_area provider which includes nssa properties.
All tests pass on on platforms except on n8k.
On n8k, commands like "area nssa default-information-originate" and "area nssa default-information-originate route-map " are not getting configured properly after we reset nssa and due to this the relevant tests failed. Bug is filed on nxos platform and skipping these tests only on n8k.

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* Added support for retrieving operational data via gRPC/YANG (#433)

* Added show_running_yang utility.  Allow retrieval of operational yang data.

* Added show_running_yang utility.  Allow retrieval of operational yang data.

* Updated changelog.  Fixed comment.

* Fixed rubocop error

* Removed extra space.

* ospf_area: Fix hash in nssa_set (#434)

This PR is for changing the nssa_set method in the ospf_area NU due to the review comments on the puppet side. This simplifies the previous version.

Also changed authentication 'clear_text' to 'cleartext' to keep consistency among all the other providers.
Chris has the context about this PR and so it is better if he reviews this.

* Add feature ospf enable

* review comments

* Add ospf_area_vlink (#436)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* first commit

* test code for vls

* test code for vls

* add more tests

* auth added

* cleartext added

* authentication_key_pw added

* message_digest_key added

* default for key_id

* comments add

* CHANGELOG fixed

* comment added

* review coments

* fixes to tacacs_global (#437)

* Rubocop fixes for PR 435 (#438)

* Fixed various XR minitest errors/failures.

* Rubocop fix for PR435

* pvlan_mapping fix for n8k (#439)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* first commit

* test code for vls

* test code for vls

* add more tests

* auth added

* cleartext added

* authentication_key_pw added

* message_digest_key added

* default for key_id

* comments add

* CHANGELOG fixed

* comment added

* review coments

* fix for pvlan_mapping for n8k

* interface_ospf NU fixes (#440)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Merge release_1.3.1 --> develop (#454)

* Add 8K to BGP wait_for_process_initialized()

* Add 8K to OSPF wait_for_process_initialized()

* Fix for n8k vrf context

* fix comment

* Remove skip for CSCuz44696

* fix vni for all supported platforms

* Fix minitest for aaa feature

* yaml fix

* Update version.rb

* Utils.normalize_range_array

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

* The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* There's also a method that breaks the ranges down into individual elements so that delta_add_remove can add or remove specific elements on the switch.

* I have a related commit for Puppet on the way.

* Tested on n9k

* Property mapped_vni fix for n5|6k

* private_vlan_association minitest fix

* Updated result values to reflect that API now uses Utils.normalize_range_array, which summarizes the ranges.

* The rest is just cleanup, ie removed the else clause since the if block does a return.

* Tested on n3,n5,n6,n7,n8,n9-I3

* comment updates only

* Refactor yaml to use default_only

* Error condition for l2vpn added

* Minor test code cleanups

* Add basic filter to Interface.filter

* Get rid of interfaces_id method

* shorten test method names in test_interface_private_vlan

* tested on n9

* Simplified yaml entry

* process_initialized is included for n8k

* Fix negotiate auto invalid skips (#404)

* Condense negoitate test code and fix invalid skips

* Remove debug code

* Update aaa_authentication_login_service.rb

* interface: private_vlan refactor

* There were a few errors with the original implementation. As I worked through this I found that it made sense to rewrite many of the methods to use the new range conversion utilities, and with so many functional changes we decided to take the opportunity to shorten the property names. Since the original code was already released with 1.3.0 we decided to just deprecate them.

* Created `DEPRECATED.yaml` and `interface_DEPRECATED.rb` for the original code. The setters will raise a warning if used, which includes the name of the new property to use. I ran the original test_interface_private_vlan tests against the deprecated code and they still pass, but then updated the test file to use the new methods. This means that going forward the deprecated methods will not have any tests run, and any issues found will not be fixed.

* Related puppet fixes are in the works.

* Tested on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* switchport_pvlan_mapping_trunk needs to be a multiple

* My first pass at this code missed that this property supported multiple occurrences
  * Added a delta_hash method for trunk
  * Changed `pvlan_range_delta` to a single-caller method for `switchport_pvlan_mapping` since it's no longer shared with the trunk method
  * Fixed the minitest

* Passes on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* Move svi pvlan test into test_interface_svi.rb

* Tests pass on all NX platforms

* Move deprecated keys into own hash

* This is just a minor cleanup to make this simpler to remove later on

* Update comments in DEPRECATED.yaml

* change private_vlan to pvlan

* changelog

* fix for context

* Change deprecation warning msg

* Change deprecation warning msg

* pvlan_mapping should always return array

* This property allows input as string or array. The getter was returning default as [] and non-default as String - which forces special handling in puppet's insync? method - so I changed it to always return an array. This way we don't need to override insync? at all.

* Also moved the pvlan_mapping test out of the svi file. While it does only apply to svi interfaces it seems to fit better with the other interface-related private-vlan tests.

* Tested on n5,n7,n9-I3

* Add requires for DEPRECATED providers

* Symptom: Noticed a corner case where changing a deprecated file on the device but not changing the inheriting file (I updated interface_DEPRECATED.rb but not interface.rb) caused the following error:

```
Linux# puppet agent -t
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Facter: error while resolving custom fact "cisco_node_utils": uninitialized constant Cisco::NodeUtil
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: already initialized constant Cisco::PVLAN_PROPERTY
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: previous definition of PVLAN_PROPERTY was here
```

* Analysis: Looks like facter caches the provider files. I found that making a whitespace change in interface.rb was enough to trigger the cache clear for that file and it avoided the error. But the real problem is that the deprecated providers do not have a require for 'node_utils', so just needed to add those to avoid this problem.

* Also moved PVLAN_PROPERTY hash within the class to avoid the re-definition warning. This is probably not necessary but it's cleaner.

* Also found that `set_value` didn't get included for `switchport_mode_private_vlan_trunk_promiscuous` when I copied the file contents over to DEPRECATED.yaml, so it's there now.

* Tested on n9k-i3

* Update interface_DEPRECATED.rb

* Update vlan_DEPRECATED.rb

* virtual_service and system_image yaml fix

* Fix yaml validation error

* Addressed PR comments

* Remove hardcoded tacacs server reference

* Interface shutdown property fix

* Update test_interface.rb

* switchport disable is broken

* Broken by #406

* Tested on n9-i3

* test_interface_private_vlan.rb: /private_vlan/pvlan/

* The vlan object still referenced the old names

* Tested on n9-I3

* test_interface* minor cleanups

* method name changes only for the most part

* tested on n3-I4

* yum package manager fixes

* Removed debug

* Remove trailing whitespace

* Do not track tacacs server info

* Add full relative path to tacacs server info

* Test if tacacs server is valid

* Add relative path of yaml file

* Refined the error message for invalid server

* Pim.pims fix for feature disabled

* The global nature of the pim resource means that an object will be created for each vrf regardless of state; however, this meant that objects were getting created even when feature pim was disabled, causing puppet agent/resource to to raise an error whenever the getter was called.

* Tested on n7

* Add N8k references

* Handle no virtual-services installed case

* vxlan and pvlan fix

* Remove delta check for cpu utilization (#421)

* Add 8k support to CHANGELOG

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423) (#441)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* Fix error due to time zone difference (#443)

* Fix suppress-fib-pending lib and test code (#445)

* Remove testing of vrf context and fix default test

* Fix broken yaml

* Merge default test code into main testcase

* Snmp packet_size fixes (#446)

* Snmp packet_size fixes

* Add n8k

* Fix last_reset check for platform (#444)

* Fix cannot disable local issue (#447)

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Fix auth method local cleanup (#449)

* Refactor aaa local auth removal (#450)

* Refactor aaa local auth removal

* Remove whitespace

* Remove unneeded test steps (#452)

* New overlay_global behaviors (#451)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Prevent removal of method local on unsupported platforms (#453)

* Missed merge conflict

* Add noop test for CI dev use

* Munge 'no event-history events' to size_disable (#456)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`

This change munges the `no event-history events` to `size_disable`
in order to handle behavior changes between different nxos releases.
This code change should be backwards compatible.

* Remove broken xr snmpuser support (#459)

* Remove broken xr snmpuser support

* test_snmpuser: shorten testcase names

* Ospf bfd for interfaces (#457)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* add bfd to router ospf

* add p2p type to int ospf

* ad bfd to interface_ospf

* test file fix

* test file fix

* clean code

* bfd per_link added to int po

* bfd echo added to interface

* bfd echo added to interface

*  fix p2p

* test code enhanced

* changelog

* review comments

* Update CHANGELOG.md

* convert symbol to string

* bfd_echo similar to vtp

* review comment

* review comment

* Scrub XR references from doc. (#458)

* Scrub XR references from doc.

* Scrub XR references from doc.

* Ospf parameters for interfaces (#460)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* added pri, tx delay, shut and mtu to int ospf

* changelog

* test_vpc needs rescue for incompat intf

* test_vpc needs rescue for incompat intf (#461)

* Minitest bug fixes (#462)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* added pri, tx delay, shut and mtu to int ospf

* changelog

* bug fixes

* remove test_last_reset

* Fix remove aaa local on n3k (#464)

*  Minitest: Handle N7k F3-features w/o compat LCs (#463)

* test_vpc needs rescue for incompat intf

* Handle N7k F3-features w/o compat LCs

* The vrf_af route_target tests were failing because feature nv overlay failed - because our n7k does not have an F3 linecard:

```
 1) There are some features that refuse to load unless the VDC is
    limited to F3 only, but they will actually load if the config is
    present, despite the fact that there are no physical F3s.
 2) We have some tests that need these features but don't need interfaces.
```

* Solution: Enable the vdc config for F3 but don't fail if the physical LC is not present
  * Prior to this solution I had created a couple of methods to find an appropriate interface based on the feature-to-LC requirements. This works but is only useful for features that also require an interface (unlike the vrf_af test). Eventually I would like to remove the other one-off methods (e.g. `fabricpath_testenv_setup`, `vxlan_linecard?`, etc) that do similar functions and convert the callers to use this common one instead. Since there are no current callers for it I just commented it out.

* Tested on n7k (no F3 card) and N9K.

* /if-else/case/

* MT: Fix snmpuser teardown loop (#465)

* test_vpc needs rescue for incompat intf

* MT: Fix snmpuser teardown loop

* MT: portchannel: n3k_in_n3k bad pattern

* Fix half/full in test_duplex

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* Tested on n3048

* Fix half/full in test_duplex (#466)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* Tested on n3048

* minitest fixes for vtp and resilient mode (#467)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* fix for symmetry not supported on n3k (#468)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* test_interface_sw: check for fex compatibility (#469)

* f3 fix for test_feature

* Refactor yum patch test (#470)

* Refactor yum patch test

* Update failure message

* Update failure message

* Addressed review comment

* Rubocop fixes

* f3 after_tests for test_overlay_global

* Revert "f3 after_tests for test_overlay_global"

This reverts commit 612514e.

Bad codefix

* ciscotest: first_or_last_teardown (#471)

* f3 setup/teardown on N7k's can be very time consuming (60+ seconds) so it's expensive to do this for every testcase

* This hack limits the vdc teardowns to the first and last testcase (f3 setup is ignored if it's already set to f3)
  * We have to check for first because a test may use -n to limit the run to a single test

* Minitest.after_run is not really an option for this: it's designed to run at the end of an entire test suite and actually runs at_exit, at which point we no longer have access to our ciscotest methods.

* better teardown for test_feature

* f3 setup/teardown for test_vxlan_vtep_vni

* f3 setup/teardown test_bridge_domain_vni

* f3 setup/teardown for test_vxlan_vtep (#472)

* Also added a rescue/retry for vdc limit-resource

* setup/teardown cleanups for test_vlan

* narrowed the interfaces method in ciscotest to exclude dot1q sub-ints

* moved the mt-full test from test_vlan_mt_full.rb into vlan.rb and removed entire test file

* Tested on n5, n7, n9

* f3 setup/teardown test_encapsulation

* n7k f3 fix for test_router_bgp/route_distinguisher

* setup/teardown fix test_vlan_private

* test_yum: skip for no pkginfo filename

* assert for test_yang

* noop.rb: change skip to assert

* Rel140/refactor yum (#473)

* Refactor yum to cleanup patches properly

* Enable additional releases

* Add retry loop for Yum.remove

* Modify regexp

* Reduce tries from 50 to 20

* Refactor retry loop

* Unpdate n9k to allow local auth removal

* snmpuser minitest fix (#475)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* changelog

* revert Changelog

* fix for snmpuser 8 char limit

* test_fabricpath_global cleanup fixes

* Tested on n5,n7,n9-i2,n9-i5,n3

* test_vxlan* cleanup fixes

* tested on n3,n5,n7,n9-I2,n9-I5

* test_interface_switchport test cleanup

* test_interface_switchport test cleanups

* test_aaa_authentication_login cleanups

* Failing when stale configs present on testbed; this change should remove any leftovers

* Tested on n3-I2,n5,n7,n9-I5

* Add storm_control and dhcp relay props for interface (#474)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* storm-control and dhcp relay for intf

* exclude 2 storm control props on n7k due to hw limitation

* comments added

* changelog

* typo correct

* cleanup unsupported tests

* review comments

* remove features added during the minitest

* Add tacacs-server key cleanup

* removing vlan name negative tests and fix dhcp relay munge (#476)

* removing vlan name negative tests

* munging issue fixed

* Add defect/image check to minitest (#477)

* Add defect/image check to minitest

* Bails out of testcase if image matches pattern; no skip, no assert
* Prints 'NOOP' message and any add'l helpful text, e.g.:

```
Node under test:
  - name  - n5k-136
  - type  - N5K-C56128P
  - image - bootflash:///n6000-uk9.7.3.0.N1.1.bin

TestVrf#test_name_zero_length = 4.88 s = .
TestVrf#test_route_distinguisher = 11.79 s = .
TestVrf#test_remote_route_filtering = 2.01 s = .
TestVrf#test_name_too_long = 1.93 s = .
TestVrf#test_vpn_id = 2.07 s = .
TestVrf#test_vni = 2.85 s = S
TestVrf#test_mhost = 1.96 s = .

TestVrf#test_description -> NOOP <- [CSCuy36637: Cannot remove description]
TestVrf#test_description = 2.91 s = .
TestVrf#test_collection_default = 1.01 s = .
TestVrf#test_create_and_destroy = 2.89 s = .
TestVrf#test_name_type_invalid = 1.05 s = .
TestVrf#test_shutdown = 26.73 s = .

Finished in 62.072465s, 0.1933 runs/s, 0.4189 assertions/s.
12 runs, 26 assertions, 0 failures, 0 errors, 1 skips
```

* /puts/Cisco::Logger/

* Remove timestamp noise from logger

* Enable nv_overlay_evpn fix (#478)

* skip_legacy_defect method

* Rework previous `defect?` method to do skip instead of return

* Tested on n3-I2, n5

* skip_legacy_defect for vtp

* Dhcp Relay Global (#481)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* skip_legacy_defect for snmpserver

* Dhcp Relay Global (#482)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Refactor test_snmpuser teardown

* portchannel_global n3k minitest fix (#483)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Fix minitest error

* Use valid type6 tacacs password

* Add skip_legacy_defect? for aaa, snmp and vlxan

* bgp event_history (#484)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Fix minitest error

* bgp event-history fixes

* review comments

* more review comments

* Remove require pry in test_snmpuser.rb

* Separate ace ipv4 and ipv6 ttl tests

* Update sample patch names for I5 images.

* bgp event_history (#486)

* bgp event-history

* fix event-history props

* doc

* Update expected error class in yum test

* bgp send-community fix (#487)

* fix for send_community

* fix bfd echo intermittent failure

* review comments

* review comment

* fail api raises RuntimeError, update test

* fix for send-community (#488)

* Fix test_lacp_suspend_individual to address behavior change (#489)

* Fix test_lacp_suspend_individual to address behavior change

* Remove pry debug

* Rel141/lacp suspend (#490)

* Fix test_lacp_suspend_individual to address behavior change

* Remove pry debug

* Refactor lacp_suspend_individual setter

* Addressed PR comments

* Update comment to be more accurate

* Update version information in CHANGELOG

* Remove n8k reference

* Remove old README file.

* Fix/command config issue (#491)

* Fix 'no' commands won't apply if defaults don't nvgen

* Add 'nvgen' key to scale test hash

* Add ability to define setup config in test yaml file

* Add setup yaml test key support

* Update all tests to use scalar designation

* Update CHANGELOG.md

* Update version from 1.4.0 -> 1.4.1

* Update CHANGELOG.md
mikewiebe added a commit to cisco/cisco-network-puppet-module that referenced this pull request Nov 2, 2016
* Added IOS XR support for tacacs_server

* Updated CHANGELOG

* Update CHANGELOG.md

* Added support on IOS XR for tacacs_server_group

* remove sync damage from demo_bridge

* Refactored network_interface provider. Updated tests and code to
support IOS XR.

* Matrix updates for overlay_global & network_trunk

* domain and search options are mutually exclusive

http://man7.org/linux/man-pages/man5/resolv.conf.5.html

* Remove source_interface_hold_down_time for 8k

* Collapse release_1.3.2 to develop

* cisco_bfd_global: new properties (#334)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* network_snmp ios_xr does not support global enable

* bgp_neighbor: add bfd (#340)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* add bfd to bgp_neighbor

* bfd prop

* documentation

* Fix BFD caveat

* Update CHANGELOG.md

* search_domain, tests platform agnostic (#343)

* modificatins for snmp_notification on IOS_XR

* test fixes for ios_xr snmp_notification_receiver (#338)

* Add test_get / test_set to command_config (#348)

* Add test_get / test_set to command_config

* Needed a way for beaker to query / set config that didn't have explicit resource support (e.g. disabling a feature)

* test_get is a simple get-only property that does a show running; callers set a filter to parse what they need:
    `puppet resource cisco_command_config 'cc' test_get='incl feature'`

* test_set is a simple set-only property:
    `puppet resource cisco_command_config 'cc' test_set='no feature foo'`

* Tested on n3,n5,n7,n9

* Bad regex in bkr test service_provider_nondefaults.rb

* Add beaker test_get / test_set

* config_find_remove() uses test_get to search for existing configs, then test_set to remove it.

* Fix the fabricpath tests which ran into an issue on n5k when cleaning up 'feature nv overlay' with command_config: Puppet resource removes the config but then immediately does a 'show runn' which gets a SAP timeout on the device itself and the test errors. Using the test_set setter instead of regular command_config gets around this problem because it's a "set-only" with a dummy test_set getter.

* Tested on n5,n7,n9

* test_get: add debugs, comments

* tested on n5

* Skipped tacacs provider test on IOS XR (#350)

* Refactor tests: aaa_group_tacacs (#351)

* Converted to new test syntax

* Tested on n9-i4

* Add cisco_ospf_area provider (#352)

This PR is for cisco_ospf_area provider. The properties do not include nssa and its associated properties. They will be added as part of another user story.

Since this provider becomes absent when all properties are set to default, cisco_pim model is followed for beaker tests.

All demo_manifests and beaker tests passed on all platforms.

Squashed commits:

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* Added IOS XR support for snmp_user (#353)

* Add nssa properties to ospf_area provider (#354)

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* nssa

* small correction

* name changes

* fix manifest

* fix nssa_set

* include cmnutils

* beaker test added for nssa

* typo fix

* documentation

* fix docmentation

* fix README

* Fix review comments

* tacacs_global changes for ios_xr (#342)

* router_ospf_area_vlink: new provider (#355)

Adds virtual-link support

* Fixes for cisco_interface_ospf provider (#357)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* minor vrf name change

* to avoid annoying conflict with 'management'

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* Merge release_1.3.2 --> develop (#365)

* Add note on existing_str

* Refactor test_interface.rb into multiple files

* This test was trying to do too much; it became too large and unwieldy to use and troubleshoot.
* Refactor to use new test syntax (test_harness_run)
* File changes:
  *  deleted:    test_interface.rb
  *  new file:   interfacelib.rb
  *  new file:   test_interface_L2.rb
  *  new file:   test_interface_L3.rb
  *  new file:   test_interface_bdi.rb
  *  modified:   test_interface_capabilities.rb
  *  modified:   test_interface_stp.rb
  *  new file:   test_interface_svi.rb
  *  new file:   test_interface_private_vlan.rb

* renamed test_vlan_mapping.rb to test_interface_vlan_mapping.rb

* Only tested on n7k and n9k so far but there's a lot here and I wanted to get some eyes on the changes

* Platform tweaks for test_interface*

* test_interface: add skip_unless_supported plat checks

* Minor change to bail out of the test immediately if the platform does not apply

* test_interface_private_vlan: fix trunk assoc cleanup

* Found a bug on n9k where 'private-vlan association trunk' does not get cleaned up by 'default interface', which breaks this beaker test

* Created a workaround cleanup method that does 'no switchport'

* Tested on N9k-I3

* test_private_vlan: refactor, remove redundancies

* Refactored to use new test syntax; removed unnecessary/redundant tests and some that didn't test anything
* This test suffers from the same idempotency bug as the interface private-vlan code; it will require the same kind of fix

* Tested on n9k-I3, N7

* Bump version number.

* Add testing for switchport_autostate_exclude

* Remove old and redudant access_vlan tests

* Remove old style beaker tests

* normalize_range_array for puppet

This is the puppet counter-part to NU. The notes below are copied from: cisco/cisco-network-node-utils#400
The main difference between these is a default check in Utils.normalize_range_array and that there's no Utils.dash_range_to_elements since that's not needed in puppet.

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

  * The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* Tested on n9k. Additional testing coming on the other platforms, as well well as demo, Readme, etc.

* bgp_af l2vpn

* Fix demo_bgp

* Fix additional_paths_install

* New beaker style vlan tests

* l2vpn/evpn support

* l2vpn/evpn support

* exclude n3k

* review comments

* Review comments

* cisco_interface: deprecate private_vlan*

* private_vlan refactor

* cisco_interface: private_vlan refactor

* Deprecated the private_vlan properties that were released with 1.3.0 and created new pvlan properties in their place.

* This is the companion to NU PR: cisco/cisco-network-node-utils#406

* Updated Type, Provider, Beaker, Demo, README, and CHANGELOG.

* Currently only tested on N7, N9-i3. Additional testing in prog.

* readme and changelog

* readme and changelog

* Update README.md

* pvlan beaker fixups for 6k

* The 6k cli is strict about requiring vlan associations before allowing interface vlan association; therefore I added the dependencies to the test. I need to rerun the test on all the platforms to see if the platform check needs to be tweaked.

* Only tested on n6 so far

* Minor demo_interface changes

* Added some private-vlan dependency resources

* test_interface_private_vlan: n3k platform fixes

* demo manifest as well

* tested on n3-i4,n9-i2,n5,n9-i3,n7

* test_interface_stp needs vlan cleanup

* tested on n9-i3

* Re-add n8k doc references

* Fix some N8k references

* Add N8k back to support table

* Remove extra property

* Fix spacing in rotate property

* anycast_gateway platform checks

* Restrict the anycast test to n9k only

* Tested on n3,n7,n9-i2,n9-i3

* test_interface_service_vni script fixes

* Some cleanup / setup was insufficient

* :non_default was not getting run

* This is only supported on n7k; tested on n7k.

* test_vrf: f3 dependencies

* N7k needs an f3-only vdc for route_distinguisher

* tested on n7

* test_vrf_af: add f3 dependency for 7k

* tested on n7k

* Update README-agent-install.md

* Update README.md

* test_vlan/test_private_vlan: add f3 deps

* Tested on n7

* test_vxlan_vtep*: add f3 deps

* Tested on n7

* Refactor package provider to use rpm - qip (#328)

* Replace regexp with rpm -qip

* patching demo updates

* Updated fail message

* Update demo_patching.pp

* Add back rpm filename regexp support (#329)

* Add back rpm filename regexp support

* Remove debugs

* Update README.md

* interface svi fix

* Remove explicit anycast config

* anycast-gateway-mac is a required dependency; a recent commit added an explicit call to the test file to set this up; BUT we already had existing code for doing this that was part of interfacelib.rb

* The interfacelib code was returning early because of /unless/if/

* Tested on n9-i4

* test_interface_L2 should reset sys_def_switchport

* This test sets the system default switchport state to true but it should reset it to false when it's finished.

* Tested on n9-i4

* test_vxlan_vtep_vni: suppress_uuc broken

* There was a platform exception that tried to add this property using the new test syntax; however this test file uses an older syntax.

* Added an nv overlay hw support check (my n6k does not support nv overlay)

* Tested on n6

* README-agent-install: doc cleanup (#330)

* README-agent-install: doc cleanup

* This doc has had a lot of misc updates in the past so I tried to streamline the content somewhat and organize the sections into discrete steps.

* A couple of things that need a closer look:
 * The RPM table may need updating to reflect the GS fix coming out any day
 * The auto-install section for cisco_node_utils gem is a little weak. I'm not sure if I referenced the correct pp file and used the right directory target.

* README-agent-install.md: Cleanup node-utils section

* README-agent-install.md: fix broken links

* Review comments addressed

* All addressed except for the GS RPM comment.

* README-agent-install: GS RPM v1.5 tested

* Add markdown syntax flags

* README.md cleanup for 1.3.2 (#335)

* Move Document Workflow Map to Documentation Guide table

* README: Move Limitations into Platform Support

* Add Legend & tables

* README: Update Usage section

* README: Move platform support section after resource ref tables

* README.md: minor text change

* URL change: /develop/master/

* Addressed remaining PR comments

* /develop/master/ URL fixup

* test_vdc: fix for non-F3 testbeds (#336)

* test_vdc: fix for non-F3 testbeds

* Updated this test to work with non-F3 N7k testbeds.
  * Initially set the VDC module-type to default state
  * Then set module-type to F3 and test
  * There's no great way to know which way to leave the module-type when this test completes, so:
    * Reset module-type to default for non-F3 testbeds since leaving it as F3 means the device won't have any usable interfaces
    * Noop for F3 testbeds so that it leaves their F3 still usable

* Tested on n6, n7-non-F3

* beaker tests: add F3 dependencies

* vdc, bridge-domain tests

* tested on n6, n7-non-F3

* Fix vxlan_vtep_vni suppress_uuc prop (#341)

* Readme.md changes for itd_service (#346)

* itd_service pre requisite

* cleanup

* cleanup

* review comment

* review comment

* review comment

* Add n8k reference to CHANGELOG

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* New overlay_global behaviors (#360)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Remove vsh code (#361)

* Fix cisco_aaa* 'TACACS+ group delete denied, group is in use' issue (#362)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Fix cisco_tacacs* 'TACACS+ group delete denied, group is in use' (#363)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Fix netdev tacacs* 'TACACS+ group delete denied, group is in use' (#364)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Add setup/cleanup steps

* Fixed merge issue

* Add noop beaker test

* This is a dummy test for use during CI development

* Move noop.rb to base dir

* Munge events value 'false' to 'size_disable' (#366)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`.

This change munges the manifest value of `false` to `size_disable`.

* Ospf bfd for interfaces (#367)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* bfd added to router ospf vrf

* bfd_per_link added to interface_portchannel

* add bfd and network to int ospf

* add bfd echo to intf

* changelog

* doc

* Remove get_vshell_cmd calls (#368)

* L3 PIM-on-VRF-intf beaker fix (#369)

* ip pim sparse-mode was failing to nvgen during the test
  * Factors: a) the intf is in vrf 'test1'; and, b) 'test1' has not been instantiated yet
  * Normally these forward-references are not a problem but the new DME-based PIM cli is silently rejecting it because the vrf is not instantiated
  * For puppet it's not unreasonable to require a pre-instantiated vrf, and since this change only affects our beaker test I'm just going to update the test. The PIM team did say they would reconsider raising an error for this, or better yet just create the pim cli object regardless of vrf-instantiation state.

* Also fixed a cleanup issue for dot1q sub-ints.

* Tested on N9-I5

* Add Ospf properties for interfaces (#371)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* Fix beaker test bug (#372)

* bug fix for interface_portchannel beaker test (#373)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Removed, no longer needed

* Remove broken snmp_user XR support (#374)

* Add agent_probe to utility.lib (#375)

* `feature vn-segment-vlan-based` is not supported on some n3k's

* Added a simple helper method to test for h/w support; the result is then used by `unsupported_properties` to update the test cases

* Tested on n3k(3048), n7k, n9k

* Add f3 utility for n7 bkr tests (#376)

* Tested on n7k

* Fix half/full in test_duplex (#377)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* This fix is a little trickier than the NU fix because the output from puppet resource is 'raw' whereas the NU output is a pre-processed hash of capabilities; thus we have to be careful not to munge the vsh or puppet resource output.

* Tested on n3048

* Update service provider beaker test to work in guestshell (#378)

* Select service based on OS family

* Update fail_test message

* Add teardowns to beaker (#379)

* f3 handling for test_vrf (#380)

* f3 handling for test_vrf

* N7k setup/cleanup when missing F3 cards

* New `image?` method for checking image version pattern; used as test for unprops

* New `remove_all_vrfs` method that uses `test_get`/`test_set`; this is much faster than removing vrfs one at a time

* Remove :description image check

* Remove redundant cleanup

* f3 setup/teardown for vrf_af

* f3 setup/teardown bridge-domain

* f3 setup/teardown for encap

* bkr setup/teardown cleanups

* f3 setup/teardown for interface_svi

* f3 setup/teardown for service_vni

* f3 setup/teardown test_private_vlan

* f3 setup/teardown for vxlan_vtep*

* f3 setup/teardown for fabricpath_topology

* setup/teardown cleanups for cisco_itd_device_group_node

* beaker fix for resilient and symmetry non support on n3k (#381)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* setup/teardown for bfd_global

* setup/teardown bridge_domain

* setup/teardown acl

* setup/teardown bgp_af

* setup/teardown cisco_pim

* Convert test_fabricpath_global to new syntax

* Setup/teardown test_interface_L3

* setup/teardown test_interface_private_vlan

* Convert test_interface_channel_group to new syntax

* Convert test_interface_portchannel to new syntax

* setup/teardown for test_itd_service

* setup/teardown cisco_ospf_area*

* setup/teardown cisco_interface_ospf

* setup/teardown cisco_ospf_vrf

* Bad cleanup test_itd_service

* Convert test_command_config to new syntax

* better cleanup for bfd

* setup/teardown for test_bgp

* setup/teardown test_bgpaf

* better cleanup for pim

* setup/teardown test_bgpneighbor

* Better remove_all_vlans

* setup/teardown test_bgpneighboraf

* ospf_vrf cleanup should remove feature bfd

* setup/teardown test_stp_global

* setup/teardown test_bgpneighbor*

* better cleanup test_interface_L3

* better cleanup test_interface_ospf

* setup/teardown test_interface_portchannel

* setup/teardown test_interface_stp

* setup/teardown test_interface_bdi

* setup/teardown test_evpn_vni

* Convert test_vpc_domain to new syntax

* setup/teardown test_itd_device_group

* Convert test_overlay_global to new syntax

* Rel140/refactor package tests (#382)

* Refactor beaker package tests

* Remove unused code

* Rubocop fix

* Uncomment filename

* Add ensure_prop_override setting

* Rubocop fix

* Fix test_itd_service

* The cleanup in the dependency manifest was turning off 'feature itd' but that needs to be re-enabled in order to configure the itd device-group dependency

* beaker: Remove raise_skip call from summary checker

* test_interface_ospf dependency fix

* Add :array opt to test_get bkr utility

* Enable yum package testing in guestshell (#384)

* Initial gs package test support

* Minor refactoring

* Add camden i2.1 patch details

* Use specific yum patch for camden fcs

* Separate native and gs test flow

* Remove ensure absent in manifest_props

* Enable additional releases

* I5 patch fix

* Use single workflow for gs and native

* Convert test_snmp_server to new syntax (#385)

* Convert test_snmp_server to new syntax

* packetsize was failing on n7k so I just rewrote the test to use the new format

* tested on n7k,n9k-I5

* Fix pktsize cleanup

* Rename test_package.rb -> test_package_patch.rb

* Converted the old style tests to new syntax. (#386)

Most of these are straightforward changes. The package test is complicated on native since third-party rpms require setting up a yum repo, but I set up the test to do the repo init via puppet so we actually get a bit more coverage this way.

* Tested on N5,N7,N9-I5 using native/GS/OAC

* utilitylib: Restore tests[id][:resource]['ensure']

I pulled this out by mistake with this commit:
  2641c7a#diff-e0883d3270eb11e5d50fcdc5c4f83003L603

* test_interface_ospf: Fix process dependency

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* test_interface_ospf: Fix process dependency (#388)

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* Add log.error to beaker search_pattern

* When test_resource fails it just displays what it's expecting to find but it doesn't show what the current output was (which often helps with troubleshooting). This just includes the output when there's a failure.

* Add titles for bgp vrf beaker tests

* Suppress fib pending fix (#387)

* Generalize the method for checking nexus images

* Fix suppress fib pending for non-I5 images

* Clean up image check and post-merge leftovers

* cisco_interface enhancement (#389)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* Add'l cleanup for test_interface_ospf

* Fix id bug

* Replace skip_nexus_i2_image() with skip_nexus_image() api call (#390)

* Skip dns provider test instead of error

* Remove commented out call to fail api

* Update test_harness_dependencies for test_interface_ospf.rb (#393)

* Fixed rubocop errors

* Remove debug code

* Dhcp Relay Global (#392)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* Remove packet_size prop testing for I2 and I3 images

* cisco_interface beaker test (#394)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* event_history_periodic changes for bgp (#395)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* fix bgp for event_history

* move facter to provider

* beaker for event_history_periodic

* documentation

* review comments

* review comments

* bgp event_history (#400)

* fix bgp event-history

* beaker changes

* doc and manifest

* review comments

* manifest review comment

* Rel141/lacp suspend (#401)

* Fix lacp_suspend_individual property issue in evergreen

* Remove unneeded test_set call in test_interface_portchannel.rb

* Update README.me with lacp_suspend_individual caveat

* Futher clarify caveat for lacp_suspend_individual property

* Futher clarify caveat for lacp_suspend_individual property

* Test non-default value for n3k

* fix vrf beaker (#402)

* Delete old README file.

* Update version and release info in metadata.json

* Update CHANGELOG.md

* Scrub n8k references.

* Scrub N8k References

* Remove redundant section and n3k workaround

* Remove n8k references and add I5 sample patch

* Update cisco_node_utils.rb

* Update CHANGELOG.md
mikewiebe added a commit that referenced this pull request Jan 10, 2017
* Modification of tacacs_server for tacacs_global

* Add README-pre-1.3.0.md

Save this for now since it has 8k/XR info.

* Add 8K to BGP wait_for_process_initialized()

* Add 8K to OSPF wait_for_process_initialized()

* ios xr implementation of snmpserver

snmp_server for IOS_XR, contact and location

* feature vfd

* changelog

* First commit

* remove new files

* first commit

* first commit

* test

* Review comments

* Fix few things

* testing

* fabricpath

* Collapse release_1.3.1 to develop

* more tests

* tested on platforms

* minitest complete

* remove exclude for echo_interface

* bfd_global

* Fix error in init

* review comments

* EXR support for snmp_community

* loopback added to echo intf

* implementing snmp_notification_receiver for XR

* bfd_global: Add remaining properties (#418)

* errors fixed

* interval array change

* missing ipv6 default

* remove name

* add exclude for interval

* Add comments

* Review comment fixes

* Bfd for bgp_neighbor (#419)

* errors fixed

* interval array change

* missing ipv6 default

* remove name

* add exclude for interval

* Add comments

* Review comment fixes

* bfd prop added to bgp_neighbor

* CHANGELOG

* review comment

* rview comments

* Update CHANGELOG.md

* version may be absent on 'snmp-server host' (#420)

* Ospf Area (#422)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* Condense vlan configuration and fix teardown error (#426)

* test_aaa*: shorten class & testcase names

* test_interface*: short class & testcase names

* modify/delete some repetitive tests

* tested on n9-i4

* Add feature ospf enable (#428)

* test_pim_group_list: class/testcase renaming

* Tested on n9-i4

* test_snmpcommunity: short class/testcase names

* snmpuser: dummy_user var does not exist

* YANG JSON support for gRPC client (#425)

* Added support for setting/getting YANG config

* revert

* skip all tests on nexus

* cleanup

* method name change

* fixed rubocop errors

* Changes based on feedback

* removed blank line

* test_snmpuser: shorten testcase names

* test_tacacs_server_host: class/testcase name changes

* minitest: shorten class / testcase names

* Added IOS XR support for snmp_user

* Refactored snmp_user

* Updated test_snmpuser.rb

* Fixed NXOS issue with snmp_user

* Updated test_snmpuser.rb for NXOS

* Update docs for XR + small fix (#431)

* Resurrected XR doc. Fixed constant reference.

* split line that was too long

* removed whitespace

* Fixed 6.0.0 version number.

* changes based on review

* Refactor test_snmpserver (#430)

* Refactor test_snmpcommunity

* Shortened class/testcase names
* Removed redundancy by combining several test sections into a single test
* Added validate_property checks

* Tested on n9-i4

* remove comment line

* implement tacacs_global to match radius_global (#429)

* Add nssa support to ospf_area (#432)

This PR is for router_ospf_area provider which includes nssa properties.
All tests pass on on platforms except on n8k.
On n8k, commands like "area nssa default-information-originate" and "area nssa default-information-originate route-map " are not getting configured properly after we reset nssa and due to this the relevant tests failed. Bug is filed on nxos platform and skipping these tests only on n8k.

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* Added support for retrieving operational data via gRPC/YANG (#433)

* Added show_running_yang utility.  Allow retrieval of operational yang data.

* Added show_running_yang utility.  Allow retrieval of operational yang data.

* Updated changelog.  Fixed comment.

* Fixed rubocop error

* Removed extra space.

* ospf_area: Fix hash in nssa_set (#434)

This PR is for changing the nssa_set method in the ospf_area NU due to the review comments on the puppet side. This simplifies the previous version.

Also changed authentication 'clear_text' to 'cleartext' to keep consistency among all the other providers.
Chris has the context about this PR and so it is better if he reviews this.

* Add feature ospf enable

* review comments

* Add ospf_area_vlink (#436)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* first commit

* test code for vls

* test code for vls

* add more tests

* auth added

* cleartext added

* authentication_key_pw added

* message_digest_key added

* default for key_id

* comments add

* CHANGELOG fixed

* comment added

* review coments

* fixes to tacacs_global (#437)

* Rubocop fixes for PR 435 (#438)

* Fixed various XR minitest errors/failures.

* Rubocop fix for PR435

* pvlan_mapping fix for n8k (#439)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* first commit

* test code for vls

* test code for vls

* add more tests

* auth added

* cleartext added

* authentication_key_pw added

* message_digest_key added

* default for key_id

* comments add

* CHANGELOG fixed

* comment added

* review coments

* fix for pvlan_mapping for n8k

* interface_ospf NU fixes (#440)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Merge release_1.3.1 --> develop (#454)

* Add 8K to BGP wait_for_process_initialized()

* Add 8K to OSPF wait_for_process_initialized()

* Fix for n8k vrf context

* fix comment

* Remove skip for CSCuz44696

* fix vni for all supported platforms

* Fix minitest for aaa feature

* yaml fix

* Update version.rb

* Utils.normalize_range_array

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

* The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* There's also a method that breaks the ranges down into individual elements so that delta_add_remove can add or remove specific elements on the switch.

* I have a related commit for Puppet on the way.

* Tested on n9k

* Property mapped_vni fix for n5|6k

* private_vlan_association minitest fix

* Updated result values to reflect that API now uses Utils.normalize_range_array, which summarizes the ranges.

* The rest is just cleanup, ie removed the else clause since the if block does a return.

* Tested on n3,n5,n6,n7,n8,n9-I3

* comment updates only

* Refactor yaml to use default_only

* Error condition for l2vpn added

* Minor test code cleanups

* Add basic filter to Interface.filter

* Get rid of interfaces_id method

* shorten test method names in test_interface_private_vlan

* tested on n9

* Simplified yaml entry

* process_initialized is included for n8k

* Fix negotiate auto invalid skips (#404)

* Condense negoitate test code and fix invalid skips

* Remove debug code

* Update aaa_authentication_login_service.rb

* interface: private_vlan refactor

* There were a few errors with the original implementation. As I worked through this I found that it made sense to rewrite many of the methods to use the new range conversion utilities, and with so many functional changes we decided to take the opportunity to shorten the property names. Since the original code was already released with 1.3.0 we decided to just deprecate them.

* Created `DEPRECATED.yaml` and `interface_DEPRECATED.rb` for the original code. The setters will raise a warning if used, which includes the name of the new property to use. I ran the original test_interface_private_vlan tests against the deprecated code and they still pass, but then updated the test file to use the new methods. This means that going forward the deprecated methods will not have any tests run, and any issues found will not be fixed.

* Related puppet fixes are in the works.

* Tested on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* switchport_pvlan_mapping_trunk needs to be a multiple

* My first pass at this code missed that this property supported multiple occurrences
  * Added a delta_hash method for trunk
  * Changed `pvlan_range_delta` to a single-caller method for `switchport_pvlan_mapping` since it's no longer shared with the trunk method
  * Fixed the minitest

* Passes on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* Move svi pvlan test into test_interface_svi.rb

* Tests pass on all NX platforms

* Move deprecated keys into own hash

* This is just a minor cleanup to make this simpler to remove later on

* Update comments in DEPRECATED.yaml

* change private_vlan to pvlan

* changelog

* fix for context

* Change deprecation warning msg

* Change deprecation warning msg

* pvlan_mapping should always return array

* This property allows input as string or array. The getter was returning default as [] and non-default as String - which forces special handling in puppet's insync? method - so I changed it to always return an array. This way we don't need to override insync? at all.

* Also moved the pvlan_mapping test out of the svi file. While it does only apply to svi interfaces it seems to fit better with the other interface-related private-vlan tests.

* Tested on n5,n7,n9-I3

* Add requires for DEPRECATED providers

* Symptom: Noticed a corner case where changing a deprecated file on the device but not changing the inheriting file (I updated interface_DEPRECATED.rb but not interface.rb) caused the following error:

```
Linux# puppet agent -t
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Facter: error while resolving custom fact "cisco_node_utils": uninitialized constant Cisco::NodeUtil
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: already initialized constant Cisco::PVLAN_PROPERTY
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: previous definition of PVLAN_PROPERTY was here
```

* Analysis: Looks like facter caches the provider files. I found that making a whitespace change in interface.rb was enough to trigger the cache clear for that file and it avoided the error. But the real problem is that the deprecated providers do not have a require for 'node_utils', so just needed to add those to avoid this problem.

* Also moved PVLAN_PROPERTY hash within the class to avoid the re-definition warning. This is probably not necessary but it's cleaner.

* Also found that `set_value` didn't get included for `switchport_mode_private_vlan_trunk_promiscuous` when I copied the file contents over to DEPRECATED.yaml, so it's there now.

* Tested on n9k-i3

* Update interface_DEPRECATED.rb

* Update vlan_DEPRECATED.rb

* virtual_service and system_image yaml fix

* Fix yaml validation error

* Addressed PR comments

* Remove hardcoded tacacs server reference

* Interface shutdown property fix

* Update test_interface.rb

* switchport disable is broken

* Broken by #406

* Tested on n9-i3

* test_interface_private_vlan.rb: /private_vlan/pvlan/

* The vlan object still referenced the old names

* Tested on n9-I3

* test_interface* minor cleanups

* method name changes only for the most part

* tested on n3-I4

* yum package manager fixes

* Removed debug

* Remove trailing whitespace

* Do not track tacacs server info

* Add full relative path to tacacs server info

* Test if tacacs server is valid

* Add relative path of yaml file

* Refined the error message for invalid server

* Pim.pims fix for feature disabled

* The global nature of the pim resource means that an object will be created for each vrf regardless of state; however, this meant that objects were getting created even when feature pim was disabled, causing puppet agent/resource to to raise an error whenever the getter was called.

* Tested on n7

* Add N8k references

* Handle no virtual-services installed case

* vxlan and pvlan fix

* Remove delta check for cpu utilization (#421)

* Add 8k support to CHANGELOG

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423) (#441)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* Fix error due to time zone difference (#443)

* Fix suppress-fib-pending lib and test code (#445)

* Remove testing of vrf context and fix default test

* Fix broken yaml

* Merge default test code into main testcase

* Snmp packet_size fixes (#446)

* Snmp packet_size fixes

* Add n8k

* Fix last_reset check for platform (#444)

* Fix cannot disable local issue (#447)

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Fix auth method local cleanup (#449)

* Refactor aaa local auth removal (#450)

* Refactor aaa local auth removal

* Remove whitespace

* Remove unneeded test steps (#452)

* New overlay_global behaviors (#451)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Prevent removal of method local on unsupported platforms (#453)

* Missed merge conflict

* Add noop test for CI dev use

* Munge 'no event-history events' to size_disable (#456)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`

This change munges the `no event-history events` to `size_disable`
in order to handle behavior changes between different nxos releases.
This code change should be backwards compatible.

* Remove broken xr snmpuser support (#459)

* Remove broken xr snmpuser support

* test_snmpuser: shorten testcase names

* Ospf bfd for interfaces (#457)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* add bfd to router ospf

* add p2p type to int ospf

* ad bfd to interface_ospf

* test file fix

* test file fix

* clean code

* bfd per_link added to int po

* bfd echo added to interface

* bfd echo added to interface

*  fix p2p

* test code enhanced

* changelog

* review comments

* Update CHANGELOG.md

* convert symbol to string

* bfd_echo similar to vtp

* review comment

* review comment

* Scrub XR references from doc. (#458)

* Scrub XR references from doc.

* Scrub XR references from doc.

* Ospf parameters for interfaces (#460)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* added pri, tx delay, shut and mtu to int ospf

* changelog

* test_vpc needs rescue for incompat intf

* test_vpc needs rescue for incompat intf (#461)

* Minitest bug fixes (#462)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* added pri, tx delay, shut and mtu to int ospf

* changelog

* bug fixes

* remove test_last_reset

* Fix remove aaa local on n3k (#464)

*  Minitest: Handle N7k F3-features w/o compat LCs (#463)

* test_vpc needs rescue for incompat intf

* Handle N7k F3-features w/o compat LCs

* The vrf_af route_target tests were failing because feature nv overlay failed - because our n7k does not have an F3 linecard:

```
 1) There are some features that refuse to load unless the VDC is
    limited to F3 only, but they will actually load if the config is
    present, despite the fact that there are no physical F3s.
 2) We have some tests that need these features but don't need interfaces.
```

* Solution: Enable the vdc config for F3 but don't fail if the physical LC is not present
  * Prior to this solution I had created a couple of methods to find an appropriate interface based on the feature-to-LC requirements. This works but is only useful for features that also require an interface (unlike the vrf_af test). Eventually I would like to remove the other one-off methods (e.g. `fabricpath_testenv_setup`, `vxlan_linecard?`, etc) that do similar functions and convert the callers to use this common one instead. Since there are no current callers for it I just commented it out.

* Tested on n7k (no F3 card) and N9K.

* /if-else/case/

* MT: Fix snmpuser teardown loop (#465)

* test_vpc needs rescue for incompat intf

* MT: Fix snmpuser teardown loop

* MT: portchannel: n3k_in_n3k bad pattern

* Fix half/full in test_duplex

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* Tested on n3048

* Fix half/full in test_duplex (#466)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* Tested on n3048

* minitest fixes for vtp and resilient mode (#467)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* fix for symmetry not supported on n3k (#468)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* test_interface_sw: check for fex compatibility (#469)

* f3 fix for test_feature

* Refactor yum patch test (#470)

* Refactor yum patch test

* Update failure message

* Update failure message

* Addressed review comment

* Rubocop fixes

* f3 after_tests for test_overlay_global

* Revert "f3 after_tests for test_overlay_global"

This reverts commit 612514e.

Bad codefix

* ciscotest: first_or_last_teardown (#471)

* f3 setup/teardown on N7k's can be very time consuming (60+ seconds) so it's expensive to do this for every testcase

* This hack limits the vdc teardowns to the first and last testcase (f3 setup is ignored if it's already set to f3)
  * We have to check for first because a test may use -n to limit the run to a single test

* Minitest.after_run is not really an option for this: it's designed to run at the end of an entire test suite and actually runs at_exit, at which point we no longer have access to our ciscotest methods.

* better teardown for test_feature

* f3 setup/teardown for test_vxlan_vtep_vni

* f3 setup/teardown test_bridge_domain_vni

* f3 setup/teardown for test_vxlan_vtep (#472)

* Also added a rescue/retry for vdc limit-resource

* setup/teardown cleanups for test_vlan

* narrowed the interfaces method in ciscotest to exclude dot1q sub-ints

* moved the mt-full test from test_vlan_mt_full.rb into vlan.rb and removed entire test file

* Tested on n5, n7, n9

* f3 setup/teardown test_encapsulation

* n7k f3 fix for test_router_bgp/route_distinguisher

* setup/teardown fix test_vlan_private

* test_yum: skip for no pkginfo filename

* assert for test_yang

* noop.rb: change skip to assert

* Rel140/refactor yum (#473)

* Refactor yum to cleanup patches properly

* Enable additional releases

* Add retry loop for Yum.remove

* Modify regexp

* Reduce tries from 50 to 20

* Refactor retry loop

* Unpdate n9k to allow local auth removal

* snmpuser minitest fix (#475)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* changelog

* revert Changelog

* fix for snmpuser 8 char limit

* test_fabricpath_global cleanup fixes

* Tested on n5,n7,n9-i2,n9-i5,n3

* test_vxlan* cleanup fixes

* tested on n3,n5,n7,n9-I2,n9-I5

* test_interface_switchport test cleanup

* test_interface_switchport test cleanups

* test_aaa_authentication_login cleanups

* Failing when stale configs present on testbed; this change should remove any leftovers

* Tested on n3-I2,n5,n7,n9-I5

* Add storm_control and dhcp relay props for interface (#474)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* storm-control and dhcp relay for intf

* exclude 2 storm control props on n7k due to hw limitation

* comments added

* changelog

* typo correct

* cleanup unsupported tests

* review comments

* remove features added during the minitest

* Add tacacs-server key cleanup

* removing vlan name negative tests and fix dhcp relay munge (#476)

* removing vlan name negative tests

* munging issue fixed

* Add defect/image check to minitest (#477)

* Add defect/image check to minitest

* Bails out of testcase if image matches pattern; no skip, no assert
* Prints 'NOOP' message and any add'l helpful text, e.g.:

```
Node under test:
  - name  - n5k-136
  - type  - N5K-C56128P
  - image - bootflash:///n6000-uk9.7.3.0.N1.1.bin

TestVrf#test_name_zero_length = 4.88 s = .
TestVrf#test_route_distinguisher = 11.79 s = .
TestVrf#test_remote_route_filtering = 2.01 s = .
TestVrf#test_name_too_long = 1.93 s = .
TestVrf#test_vpn_id = 2.07 s = .
TestVrf#test_vni = 2.85 s = S
TestVrf#test_mhost = 1.96 s = .

TestVrf#test_description -> NOOP <- [CSCuy36637: Cannot remove description]
TestVrf#test_description = 2.91 s = .
TestVrf#test_collection_default = 1.01 s = .
TestVrf#test_create_and_destroy = 2.89 s = .
TestVrf#test_name_type_invalid = 1.05 s = .
TestVrf#test_shutdown = 26.73 s = .

Finished in 62.072465s, 0.1933 runs/s, 0.4189 assertions/s.
12 runs, 26 assertions, 0 failures, 0 errors, 1 skips
```

* /puts/Cisco::Logger/

* Remove timestamp noise from logger

* Enable nv_overlay_evpn fix (#478)

* skip_legacy_defect method

* Rework previous `defect?` method to do skip instead of return

* Tested on n3-I2, n5

* skip_legacy_defect for vtp

* Dhcp Relay Global (#481)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* skip_legacy_defect for snmpserver

* Dhcp Relay Global (#482)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Refactor test_snmpuser teardown

* portchannel_global n3k minitest fix (#483)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Fix minitest error

* Use valid type6 tacacs password

* Add skip_legacy_defect? for aaa, snmp and vlxan

* bgp event_history (#484)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Fix minitest error

* bgp event-history fixes

* review comments

* more review comments

* Remove require pry in test_snmpuser.rb

* Separate ace ipv4 and ipv6 ttl tests

* Update sample patch names for I5 images.

* bgp event_history (#486)

* bgp event-history

* fix event-history props

* doc

* Update expected error class in yum test

* bgp send-community fix (#487)

* fix for send_community

* fix bfd echo intermittent failure

* review comments

* review comment

* fail api raises RuntimeError, update test

* fix for send-community (#488)

* Fix test_lacp_suspend_individual to address behavior change (#489)

* Fix test_lacp_suspend_individual to address behavior change

* Remove pry debug

* Rel141/lacp suspend (#490)

* Fix test_lacp_suspend_individual to address behavior change

* Remove pry debug

* Refactor lacp_suspend_individual setter

* Addressed PR comments

* Update comment to be more accurate

* Update version from 1.4.0 to 1.4.1

* Fix/command config issue (#491)

* Fix 'no' commands won't apply if defaults don't nvgen

* Add 'nvgen' key to scale test hash

* Add ability to define setup config in test yaml file

* Add setup yaml test key support

* Update all tests to use scalar designation

* Initial refactor N8k --> N9k-F (#493)

* (POC) product_id qualifier for 8k rebrand

* This is just a POC diff for adding add'l checks to determine the product_id. Do not merge this code.

* The requirement here is to create a unique product_id for switches that share the same product_id but have a fundamental difference; e.g.
  * 8k may only be differentiated by the presense of 8k fabric modules
  * n3k-in-n9k-mode will have the same product_id as a "regular" n3k

* N9K-F enablement

* hsrp_global and interface_hsrp providers (#492)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* fix for event history on n9k-f (#495)

* Remove unsupported n9k-f feature

* Fix node test for fretta

* Fix test_platform regex

* Fix n9k fretta regexp

* Enable yum patching for fretta_camden

* Enable I6 release patching

* interface hsrp group (#496)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* hsrp group ip

* fix hsrp ip

* fix hsrp_groups

* fix name

* fix ipv4_enable

* fix priority

* fix auth

* fix ipv6 autoconfig

* documentation

* fix auth

* fix auth password

* review comments

* fix timers with regex

* Update platform_to_filter api for n9k (#497)

Update to correctly match fretta or non-fretta based n9k platforms but not both.

* Add short tag test api (#499)

* Update CHANGELOG.md

* fretta changes for event history bgp (#498)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* hsrp group ip

* fix hsrp ip

* fix hsrp_groups

* fix name

* fix ipv4_enable

* fix priority

* fix auth

* fix ipv6 autoconfig

* documentation

* fix auth

* fix auth password

* review comments

* fix timers with regex

* fix version check for fretta

* Fix fretta for event history using product_id

* Rel150/atherton fretta fixes (#500)

* Fix vrf delete in progress issue for domain_name

* Fix fabricpath loadbalance yaml entries

* Disable switchport on portchannel test for bfd echo

* Add missing n9k fretta exclude

* Raise deterministic error for yum install failures

* Update error class test

* pim bfd (#501)

* pim bfd

* fix pim ssm range tests

* review comment

* Rel150/atherton fretta fixes (#502)

* Fix vrf delete in progress issue for domain_name

* Fix fabricpath loadbalance yaml entries

* Disable switchport on portchannel test for bfd echo

* Add missing n9k fretta exclude

* Raise deterministic error for yum install failures

* Update error class test

* Fixes for atherton nxapi double quote behavior

* Enable bgp af properties for atherton

* atherton event-history skips (#503)

* pim bfd

* fix pim ssm range tests

* review comment

* n7k atherton event-history

* Update CHANGELOG.md

* n7k atherton hsrp (#504)

* pim bfd

* fix pim ssm range tests

* review comment

* n7k atherton event-history

* fix hsrp for n7k atherton

* New nxapi_structured infra features (#505)

* Initial vlan long name POC

* Update find logic

* Add nxapi structured yaml feature support

* Change get_value schema from string to any

* Update inventory.yaml entries to use new nxapi_structured infra

* Update README_YAML.md

Add new nxapi_structured features.

* Simplify inventory.yaml file

* Bug fix

* Fix rubocop failure

* Bug fix in drill_down_structured method

* Update test to check for Cisco::CliError

* Move validate_installed method inside begin_rescue block

* Remove debug code and cache_flush

* Add vrf vni support for fretta

* Flush cache for nxapi_structured get_config calls

* Delete README-pre-1.3.0.md

* Remove patch label that is no longer needed.

* Update CHANGELOG.md

* Update version to 1.5.0

* Fix doc typo.
mikewiebe added a commit to cisco/cisco-network-puppet-module that referenced this pull request Jan 10, 2017
* Added IOS XR support for tacacs_server

* Updated CHANGELOG

* Update CHANGELOG.md

* Added support on IOS XR for tacacs_server_group

* remove sync damage from demo_bridge

* Refactored network_interface provider. Updated tests and code to
support IOS XR.

* Matrix updates for overlay_global & network_trunk

* domain and search options are mutually exclusive

http://man7.org/linux/man-pages/man5/resolv.conf.5.html

* Remove source_interface_hold_down_time for 8k

* Collapse release_1.3.2 to develop

* cisco_bfd_global: new properties (#334)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* network_snmp ios_xr does not support global enable

* bgp_neighbor: add bfd (#340)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* add bfd to bgp_neighbor

* bfd prop

* documentation

* Fix BFD caveat

* Update CHANGELOG.md

* search_domain, tests platform agnostic (#343)

* modificatins for snmp_notification on IOS_XR

* test fixes for ios_xr snmp_notification_receiver (#338)

* Add test_get / test_set to command_config (#348)

* Add test_get / test_set to command_config

* Needed a way for beaker to query / set config that didn't have explicit resource support (e.g. disabling a feature)

* test_get is a simple get-only property that does a show running; callers set a filter to parse what they need:
    `puppet resource cisco_command_config 'cc' test_get='incl feature'`

* test_set is a simple set-only property:
    `puppet resource cisco_command_config 'cc' test_set='no feature foo'`

* Tested on n3,n5,n7,n9

* Bad regex in bkr test service_provider_nondefaults.rb

* Add beaker test_get / test_set

* config_find_remove() uses test_get to search for existing configs, then test_set to remove it.

* Fix the fabricpath tests which ran into an issue on n5k when cleaning up 'feature nv overlay' with command_config: Puppet resource removes the config but then immediately does a 'show runn' which gets a SAP timeout on the device itself and the test errors. Using the test_set setter instead of regular command_config gets around this problem because it's a "set-only" with a dummy test_set getter.

* Tested on n5,n7,n9

* test_get: add debugs, comments

* tested on n5

* Skipped tacacs provider test on IOS XR (#350)

* Refactor tests: aaa_group_tacacs (#351)

* Converted to new test syntax

* Tested on n9-i4

* Add cisco_ospf_area provider (#352)

This PR is for cisco_ospf_area provider. The properties do not include nssa and its associated properties. They will be added as part of another user story.

Since this provider becomes absent when all properties are set to default, cisco_pim model is followed for beaker tests.

All demo_manifests and beaker tests passed on all platforms.

Squashed commits:

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* Added IOS XR support for snmp_user (#353)

* Add nssa properties to ospf_area provider (#354)

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* nssa

* small correction

* name changes

* fix manifest

* fix nssa_set

* include cmnutils

* beaker test added for nssa

* typo fix

* documentation

* fix docmentation

* fix README

* Fix review comments

* tacacs_global changes for ios_xr (#342)

* router_ospf_area_vlink: new provider (#355)

Adds virtual-link support

* Fixes for cisco_interface_ospf provider (#357)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* minor vrf name change

* to avoid annoying conflict with 'management'

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* Merge release_1.3.2 --> develop (#365)

* Add note on existing_str

* Refactor test_interface.rb into multiple files

* This test was trying to do too much; it became too large and unwieldy to use and troubleshoot.
* Refactor to use new test syntax (test_harness_run)
* File changes:
  *  deleted:    test_interface.rb
  *  new file:   interfacelib.rb
  *  new file:   test_interface_L2.rb
  *  new file:   test_interface_L3.rb
  *  new file:   test_interface_bdi.rb
  *  modified:   test_interface_capabilities.rb
  *  modified:   test_interface_stp.rb
  *  new file:   test_interface_svi.rb
  *  new file:   test_interface_private_vlan.rb

* renamed test_vlan_mapping.rb to test_interface_vlan_mapping.rb

* Only tested on n7k and n9k so far but there's a lot here and I wanted to get some eyes on the changes

* Platform tweaks for test_interface*

* test_interface: add skip_unless_supported plat checks

* Minor change to bail out of the test immediately if the platform does not apply

* test_interface_private_vlan: fix trunk assoc cleanup

* Found a bug on n9k where 'private-vlan association trunk' does not get cleaned up by 'default interface', which breaks this beaker test

* Created a workaround cleanup method that does 'no switchport'

* Tested on N9k-I3

* test_private_vlan: refactor, remove redundancies

* Refactored to use new test syntax; removed unnecessary/redundant tests and some that didn't test anything
* This test suffers from the same idempotency bug as the interface private-vlan code; it will require the same kind of fix

* Tested on n9k-I3, N7

* Bump version number.

* Add testing for switchport_autostate_exclude

* Remove old and redudant access_vlan tests

* Remove old style beaker tests

* normalize_range_array for puppet

This is the puppet counter-part to NU. The notes below are copied from: cisco/cisco-network-node-utils#400
The main difference between these is a default check in Utils.normalize_range_array and that there's no Utils.dash_range_to_elements since that's not needed in puppet.

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

  * The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* Tested on n9k. Additional testing coming on the other platforms, as well well as demo, Readme, etc.

* bgp_af l2vpn

* Fix demo_bgp

* Fix additional_paths_install

* New beaker style vlan tests

* l2vpn/evpn support

* l2vpn/evpn support

* exclude n3k

* review comments

* Review comments

* cisco_interface: deprecate private_vlan*

* private_vlan refactor

* cisco_interface: private_vlan refactor

* Deprecated the private_vlan properties that were released with 1.3.0 and created new pvlan properties in their place.

* This is the companion to NU PR: cisco/cisco-network-node-utils#406

* Updated Type, Provider, Beaker, Demo, README, and CHANGELOG.

* Currently only tested on N7, N9-i3. Additional testing in prog.

* readme and changelog

* readme and changelog

* Update README.md

* pvlan beaker fixups for 6k

* The 6k cli is strict about requiring vlan associations before allowing interface vlan association; therefore I added the dependencies to the test. I need to rerun the test on all the platforms to see if the platform check needs to be tweaked.

* Only tested on n6 so far

* Minor demo_interface changes

* Added some private-vlan dependency resources

* test_interface_private_vlan: n3k platform fixes

* demo manifest as well

* tested on n3-i4,n9-i2,n5,n9-i3,n7

* test_interface_stp needs vlan cleanup

* tested on n9-i3

* Re-add n8k doc references

* Fix some N8k references

* Add N8k back to support table

* Remove extra property

* Fix spacing in rotate property

* anycast_gateway platform checks

* Restrict the anycast test to n9k only

* Tested on n3,n7,n9-i2,n9-i3

* test_interface_service_vni script fixes

* Some cleanup / setup was insufficient

* :non_default was not getting run

* This is only supported on n7k; tested on n7k.

* test_vrf: f3 dependencies

* N7k needs an f3-only vdc for route_distinguisher

* tested on n7

* test_vrf_af: add f3 dependency for 7k

* tested on n7k

* Update README-agent-install.md

* Update README.md

* test_vlan/test_private_vlan: add f3 deps

* Tested on n7

* test_vxlan_vtep*: add f3 deps

* Tested on n7

* Refactor package provider to use rpm - qip (#328)

* Replace regexp with rpm -qip

* patching demo updates

* Updated fail message

* Update demo_patching.pp

* Add back rpm filename regexp support (#329)

* Add back rpm filename regexp support

* Remove debugs

* Update README.md

* interface svi fix

* Remove explicit anycast config

* anycast-gateway-mac is a required dependency; a recent commit added an explicit call to the test file to set this up; BUT we already had existing code for doing this that was part of interfacelib.rb

* The interfacelib code was returning early because of /unless/if/

* Tested on n9-i4

* test_interface_L2 should reset sys_def_switchport

* This test sets the system default switchport state to true but it should reset it to false when it's finished.

* Tested on n9-i4

* test_vxlan_vtep_vni: suppress_uuc broken

* There was a platform exception that tried to add this property using the new test syntax; however this test file uses an older syntax.

* Added an nv overlay hw support check (my n6k does not support nv overlay)

* Tested on n6

* README-agent-install: doc cleanup (#330)

* README-agent-install: doc cleanup

* This doc has had a lot of misc updates in the past so I tried to streamline the content somewhat and organize the sections into discrete steps.

* A couple of things that need a closer look:
 * The RPM table may need updating to reflect the GS fix coming out any day
 * The auto-install section for cisco_node_utils gem is a little weak. I'm not sure if I referenced the correct pp file and used the right directory target.

* README-agent-install.md: Cleanup node-utils section

* README-agent-install.md: fix broken links

* Review comments addressed

* All addressed except for the GS RPM comment.

* README-agent-install: GS RPM v1.5 tested

* Add markdown syntax flags

* README.md cleanup for 1.3.2 (#335)

* Move Document Workflow Map to Documentation Guide table

* README: Move Limitations into Platform Support

* Add Legend & tables

* README: Update Usage section

* README: Move platform support section after resource ref tables

* README.md: minor text change

* URL change: /develop/master/

* Addressed remaining PR comments

* /develop/master/ URL fixup

* test_vdc: fix for non-F3 testbeds (#336)

* test_vdc: fix for non-F3 testbeds

* Updated this test to work with non-F3 N7k testbeds.
  * Initially set the VDC module-type to default state
  * Then set module-type to F3 and test
  * There's no great way to know which way to leave the module-type when this test completes, so:
    * Reset module-type to default for non-F3 testbeds since leaving it as F3 means the device won't have any usable interfaces
    * Noop for F3 testbeds so that it leaves their F3 still usable

* Tested on n6, n7-non-F3

* beaker tests: add F3 dependencies

* vdc, bridge-domain tests

* tested on n6, n7-non-F3

* Fix vxlan_vtep_vni suppress_uuc prop (#341)

* Readme.md changes for itd_service (#346)

* itd_service pre requisite

* cleanup

* cleanup

* review comment

* review comment

* review comment

* Add n8k reference to CHANGELOG

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* New overlay_global behaviors (#360)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Remove vsh code (#361)

* Fix cisco_aaa* 'TACACS+ group delete denied, group is in use' issue (#362)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Fix cisco_tacacs* 'TACACS+ group delete denied, group is in use' (#363)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Fix netdev tacacs* 'TACACS+ group delete denied, group is in use' (#364)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Add setup/cleanup steps

* Fixed merge issue

* Add noop beaker test

* This is a dummy test for use during CI development

* Move noop.rb to base dir

* Munge events value 'false' to 'size_disable' (#366)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`.

This change munges the manifest value of `false` to `size_disable`.

* Ospf bfd for interfaces (#367)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* bfd added to router ospf vrf

* bfd_per_link added to interface_portchannel

* add bfd and network to int ospf

* add bfd echo to intf

* changelog

* doc

* Remove get_vshell_cmd calls (#368)

* L3 PIM-on-VRF-intf beaker fix (#369)

* ip pim sparse-mode was failing to nvgen during the test
  * Factors: a) the intf is in vrf 'test1'; and, b) 'test1' has not been instantiated yet
  * Normally these forward-references are not a problem but the new DME-based PIM cli is silently rejecting it because the vrf is not instantiated
  * For puppet it's not unreasonable to require a pre-instantiated vrf, and since this change only affects our beaker test I'm just going to update the test. The PIM team did say they would reconsider raising an error for this, or better yet just create the pim cli object regardless of vrf-instantiation state.

* Also fixed a cleanup issue for dot1q sub-ints.

* Tested on N9-I5

* Add Ospf properties for interfaces (#371)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* Fix beaker test bug (#372)

* bug fix for interface_portchannel beaker test (#373)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Removed, no longer needed

* Remove broken snmp_user XR support (#374)

* Add agent_probe to utility.lib (#375)

* `feature vn-segment-vlan-based` is not supported on some n3k's

* Added a simple helper method to test for h/w support; the result is then used by `unsupported_properties` to update the test cases

* Tested on n3k(3048), n7k, n9k

* Add f3 utility for n7 bkr tests (#376)

* Tested on n7k

* Fix half/full in test_duplex (#377)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* This fix is a little trickier than the NU fix because the output from puppet resource is 'raw' whereas the NU output is a pre-processed hash of capabilities; thus we have to be careful not to munge the vsh or puppet resource output.

* Tested on n3048

* Update service provider beaker test to work in guestshell (#378)

* Select service based on OS family

* Update fail_test message

* Add teardowns to beaker (#379)

* f3 handling for test_vrf (#380)

* f3 handling for test_vrf

* N7k setup/cleanup when missing F3 cards

* New `image?` method for checking image version pattern; used as test for unprops

* New `remove_all_vrfs` method that uses `test_get`/`test_set`; this is much faster than removing vrfs one at a time

* Remove :description image check

* Remove redundant cleanup

* f3 setup/teardown for vrf_af

* f3 setup/teardown bridge-domain

* f3 setup/teardown for encap

* bkr setup/teardown cleanups

* f3 setup/teardown for interface_svi

* f3 setup/teardown for service_vni

* f3 setup/teardown test_private_vlan

* f3 setup/teardown for vxlan_vtep*

* f3 setup/teardown for fabricpath_topology

* setup/teardown cleanups for cisco_itd_device_group_node

* beaker fix for resilient and symmetry non support on n3k (#381)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* setup/teardown for bfd_global

* setup/teardown bridge_domain

* setup/teardown acl

* setup/teardown bgp_af

* setup/teardown cisco_pim

* Convert test_fabricpath_global to new syntax

* Setup/teardown test_interface_L3

* setup/teardown test_interface_private_vlan

* Convert test_interface_channel_group to new syntax

* Convert test_interface_portchannel to new syntax

* setup/teardown for test_itd_service

* setup/teardown cisco_ospf_area*

* setup/teardown cisco_interface_ospf

* setup/teardown cisco_ospf_vrf

* Bad cleanup test_itd_service

* Convert test_command_config to new syntax

* better cleanup for bfd

* setup/teardown for test_bgp

* setup/teardown test_bgpaf

* better cleanup for pim

* setup/teardown test_bgpneighbor

* Better remove_all_vlans

* setup/teardown test_bgpneighboraf

* ospf_vrf cleanup should remove feature bfd

* setup/teardown test_stp_global

* setup/teardown test_bgpneighbor*

* better cleanup test_interface_L3

* better cleanup test_interface_ospf

* setup/teardown test_interface_portchannel

* setup/teardown test_interface_stp

* setup/teardown test_interface_bdi

* setup/teardown test_evpn_vni

* Convert test_vpc_domain to new syntax

* setup/teardown test_itd_device_group

* Convert test_overlay_global to new syntax

* Rel140/refactor package tests (#382)

* Refactor beaker package tests

* Remove unused code

* Rubocop fix

* Uncomment filename

* Add ensure_prop_override setting

* Rubocop fix

* Fix test_itd_service

* The cleanup in the dependency manifest was turning off 'feature itd' but that needs to be re-enabled in order to configure the itd device-group dependency

* beaker: Remove raise_skip call from summary checker

* test_interface_ospf dependency fix

* Add :array opt to test_get bkr utility

* Enable yum package testing in guestshell (#384)

* Initial gs package test support

* Minor refactoring

* Add camden i2.1 patch details

* Use specific yum patch for camden fcs

* Separate native and gs test flow

* Remove ensure absent in manifest_props

* Enable additional releases

* I5 patch fix

* Use single workflow for gs and native

* Convert test_snmp_server to new syntax (#385)

* Convert test_snmp_server to new syntax

* packetsize was failing on n7k so I just rewrote the test to use the new format

* tested on n7k,n9k-I5

* Fix pktsize cleanup

* Rename test_package.rb -> test_package_patch.rb

* Converted the old style tests to new syntax. (#386)

Most of these are straightforward changes. The package test is complicated on native since third-party rpms require setting up a yum repo, but I set up the test to do the repo init via puppet so we actually get a bit more coverage this way.

* Tested on N5,N7,N9-I5 using native/GS/OAC

* utilitylib: Restore tests[id][:resource]['ensure']

I pulled this out by mistake with this commit:
  2641c7a#diff-e0883d3270eb11e5d50fcdc5c4f83003L603

* test_interface_ospf: Fix process dependency

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* test_interface_ospf: Fix process dependency (#388)

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* Add log.error to beaker search_pattern

* When test_resource fails it just displays what it's expecting to find but it doesn't show what the current output was (which often helps with troubleshooting). This just includes the output when there's a failure.

* Add titles for bgp vrf beaker tests

* Suppress fib pending fix (#387)

* Generalize the method for checking nexus images

* Fix suppress fib pending for non-I5 images

* Clean up image check and post-merge leftovers

* cisco_interface enhancement (#389)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* Add'l cleanup for test_interface_ospf

* Fix id bug

* Replace skip_nexus_i2_image() with skip_nexus_image() api call (#390)

* Skip dns provider test instead of error

* Remove commented out call to fail api

* Update test_harness_dependencies for test_interface_ospf.rb (#393)

* Fixed rubocop errors

* Remove debug code

* Dhcp Relay Global (#392)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* Remove packet_size prop testing for I2 and I3 images

* cisco_interface beaker test (#394)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* event_history_periodic changes for bgp (#395)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* fix bgp for event_history

* move facter to provider

* beaker for event_history_periodic

* documentation

* review comments

* review comments

* bgp event_history (#400)

* fix bgp event-history

* beaker changes

* doc and manifest

* review comments

* manifest review comment

* Rel141/lacp suspend (#401)

* Fix lacp_suspend_individual property issue in evergreen

* Remove unneeded test_set call in test_interface_portchannel.rb

* Update README.me with lacp_suspend_individual caveat

* Futher clarify caveat for lacp_suspend_individual property

* Futher clarify caveat for lacp_suspend_individual property

* Test non-default value for n3k

* fix vrf beaker (#402)

* Remove comment that no longer applied with the latest node utils gem

* Scrub N8k References

* hsrp_global and interface hsrp (#404)

* hsrp global new provider

* hsrp interface

* beaker of intf_hsrp

* move int_hsrp to int

* documentation

* Rel150/n8k n9kf rebranding (#406)

* N8k -> N9K-F changes

* Fix puppet module function name

* Remove old README doc

* Update N9k-F Module Version

* Additional N8k -> N9K-F updates

* Refactor platform_fretta function to use os_release fact

* Update platform_fretta function comments

* Fix image version check

* Skip privte vlan tests on n9k-f

* Skip cisco_itd tests on n9k-f

* Skip private vlan tests on n9k-f

* Skip cisco_vpc tests on n9k-f

* Anchor n9k platform check

* Update platform regexp to use correct packet size for fretta

* Rel150/product tag (#407)

* Add product_tag helper method

* Fix bug in product_tag api

* Update CHANGELOG.md

* Interface HSRP group (#405)

* hsrp global new provider

* hsrp interface

* beaker of intf_hsrp

* move int_hsrp to int

* documentation

* hsrp group fixes

* fix array issue

* add validations

* demo manifest

* beaker

* documentation

* n8k to n9k-f

* review comments

* fix event_history for fretta

* fixes for review comments

* readme change

* more comments

* Rel150/atherton fretta fixes (#409)

* Handle atherton nxapi double quotes

* Handle atherton nxapi double quotes

* Handle atherton nxapi double quotes for tacacs

* Make regexp in nexus_image method more flexible

* pim and interface bfd (#410)

* pim bfd

* doc

* Update CHANGELOG.md

* n7k atherton hsrp (#411)

* pim bfd

* doc

* fix n7k atherton hsrp

* review comments for doc

* review comments for doc

* Some travis gem's require ruby version 2.1.0 or greater.

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update cisco_node_utils.rb

* Update metadata.json

* Update CHANGELOG.md
mikewiebe added a commit that referenced this pull request Mar 14, 2017
* Modification of tacacs_server for tacacs_global

* Add README-pre-1.3.0.md

Save this for now since it has 8k/XR info.

* Add 8K to BGP wait_for_process_initialized()

* Add 8K to OSPF wait_for_process_initialized()

* ios xr implementation of snmpserver

snmp_server for IOS_XR, contact and location

* feature vfd

* changelog

* First commit

* remove new files

* first commit

* first commit

* test

* Review comments

* Fix few things

* testing

* fabricpath

* Collapse release_1.3.1 to develop

* more tests

* tested on platforms

* minitest complete

* remove exclude for echo_interface

* bfd_global

* Fix error in init

* review comments

* EXR support for snmp_community

* loopback added to echo intf

* implementing snmp_notification_receiver for XR

* bfd_global: Add remaining properties (#418)

* errors fixed

* interval array change

* missing ipv6 default

* remove name

* add exclude for interval

* Add comments

* Review comment fixes

* Bfd for bgp_neighbor (#419)

* errors fixed

* interval array change

* missing ipv6 default

* remove name

* add exclude for interval

* Add comments

* Review comment fixes

* bfd prop added to bgp_neighbor

* CHANGELOG

* review comment

* rview comments

* Update CHANGELOG.md

* version may be absent on 'snmp-server host' (#420)

* Ospf Area (#422)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* Condense vlan configuration and fix teardown error (#426)

* test_aaa*: shorten class & testcase names

* test_interface*: short class & testcase names

* modify/delete some repetitive tests

* tested on n9-i4

* Add feature ospf enable (#428)

* test_pim_group_list: class/testcase renaming

* Tested on n9-i4

* test_snmpcommunity: short class/testcase names

* snmpuser: dummy_user var does not exist

* YANG JSON support for gRPC client (#425)

* Added support for setting/getting YANG config

* revert

* skip all tests on nexus

* cleanup

* method name change

* fixed rubocop errors

* Changes based on feedback

* removed blank line

* test_snmpuser: shorten testcase names

* test_tacacs_server_host: class/testcase name changes

* minitest: shorten class / testcase names

* Added IOS XR support for snmp_user

* Refactored snmp_user

* Updated test_snmpuser.rb

* Fixed NXOS issue with snmp_user

* Updated test_snmpuser.rb for NXOS

* Update docs for XR + small fix (#431)

* Resurrected XR doc. Fixed constant reference.

* split line that was too long

* removed whitespace

* Fixed 6.0.0 version number.

* changes based on review

* Refactor test_snmpserver (#430)

* Refactor test_snmpcommunity

* Shortened class/testcase names
* Removed redundancy by combining several test sections into a single test
* Added validate_property checks

* Tested on n9-i4

* remove comment line

* implement tacacs_global to match radius_global (#429)

* Add nssa support to ospf_area (#432)

This PR is for router_ospf_area provider which includes nssa properties.
All tests pass on on platforms except on n8k.
On n8k, commands like "area nssa default-information-originate" and "area nssa default-information-originate route-map " are not getting configured properly after we reset nssa and due to this the relevant tests failed. Bug is filed on nxos platform and skipping these tests only on n8k.

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* Added support for retrieving operational data via gRPC/YANG (#433)

* Added show_running_yang utility.  Allow retrieval of operational yang data.

* Added show_running_yang utility.  Allow retrieval of operational yang data.

* Updated changelog.  Fixed comment.

* Fixed rubocop error

* Removed extra space.

* ospf_area: Fix hash in nssa_set (#434)

This PR is for changing the nssa_set method in the ospf_area NU due to the review comments on the puppet side. This simplifies the previous version.

Also changed authentication 'clear_text' to 'cleartext' to keep consistency among all the other providers.
Chris has the context about this PR and so it is better if he reviews this.

* Add feature ospf enable

* review comments

* Add ospf_area_vlink (#436)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* first commit

* test code for vls

* test code for vls

* add more tests

* auth added

* cleartext added

* authentication_key_pw added

* message_digest_key added

* default for key_id

* comments add

* CHANGELOG fixed

* comment added

* review coments

* fixes to tacacs_global (#437)

* Rubocop fixes for PR 435 (#438)

* Fixed various XR minitest errors/failures.

* Rubocop fix for PR435

* pvlan_mapping fix for n8k (#439)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* first commit

* test code for vls

* test code for vls

* add more tests

* auth added

* cleartext added

* authentication_key_pw added

* message_digest_key added

* default for key_id

* comments add

* CHANGELOG fixed

* comment added

* review coments

* fix for pvlan_mapping for n8k

* interface_ospf NU fixes (#440)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Merge release_1.3.1 --> develop (#454)

* Add 8K to BGP wait_for_process_initialized()

* Add 8K to OSPF wait_for_process_initialized()

* Fix for n8k vrf context

* fix comment

* Remove skip for CSCuz44696

* fix vni for all supported platforms

* Fix minitest for aaa feature

* yaml fix

* Update version.rb

* Utils.normalize_range_array

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

* The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* There's also a method that breaks the ranges down into individual elements so that delta_add_remove can add or remove specific elements on the switch.

* I have a related commit for Puppet on the way.

* Tested on n9k

* Property mapped_vni fix for n5|6k

* private_vlan_association minitest fix

* Updated result values to reflect that API now uses Utils.normalize_range_array, which summarizes the ranges.

* The rest is just cleanup, ie removed the else clause since the if block does a return.

* Tested on n3,n5,n6,n7,n8,n9-I3

* comment updates only

* Refactor yaml to use default_only

* Error condition for l2vpn added

* Minor test code cleanups

* Add basic filter to Interface.filter

* Get rid of interfaces_id method

* shorten test method names in test_interface_private_vlan

* tested on n9

* Simplified yaml entry

* process_initialized is included for n8k

* Fix negotiate auto invalid skips (#404)

* Condense negoitate test code and fix invalid skips

* Remove debug code

* Update aaa_authentication_login_service.rb

* interface: private_vlan refactor

* There were a few errors with the original implementation. As I worked through this I found that it made sense to rewrite many of the methods to use the new range conversion utilities, and with so many functional changes we decided to take the opportunity to shorten the property names. Since the original code was already released with 1.3.0 we decided to just deprecate them.

* Created `DEPRECATED.yaml` and `interface_DEPRECATED.rb` for the original code. The setters will raise a warning if used, which includes the name of the new property to use. I ran the original test_interface_private_vlan tests against the deprecated code and they still pass, but then updated the test file to use the new methods. This means that going forward the deprecated methods will not have any tests run, and any issues found will not be fixed.

* Related puppet fixes are in the works.

* Tested on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* switchport_pvlan_mapping_trunk needs to be a multiple

* My first pass at this code missed that this property supported multiple occurrences
  * Added a delta_hash method for trunk
  * Changed `pvlan_range_delta` to a single-caller method for `switchport_pvlan_mapping` since it's no longer shared with the trunk method
  * Fixed the minitest

* Passes on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* Move svi pvlan test into test_interface_svi.rb

* Tests pass on all NX platforms

* Move deprecated keys into own hash

* This is just a minor cleanup to make this simpler to remove later on

* Update comments in DEPRECATED.yaml

* change private_vlan to pvlan

* changelog

* fix for context

* Change deprecation warning msg

* Change deprecation warning msg

* pvlan_mapping should always return array

* This property allows input as string or array. The getter was returning default as [] and non-default as String - which forces special handling in puppet's insync? method - so I changed it to always return an array. This way we don't need to override insync? at all.

* Also moved the pvlan_mapping test out of the svi file. While it does only apply to svi interfaces it seems to fit better with the other interface-related private-vlan tests.

* Tested on n5,n7,n9-I3

* Add requires for DEPRECATED providers

* Symptom: Noticed a corner case where changing a deprecated file on the device but not changing the inheriting file (I updated interface_DEPRECATED.rb but not interface.rb) caused the following error:

```
Linux# puppet agent -t
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Facter: error while resolving custom fact "cisco_node_utils": uninitialized constant Cisco::NodeUtil
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: already initialized constant Cisco::PVLAN_PROPERTY
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: previous definition of PVLAN_PROPERTY was here
```

* Analysis: Looks like facter caches the provider files. I found that making a whitespace change in interface.rb was enough to trigger the cache clear for that file and it avoided the error. But the real problem is that the deprecated providers do not have a require for 'node_utils', so just needed to add those to avoid this problem.

* Also moved PVLAN_PROPERTY hash within the class to avoid the re-definition warning. This is probably not necessary but it's cleaner.

* Also found that `set_value` didn't get included for `switchport_mode_private_vlan_trunk_promiscuous` when I copied the file contents over to DEPRECATED.yaml, so it's there now.

* Tested on n9k-i3

* Update interface_DEPRECATED.rb

* Update vlan_DEPRECATED.rb

* virtual_service and system_image yaml fix

* Fix yaml validation error

* Addressed PR comments

* Remove hardcoded tacacs server reference

* Interface shutdown property fix

* Update test_interface.rb

* switchport disable is broken

* Broken by #406

* Tested on n9-i3

* test_interface_private_vlan.rb: /private_vlan/pvlan/

* The vlan object still referenced the old names

* Tested on n9-I3

* test_interface* minor cleanups

* method name changes only for the most part

* tested on n3-I4

* yum package manager fixes

* Removed debug

* Remove trailing whitespace

* Do not track tacacs server info

* Add full relative path to tacacs server info

* Test if tacacs server is valid

* Add relative path of yaml file

* Refined the error message for invalid server

* Pim.pims fix for feature disabled

* The global nature of the pim resource means that an object will be created for each vrf regardless of state; however, this meant that objects were getting created even when feature pim was disabled, causing puppet agent/resource to to raise an error whenever the getter was called.

* Tested on n7

* Add N8k references

* Handle no virtual-services installed case

* vxlan and pvlan fix

* Remove delta check for cpu utilization (#421)

* Add 8k support to CHANGELOG

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423) (#441)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* Fix error due to time zone difference (#443)

* Fix suppress-fib-pending lib and test code (#445)

* Remove testing of vrf context and fix default test

* Fix broken yaml

* Merge default test code into main testcase

* Snmp packet_size fixes (#446)

* Snmp packet_size fixes

* Add n8k

* Fix last_reset check for platform (#444)

* Fix cannot disable local issue (#447)

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Fix auth method local cleanup (#449)

* Refactor aaa local auth removal (#450)

* Refactor aaa local auth removal

* Remove whitespace

* Remove unneeded test steps (#452)

* New overlay_global behaviors (#451)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Prevent removal of method local on unsupported platforms (#453)

* Missed merge conflict

* Add noop test for CI dev use

* Munge 'no event-history events' to size_disable (#456)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`

This change munges the `no event-history events` to `size_disable`
in order to handle behavior changes between different nxos releases.
This code change should be backwards compatible.

* Remove broken xr snmpuser support (#459)

* Remove broken xr snmpuser support

* test_snmpuser: shorten testcase names

* Ospf bfd for interfaces (#457)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* add bfd to router ospf

* add p2p type to int ospf

* ad bfd to interface_ospf

* test file fix

* test file fix

* clean code

* bfd per_link added to int po

* bfd echo added to interface

* bfd echo added to interface

*  fix p2p

* test code enhanced

* changelog

* review comments

* Update CHANGELOG.md

* convert symbol to string

* bfd_echo similar to vtp

* review comment

* review comment

* Scrub XR references from doc. (#458)

* Scrub XR references from doc.

* Scrub XR references from doc.

* Ospf parameters for interfaces (#460)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* added pri, tx delay, shut and mtu to int ospf

* changelog

* test_vpc needs rescue for incompat intf

* test_vpc needs rescue for incompat intf (#461)

* Minitest bug fixes (#462)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* added pri, tx delay, shut and mtu to int ospf

* changelog

* bug fixes

* remove test_last_reset

* Fix remove aaa local on n3k (#464)

*  Minitest: Handle N7k F3-features w/o compat LCs (#463)

* test_vpc needs rescue for incompat intf

* Handle N7k F3-features w/o compat LCs

* The vrf_af route_target tests were failing because feature nv overlay failed - because our n7k does not have an F3 linecard:

```
 1) There are some features that refuse to load unless the VDC is
    limited to F3 only, but they will actually load if the config is
    present, despite the fact that there are no physical F3s.
 2) We have some tests that need these features but don't need interfaces.
```

* Solution: Enable the vdc config for F3 but don't fail if the physical LC is not present
  * Prior to this solution I had created a couple of methods to find an appropriate interface based on the feature-to-LC requirements. This works but is only useful for features that also require an interface (unlike the vrf_af test). Eventually I would like to remove the other one-off methods (e.g. `fabricpath_testenv_setup`, `vxlan_linecard?`, etc) that do similar functions and convert the callers to use this common one instead. Since there are no current callers for it I just commented it out.

* Tested on n7k (no F3 card) and N9K.

* /if-else/case/

* MT: Fix snmpuser teardown loop (#465)

* test_vpc needs rescue for incompat intf

* MT: Fix snmpuser teardown loop

* MT: portchannel: n3k_in_n3k bad pattern

* Fix half/full in test_duplex

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* Tested on n3048

* Fix half/full in test_duplex (#466)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* Tested on n3048

* minitest fixes for vtp and resilient mode (#467)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* fix for symmetry not supported on n3k (#468)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* test_interface_sw: check for fex compatibility (#469)

* f3 fix for test_feature

* Refactor yum patch test (#470)

* Refactor yum patch test

* Update failure message

* Update failure message

* Addressed review comment

* Rubocop fixes

* f3 after_tests for test_overlay_global

* Revert "f3 after_tests for test_overlay_global"

This reverts commit 612514e.

Bad codefix

* ciscotest: first_or_last_teardown (#471)

* f3 setup/teardown on N7k's can be very time consuming (60+ seconds) so it's expensive to do this for every testcase

* This hack limits the vdc teardowns to the first and last testcase (f3 setup is ignored if it's already set to f3)
  * We have to check for first because a test may use -n to limit the run to a single test

* Minitest.after_run is not really an option for this: it's designed to run at the end of an entire test suite and actually runs at_exit, at which point we no longer have access to our ciscotest methods.

* better teardown for test_feature

* f3 setup/teardown for test_vxlan_vtep_vni

* f3 setup/teardown test_bridge_domain_vni

* f3 setup/teardown for test_vxlan_vtep (#472)

* Also added a rescue/retry for vdc limit-resource

* setup/teardown cleanups for test_vlan

* narrowed the interfaces method in ciscotest to exclude dot1q sub-ints

* moved the mt-full test from test_vlan_mt_full.rb into vlan.rb and removed entire test file

* Tested on n5, n7, n9

* f3 setup/teardown test_encapsulation

* n7k f3 fix for test_router_bgp/route_distinguisher

* setup/teardown fix test_vlan_private

* test_yum: skip for no pkginfo filename

* assert for test_yang

* noop.rb: change skip to assert

* Rel140/refactor yum (#473)

* Refactor yum to cleanup patches properly

* Enable additional releases

* Add retry loop for Yum.remove

* Modify regexp

* Reduce tries from 50 to 20

* Refactor retry loop

* Unpdate n9k to allow local auth removal

* snmpuser minitest fix (#475)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* changelog

* revert Changelog

* fix for snmpuser 8 char limit

* test_fabricpath_global cleanup fixes

* Tested on n5,n7,n9-i2,n9-i5,n3

* test_vxlan* cleanup fixes

* tested on n3,n5,n7,n9-I2,n9-I5

* test_interface_switchport test cleanup

* test_interface_switchport test cleanups

* test_aaa_authentication_login cleanups

* Failing when stale configs present on testbed; this change should remove any leftovers

* Tested on n3-I2,n5,n7,n9-I5

* Add storm_control and dhcp relay props for interface (#474)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* storm-control and dhcp relay for intf

* exclude 2 storm control props on n7k due to hw limitation

* comments added

* changelog

* typo correct

* cleanup unsupported tests

* review comments

* remove features added during the minitest

* Add tacacs-server key cleanup

* removing vlan name negative tests and fix dhcp relay munge (#476)

* removing vlan name negative tests

* munging issue fixed

* Add defect/image check to minitest (#477)

* Add defect/image check to minitest

* Bails out of testcase if image matches pattern; no skip, no assert
* Prints 'NOOP' message and any add'l helpful text, e.g.:

```
Node under test:
  - name  - n5k-136
  - type  - N5K-C56128P
  - image - bootflash:///n6000-uk9.7.3.0.N1.1.bin

TestVrf#test_name_zero_length = 4.88 s = .
TestVrf#test_route_distinguisher = 11.79 s = .
TestVrf#test_remote_route_filtering = 2.01 s = .
TestVrf#test_name_too_long = 1.93 s = .
TestVrf#test_vpn_id = 2.07 s = .
TestVrf#test_vni = 2.85 s = S
TestVrf#test_mhost = 1.96 s = .

TestVrf#test_description -> NOOP <- [CSCuy36637: Cannot remove description]
TestVrf#test_description = 2.91 s = .
TestVrf#test_collection_default = 1.01 s = .
TestVrf#test_create_and_destroy = 2.89 s = .
TestVrf#test_name_type_invalid = 1.05 s = .
TestVrf#test_shutdown = 26.73 s = .

Finished in 62.072465s, 0.1933 runs/s, 0.4189 assertions/s.
12 runs, 26 assertions, 0 failures, 0 errors, 1 skips
```

* /puts/Cisco::Logger/

* Remove timestamp noise from logger

* Enable nv_overlay_evpn fix (#478)

* skip_legacy_defect method

* Rework previous `defect?` method to do skip instead of return

* Tested on n3-I2, n5

* skip_legacy_defect for vtp

* Dhcp Relay Global (#481)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* skip_legacy_defect for snmpserver

* Dhcp Relay Global (#482)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Refactor test_snmpuser teardown

* portchannel_global n3k minitest fix (#483)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Fix minitest error

* Use valid type6 tacacs password

* Add skip_legacy_defect? for aaa, snmp and vlxan

* bgp event_history (#484)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Fix minitest error

* bgp event-history fixes

* review comments

* more review comments

* Remove require pry in test_snmpuser.rb

* Separate ace ipv4 and ipv6 ttl tests

* Update sample patch names for I5 images.

* bgp event_history (#486)

* bgp event-history

* fix event-history props

* doc

* Update expected error class in yum test

* bgp send-community fix (#487)

* fix for send_community

* fix bfd echo intermittent failure

* review comments

* review comment

* fail api raises RuntimeError, update test

* Initial upgrade services

* Remove white space

* fix for send-community (#488)

* Fix test_lacp_suspend_individual to address behavior change (#489)

* Fix test_lacp_suspend_individual to address behavior change

* Remove pry debug

* Rel141/lacp suspend (#490)

* Fix test_lacp_suspend_individual to address behavior change

* Remove pry debug

* Refactor lacp_suspend_individual setter

* Addressed PR comments

* Update comment to be more accurate

* Update version from 1.4.0 to 1.4.1

* Fix/command config issue (#491)

* Fix 'no' commands won't apply if defaults don't nvgen

* Add 'nvgen' key to scale test hash

* Add ability to define setup config in test yaml file

* Add setup yaml test key support

* Update all tests to use scalar designation

* Initial refactor N8k --> N9k-F (#493)

* (POC) product_id qualifier for 8k rebrand

* This is just a POC diff for adding add'l checks to determine the product_id. Do not merge this code.

* The requirement here is to create a unique product_id for switches that share the same product_id but have a fundamental difference; e.g.
  * 8k may only be differentiated by the presense of 8k fabric modules
  * n3k-in-n9k-mode will have the same product_id as a "regular" n3k

* N9K-F enablement

* hsrp_global and interface_hsrp providers (#492)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* fix for event history on n9k-f (#495)

* Remove unsupported n9k-f feature

* Fix node test for fretta

* Fix test_platform regex

* Fix n9k fretta regexp

* Enable yum patching for fretta_camden

* Enable I6 release patching

* interface hsrp group (#496)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* hsrp group ip

* fix hsrp ip

* fix hsrp_groups

* fix name

* fix ipv4_enable

* fix priority

* fix auth

* fix ipv6 autoconfig

* documentation

* fix auth

* fix auth password

* review comments

* fix timers with regex

* Update platform_to_filter api for n9k (#497)

Update to correctly match fretta or non-fretta based n9k platforms but not both.

* Add short tag test api (#499)

* Update CHANGELOG.md

* fretta changes for event history bgp (#498)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* hsrp group ip

* fix hsrp ip

* fix hsrp_groups

* fix name

* fix ipv4_enable

* fix priority

* fix auth

* fix ipv6 autoconfig

* documentation

* fix auth

* fix auth password

* review comments

* fix timers with regex

* fix version check for fretta

* Fix fretta for event history using product_id

* Rel150/atherton fretta fixes (#500)

* Fix vrf delete in progress issue for domain_name

* Fix fabricpath loadbalance yaml entries

* Disable switchport on portchannel test for bfd echo

* Add missing n9k fretta exclude

* Raise deterministic error for yum install failures

* Update error class test

* pim bfd (#501)

* pim bfd

* fix pim ssm range tests

* review comment

* Rel150/atherton fretta fixes (#502)

* Fix vrf delete in progress issue for domain_name

* Fix fabricpath loadbalance yaml entries

* Disable switchport on portchannel test for bfd echo

* Add missing n9k fretta exclude

* Raise deterministic error for yum install failures

* Update error class test

* Fixes for atherton nxapi double quote behavior

* Enable bgp af properties for atherton

* atherton event-history skips (#503)

* pim bfd

* fix pim ssm range tests

* review comment

* n7k atherton event-history

* Update CHANGELOG.md

* n7k atherton hsrp (#504)

* pim bfd

* fix pim ssm range tests

* review comment

* n7k atherton event-history

* fix hsrp for n7k atherton

* New nxapi_structured infra features (#505)

* Initial vlan long name POC

* Update find logic

* Add nxapi structured yaml feature support

* Change get_value schema from string to any

* Update inventory.yaml entries to use new nxapi_structured infra

* Update README_YAML.md

Add new nxapi_structured features.

* Simplify inventory.yaml file

* Bug fix

* Fix rubocop failure

* Bug fix in drill_down_structured method

* Update test to check for Cisco::CliError

* Move validate_installed method inside begin_rescue block

* Remove debug code and cache_flush

* Add vrf vni support for fretta

* Flush cache for nxapi_structured get_config calls

* Delete README-pre-1.3.0.md

* route_map (#507)

* pim bfd

* fix pim ssm range tests

* review comment

* n7k atherton event-history

* fix hsrp for n7k atherton

* first commit for route map

* add match ip multicast

* Add match ipv6

* add match metric

* add route_map

* add vlan, length, mac_list

* evpn route type add

* fix platform specific excludes

* fix route-type multiple

* add some set properties

* add set metric

* add some set commands

* set intf, set aspath

* doc

* add set ip prorperties partially

* add set ip prorperties

* set community added

* set extcommunity partial

* set extcommunity cost

* fix some platform diff issues

* fix some platform diff issues

* fix some platform diff issues

* doc and rubocop

* skips for bugs

* changelog

* exclude for ospf_area added

* fix CHANGELOG

* minor error in load-share fixed

* maps nil check

* fix review comments and combine some properties

* match ip addr access fix

* quotes for arrays

* SNMP Community - Symbols Cause Churn (#508)

* Only flush cache for structured table data

* Fix typo

* Escape special characters in key_substitutor method

* Fix debug statementwq

* Revert "Fix debug statementwq"

This reverts commit 16a73a4.

* Revert "Escape special characters in key_substitutor method"

This reverts commit 0fbbe19.

* Refactor snmp community group to use structured output

* Refactor snmp community to use structured output for n3|9k

* Addressed PR comments

* fix itd ingress intf issue (#510)

* Add support for 7_0_3_I5_2 sample patches.

* Rel160/bug fix (#512)

* Fix infra bug

* Infra fix

* route_map test skip for dplus images (#513)

* fix itd ingress intf issue

* skip for 2 tests failing on dplus images

* Allow configuration of local nxapi session cookie (#514)

* Allow explicit nxapi session cookie config

* Refactor cookie code

* Update client.rb

* Update validate_cookie method

* Remove debug statements

* Update README.md

* Update cisco_node_utils.yaml.example

* Remove whitespace

* Replace Utils.add_quotes calls with asser_match

* Remove unused add_quotes method

* Add logic to handle EOFError (#515)

* Catch EOFError and retry

* Drop try count from 5 -> 2

* Fix install fex minitest

* Remove puts statement.

* Allows tokens to be passed to get_command

* Add tests and procs for install all nxos

* Update DOC to highlight that get_command can be tokenized

* Add YAML to specify params for upgrade

* Adding error handling and cleaning up code

* Reworked some TCs + Add new TCs

* Handle case when upgrade is run with booted image

* Add test_upgrade_boot_image

* Add Service to CHANGELOG.md

* Add TODO to upgrade scenario

* Update CHANGELOG.md

* Upgrade services (#516)

* Initial upgrade services

* Remove white space

* Allows tokens to be passed to get_command

* Add tests and procs for install all nxos

* Update DOC to highlight that get_command can be tokenized

* Add YAML to specify params for upgrade

* Adding error handling and cleaning up code

* Reworked some TCs + Add new TCs

* Handle case when upgrade is run with booted image

* Add test_upgrade_boot_image

* Add Service to CHANGELOG.md

* Add TODO to upgrade scenario

* Update CHANGELOG.md

* Add load-interval properties to interface (#517)

* Add load-interval properties to interface

* review comments

* added test cases for loopback and subintf

* remove test for n9k (#518)

* fix for double quotes errors for passwords (#519)

* remove test for n9k

* double quote string cleanup

* review comments

* Add command for upgrade_force

* Update upgrade to handle delete_boot and force upgrade

* Upgrade services (#520)

* Initial upgrade services

* Remove white space

* Allows tokens to be passed to get_command

* Add tests and procs for install all nxos

* Update DOC to highlight that get_command can be tokenized

* Add YAML to specify params for upgrade

* Adding error handling and cleaning up code

* Reworked some TCs + Add new TCs

* Handle case when upgrade is run with booted image

* Add test_upgrade_boot_image

* Add Service to CHANGELOG.md

* Add TODO to upgrade scenario

* Update CHANGELOG.md

* Add command for upgrade_force

* Update upgrade to handle delete_boot and force upgrade

* Add latest Camden and Dplus MR sample patches

* Remove whitespace (#521)

* Fix test_image_version

* Add is_box_online

* Enhancements to service.rb

Function box_online? added.
Modified upgraded? to check for config ready.
Add version check to 'upgrade'.
Handle 500 - Backend processing Error

* Enchancements added to test_service.rb

Added test for box_online?
Modified calls to Service.upgrade to include version
Increases retry to 5 in test_upgrade
Made test_upgrade_boot_image skippable in absence of yaml file

* Renaming files from service to upgrade

* Updating references of service to upgrade

* Renaming Service to Upgrade

* Updating CHANGELOG.md

* fix 1.6.0 issues (#523)

* Incorporated @mikewiebe PR comments.

- updated references of 'media' to 'uri'
- fail upgrade if uri is not bootflash
- replace shell_command with config to handle OAC

* Fix Rubocop error

* Upgrade services (#524)

* Initial upgrade services

* Remove white space

* Allows tokens to be passed to get_command

* Add tests and procs for install all nxos

* Update DOC to highlight that get_command can be tokenized

* Add YAML to specify params for upgrade

* Adding error handling and cleaning up code

* Reworked some TCs + Add new TCs

* Handle case when upgrade is run with booted image

* Add test_upgrade_boot_image

* Add Service to CHANGELOG.md

* Add TODO to upgrade scenario

* Update CHANGELOG.md

* Add command for upgrade_force

* Update upgrade to handle delete_boot and force upgrade

* Fix test_image_version

* Add is_box_online

* Enhancements to service.rb

Function box_online? added.
Modified upgraded? to check for config ready.
Add version check to 'upgrade'.
Handle 500 - Backend processing Error

* Enchancements added to test_service.rb

Added test for box_online?
Modified calls to Service.upgrade to include version
Increases retry to 5 in test_upgrade
Made test_upgrade_boot_image skippable in absence of yaml file

* Renaming files from service to upgrade

* Updating references of service to upgrade

* Renaming Service to Upgrade

* Updating CHANGELOG.md

* Incorporated @mikewiebe PR comments.

- updated references of 'media' to 'uri'
- fail upgrade if uri is not bootflash
- replace shell_command with config to handle OAC

* Fix Rubocop error

* Add debug logging and exclude unsupported platforms

* Remove merge conflicts

* Remove dublin yum package support

* Add missing commit step to yum workflow (#526)

* Increase dns domain create try counter

* Skip test_sys_def_svi_autostate in Atherton

* Remove pointless test test_name_long

* Add back test_name_long but remote error check step

* fix hsrp+bfd and pim_bfd (#527)

* remove all route maps after testing (#528)

* Update CHANGELOG.md

* Update version -> 1.6.0

* Revert recent cisco yum provider changes
mikewiebe added a commit to cisco/cisco-network-puppet-module that referenced this pull request Mar 14, 2017
* Added IOS XR support for tacacs_server

* Updated CHANGELOG

* Update CHANGELOG.md

* Added support on IOS XR for tacacs_server_group

* remove sync damage from demo_bridge

* Refactored network_interface provider. Updated tests and code to
support IOS XR.

* Matrix updates for overlay_global & network_trunk

* domain and search options are mutually exclusive

http://man7.org/linux/man-pages/man5/resolv.conf.5.html

* Remove source_interface_hold_down_time for 8k

* Collapse release_1.3.2 to develop

* cisco_bfd_global: new properties (#334)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* network_snmp ios_xr does not support global enable

* bgp_neighbor: add bfd (#340)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* add bfd to bgp_neighbor

* bfd prop

* documentation

* Fix BFD caveat

* Update CHANGELOG.md

* search_domain, tests platform agnostic (#343)

* modificatins for snmp_notification on IOS_XR

* test fixes for ios_xr snmp_notification_receiver (#338)

* Add test_get / test_set to command_config (#348)

* Add test_get / test_set to command_config

* Needed a way for beaker to query / set config that didn't have explicit resource support (e.g. disabling a feature)

* test_get is a simple get-only property that does a show running; callers set a filter to parse what they need:
    `puppet resource cisco_command_config 'cc' test_get='incl feature'`

* test_set is a simple set-only property:
    `puppet resource cisco_command_config 'cc' test_set='no feature foo'`

* Tested on n3,n5,n7,n9

* Bad regex in bkr test service_provider_nondefaults.rb

* Add beaker test_get / test_set

* config_find_remove() uses test_get to search for existing configs, then test_set to remove it.

* Fix the fabricpath tests which ran into an issue on n5k when cleaning up 'feature nv overlay' with command_config: Puppet resource removes the config but then immediately does a 'show runn' which gets a SAP timeout on the device itself and the test errors. Using the test_set setter instead of regular command_config gets around this problem because it's a "set-only" with a dummy test_set getter.

* Tested on n5,n7,n9

* test_get: add debugs, comments

* tested on n5

* Skipped tacacs provider test on IOS XR (#350)

* Refactor tests: aaa_group_tacacs (#351)

* Converted to new test syntax

* Tested on n9-i4

* Add cisco_ospf_area provider (#352)

This PR is for cisco_ospf_area provider. The properties do not include nssa and its associated properties. They will be added as part of another user story.

Since this provider becomes absent when all properties are set to default, cisco_pim model is followed for beaker tests.

All demo_manifests and beaker tests passed on all platforms.

Squashed commits:

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* Added IOS XR support for snmp_user (#353)

* Add nssa properties to ospf_area provider (#354)

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* nssa

* small correction

* name changes

* fix manifest

* fix nssa_set

* include cmnutils

* beaker test added for nssa

* typo fix

* documentation

* fix docmentation

* fix README

* Fix review comments

* tacacs_global changes for ios_xr (#342)

* router_ospf_area_vlink: new provider (#355)

Adds virtual-link support

* Fixes for cisco_interface_ospf provider (#357)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* minor vrf name change

* to avoid annoying conflict with 'management'

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* Merge release_1.3.2 --> develop (#365)

* Add note on existing_str

* Refactor test_interface.rb into multiple files

* This test was trying to do too much; it became too large and unwieldy to use and troubleshoot.
* Refactor to use new test syntax (test_harness_run)
* File changes:
  *  deleted:    test_interface.rb
  *  new file:   interfacelib.rb
  *  new file:   test_interface_L2.rb
  *  new file:   test_interface_L3.rb
  *  new file:   test_interface_bdi.rb
  *  modified:   test_interface_capabilities.rb
  *  modified:   test_interface_stp.rb
  *  new file:   test_interface_svi.rb
  *  new file:   test_interface_private_vlan.rb

* renamed test_vlan_mapping.rb to test_interface_vlan_mapping.rb

* Only tested on n7k and n9k so far but there's a lot here and I wanted to get some eyes on the changes

* Platform tweaks for test_interface*

* test_interface: add skip_unless_supported plat checks

* Minor change to bail out of the test immediately if the platform does not apply

* test_interface_private_vlan: fix trunk assoc cleanup

* Found a bug on n9k where 'private-vlan association trunk' does not get cleaned up by 'default interface', which breaks this beaker test

* Created a workaround cleanup method that does 'no switchport'

* Tested on N9k-I3

* test_private_vlan: refactor, remove redundancies

* Refactored to use new test syntax; removed unnecessary/redundant tests and some that didn't test anything
* This test suffers from the same idempotency bug as the interface private-vlan code; it will require the same kind of fix

* Tested on n9k-I3, N7

* Bump version number.

* Add testing for switchport_autostate_exclude

* Remove old and redudant access_vlan tests

* Remove old style beaker tests

* normalize_range_array for puppet

This is the puppet counter-part to NU. The notes below are copied from: cisco/cisco-network-node-utils#400
The main difference between these is a default check in Utils.normalize_range_array and that there's no Utils.dash_range_to_elements since that's not needed in puppet.

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

  * The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* Tested on n9k. Additional testing coming on the other platforms, as well well as demo, Readme, etc.

* bgp_af l2vpn

* Fix demo_bgp

* Fix additional_paths_install

* New beaker style vlan tests

* l2vpn/evpn support

* l2vpn/evpn support

* exclude n3k

* review comments

* Review comments

* cisco_interface: deprecate private_vlan*

* private_vlan refactor

* cisco_interface: private_vlan refactor

* Deprecated the private_vlan properties that were released with 1.3.0 and created new pvlan properties in their place.

* This is the companion to NU PR: cisco/cisco-network-node-utils#406

* Updated Type, Provider, Beaker, Demo, README, and CHANGELOG.

* Currently only tested on N7, N9-i3. Additional testing in prog.

* readme and changelog

* readme and changelog

* Update README.md

* pvlan beaker fixups for 6k

* The 6k cli is strict about requiring vlan associations before allowing interface vlan association; therefore I added the dependencies to the test. I need to rerun the test on all the platforms to see if the platform check needs to be tweaked.

* Only tested on n6 so far

* Minor demo_interface changes

* Added some private-vlan dependency resources

* test_interface_private_vlan: n3k platform fixes

* demo manifest as well

* tested on n3-i4,n9-i2,n5,n9-i3,n7

* test_interface_stp needs vlan cleanup

* tested on n9-i3

* Re-add n8k doc references

* Fix some N8k references

* Add N8k back to support table

* Remove extra property

* Fix spacing in rotate property

* anycast_gateway platform checks

* Restrict the anycast test to n9k only

* Tested on n3,n7,n9-i2,n9-i3

* test_interface_service_vni script fixes

* Some cleanup / setup was insufficient

* :non_default was not getting run

* This is only supported on n7k; tested on n7k.

* test_vrf: f3 dependencies

* N7k needs an f3-only vdc for route_distinguisher

* tested on n7

* test_vrf_af: add f3 dependency for 7k

* tested on n7k

* Update README-agent-install.md

* Update README.md

* test_vlan/test_private_vlan: add f3 deps

* Tested on n7

* test_vxlan_vtep*: add f3 deps

* Tested on n7

* Refactor package provider to use rpm - qip (#328)

* Replace regexp with rpm -qip

* patching demo updates

* Updated fail message

* Update demo_patching.pp

* Add back rpm filename regexp support (#329)

* Add back rpm filename regexp support

* Remove debugs

* Update README.md

* interface svi fix

* Remove explicit anycast config

* anycast-gateway-mac is a required dependency; a recent commit added an explicit call to the test file to set this up; BUT we already had existing code for doing this that was part of interfacelib.rb

* The interfacelib code was returning early because of /unless/if/

* Tested on n9-i4

* test_interface_L2 should reset sys_def_switchport

* This test sets the system default switchport state to true but it should reset it to false when it's finished.

* Tested on n9-i4

* test_vxlan_vtep_vni: suppress_uuc broken

* There was a platform exception that tried to add this property using the new test syntax; however this test file uses an older syntax.

* Added an nv overlay hw support check (my n6k does not support nv overlay)

* Tested on n6

* README-agent-install: doc cleanup (#330)

* README-agent-install: doc cleanup

* This doc has had a lot of misc updates in the past so I tried to streamline the content somewhat and organize the sections into discrete steps.

* A couple of things that need a closer look:
 * The RPM table may need updating to reflect the GS fix coming out any day
 * The auto-install section for cisco_node_utils gem is a little weak. I'm not sure if I referenced the correct pp file and used the right directory target.

* README-agent-install.md: Cleanup node-utils section

* README-agent-install.md: fix broken links

* Review comments addressed

* All addressed except for the GS RPM comment.

* README-agent-install: GS RPM v1.5 tested

* Add markdown syntax flags

* README.md cleanup for 1.3.2 (#335)

* Move Document Workflow Map to Documentation Guide table

* README: Move Limitations into Platform Support

* Add Legend & tables

* README: Update Usage section

* README: Move platform support section after resource ref tables

* README.md: minor text change

* URL change: /develop/master/

* Addressed remaining PR comments

* /develop/master/ URL fixup

* test_vdc: fix for non-F3 testbeds (#336)

* test_vdc: fix for non-F3 testbeds

* Updated this test to work with non-F3 N7k testbeds.
  * Initially set the VDC module-type to default state
  * Then set module-type to F3 and test
  * There's no great way to know which way to leave the module-type when this test completes, so:
    * Reset module-type to default for non-F3 testbeds since leaving it as F3 means the device won't have any usable interfaces
    * Noop for F3 testbeds so that it leaves their F3 still usable

* Tested on n6, n7-non-F3

* beaker tests: add F3 dependencies

* vdc, bridge-domain tests

* tested on n6, n7-non-F3

* Fix vxlan_vtep_vni suppress_uuc prop (#341)

* Readme.md changes for itd_service (#346)

* itd_service pre requisite

* cleanup

* cleanup

* review comment

* review comment

* review comment

* Add n8k reference to CHANGELOG

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* New overlay_global behaviors (#360)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Remove vsh code (#361)

* Fix cisco_aaa* 'TACACS+ group delete denied, group is in use' issue (#362)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Fix cisco_tacacs* 'TACACS+ group delete denied, group is in use' (#363)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Fix netdev tacacs* 'TACACS+ group delete denied, group is in use' (#364)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Add setup/cleanup steps

* Fixed merge issue

* Add noop beaker test

* This is a dummy test for use during CI development

* Move noop.rb to base dir

* Munge events value 'false' to 'size_disable' (#366)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`.

This change munges the manifest value of `false` to `size_disable`.

* Ospf bfd for interfaces (#367)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* bfd added to router ospf vrf

* bfd_per_link added to interface_portchannel

* add bfd and network to int ospf

* add bfd echo to intf

* changelog

* doc

* Remove get_vshell_cmd calls (#368)

* L3 PIM-on-VRF-intf beaker fix (#369)

* ip pim sparse-mode was failing to nvgen during the test
  * Factors: a) the intf is in vrf 'test1'; and, b) 'test1' has not been instantiated yet
  * Normally these forward-references are not a problem but the new DME-based PIM cli is silently rejecting it because the vrf is not instantiated
  * For puppet it's not unreasonable to require a pre-instantiated vrf, and since this change only affects our beaker test I'm just going to update the test. The PIM team did say they would reconsider raising an error for this, or better yet just create the pim cli object regardless of vrf-instantiation state.

* Also fixed a cleanup issue for dot1q sub-ints.

* Tested on N9-I5

* Add Ospf properties for interfaces (#371)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* Fix beaker test bug (#372)

* bug fix for interface_portchannel beaker test (#373)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Removed, no longer needed

* Remove broken snmp_user XR support (#374)

* Add agent_probe to utility.lib (#375)

* `feature vn-segment-vlan-based` is not supported on some n3k's

* Added a simple helper method to test for h/w support; the result is then used by `unsupported_properties` to update the test cases

* Tested on n3k(3048), n7k, n9k

* Add f3 utility for n7 bkr tests (#376)

* Tested on n7k

* Fix half/full in test_duplex (#377)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* This fix is a little trickier than the NU fix because the output from puppet resource is 'raw' whereas the NU output is a pre-processed hash of capabilities; thus we have to be careful not to munge the vsh or puppet resource output.

* Tested on n3048

* Update service provider beaker test to work in guestshell (#378)

* Select service based on OS family

* Update fail_test message

* Add teardowns to beaker (#379)

* f3 handling for test_vrf (#380)

* f3 handling for test_vrf

* N7k setup/cleanup when missing F3 cards

* New `image?` method for checking image version pattern; used as test for unprops

* New `remove_all_vrfs` method that uses `test_get`/`test_set`; this is much faster than removing vrfs one at a time

* Remove :description image check

* Remove redundant cleanup

* f3 setup/teardown for vrf_af

* f3 setup/teardown bridge-domain

* f3 setup/teardown for encap

* bkr setup/teardown cleanups

* f3 setup/teardown for interface_svi

* f3 setup/teardown for service_vni

* f3 setup/teardown test_private_vlan

* f3 setup/teardown for vxlan_vtep*

* f3 setup/teardown for fabricpath_topology

* setup/teardown cleanups for cisco_itd_device_group_node

* beaker fix for resilient and symmetry non support on n3k (#381)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* setup/teardown for bfd_global

* setup/teardown bridge_domain

* setup/teardown acl

* setup/teardown bgp_af

* setup/teardown cisco_pim

* Convert test_fabricpath_global to new syntax

* Setup/teardown test_interface_L3

* setup/teardown test_interface_private_vlan

* Convert test_interface_channel_group to new syntax

* Convert test_interface_portchannel to new syntax

* setup/teardown for test_itd_service

* setup/teardown cisco_ospf_area*

* setup/teardown cisco_interface_ospf

* setup/teardown cisco_ospf_vrf

* Bad cleanup test_itd_service

* Convert test_command_config to new syntax

* better cleanup for bfd

* setup/teardown for test_bgp

* setup/teardown test_bgpaf

* better cleanup for pim

* setup/teardown test_bgpneighbor

* Better remove_all_vlans

* setup/teardown test_bgpneighboraf

* ospf_vrf cleanup should remove feature bfd

* setup/teardown test_stp_global

* setup/teardown test_bgpneighbor*

* better cleanup test_interface_L3

* better cleanup test_interface_ospf

* setup/teardown test_interface_portchannel

* setup/teardown test_interface_stp

* setup/teardown test_interface_bdi

* setup/teardown test_evpn_vni

* Convert test_vpc_domain to new syntax

* setup/teardown test_itd_device_group

* Convert test_overlay_global to new syntax

* Rel140/refactor package tests (#382)

* Refactor beaker package tests

* Remove unused code

* Rubocop fix

* Uncomment filename

* Add ensure_prop_override setting

* Rubocop fix

* Fix test_itd_service

* The cleanup in the dependency manifest was turning off 'feature itd' but that needs to be re-enabled in order to configure the itd device-group dependency

* beaker: Remove raise_skip call from summary checker

* test_interface_ospf dependency fix

* Add :array opt to test_get bkr utility

* Enable yum package testing in guestshell (#384)

* Initial gs package test support

* Minor refactoring

* Add camden i2.1 patch details

* Use specific yum patch for camden fcs

* Separate native and gs test flow

* Remove ensure absent in manifest_props

* Enable additional releases

* I5 patch fix

* Use single workflow for gs and native

* Convert test_snmp_server to new syntax (#385)

* Convert test_snmp_server to new syntax

* packetsize was failing on n7k so I just rewrote the test to use the new format

* tested on n7k,n9k-I5

* Fix pktsize cleanup

* Rename test_package.rb -> test_package_patch.rb

* Converted the old style tests to new syntax. (#386)

Most of these are straightforward changes. The package test is complicated on native since third-party rpms require setting up a yum repo, but I set up the test to do the repo init via puppet so we actually get a bit more coverage this way.

* Tested on N5,N7,N9-I5 using native/GS/OAC

* utilitylib: Restore tests[id][:resource]['ensure']

I pulled this out by mistake with this commit:
  2641c7a#diff-e0883d3270eb11e5d50fcdc5c4f83003L603

* test_interface_ospf: Fix process dependency

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* test_interface_ospf: Fix process dependency (#388)

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* Add log.error to beaker search_pattern

* When test_resource fails it just displays what it's expecting to find but it doesn't show what the current output was (which often helps with troubleshooting). This just includes the output when there's a failure.

* Add titles for bgp vrf beaker tests

* Suppress fib pending fix (#387)

* Generalize the method for checking nexus images

* Fix suppress fib pending for non-I5 images

* Clean up image check and post-merge leftovers

* cisco_interface enhancement (#389)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* Add'l cleanup for test_interface_ospf

* Fix id bug

* Replace skip_nexus_i2_image() with skip_nexus_image() api call (#390)

* Skip dns provider test instead of error

* Remove commented out call to fail api

* Update test_harness_dependencies for test_interface_ospf.rb (#393)

* Fixed rubocop errors

* Remove debug code

* Dhcp Relay Global (#392)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* Remove packet_size prop testing for I2 and I3 images

* cisco_interface beaker test (#394)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* event_history_periodic changes for bgp (#395)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* fix bgp for event_history

* move facter to provider

* beaker for event_history_periodic

* documentation

* review comments

* review comments

* bgp event_history (#400)

* fix bgp event-history

* beaker changes

* doc and manifest

* review comments

* manifest review comment

* Rel141/lacp suspend (#401)

* Fix lacp_suspend_individual property issue in evergreen

* Remove unneeded test_set call in test_interface_portchannel.rb

* Update README.me with lacp_suspend_individual caveat

* Futher clarify caveat for lacp_suspend_individual property

* Futher clarify caveat for lacp_suspend_individual property

* Test non-default value for n3k

* fix vrf beaker (#402)

* Remove comment that no longer applied with the latest node utils gem

* Scrub N8k References

* hsrp_global and interface hsrp (#404)

* hsrp global new provider

* hsrp interface

* beaker of intf_hsrp

* move int_hsrp to int

* documentation

* Rel150/n8k n9kf rebranding (#406)

* N8k -> N9K-F changes

* Fix puppet module function name

* Remove old README doc

* Update N9k-F Module Version

* Additional N8k -> N9K-F updates

* Refactor platform_fretta function to use os_release fact

* Update platform_fretta function comments

* Fix image version check

* Skip privte vlan tests on n9k-f

* Skip cisco_itd tests on n9k-f

* Skip private vlan tests on n9k-f

* Skip cisco_vpc tests on n9k-f

* Anchor n9k platform check

* Update platform regexp to use correct packet size for fretta

* Rel150/product tag (#407)

* Add product_tag helper method

* Fix bug in product_tag api

* Update CHANGELOG.md

* Interface HSRP group (#405)

* hsrp global new provider

* hsrp interface

* beaker of intf_hsrp

* move int_hsrp to int

* documentation

* hsrp group fixes

* fix array issue

* add validations

* demo manifest

* beaker

* documentation

* n8k to n9k-f

* review comments

* fix event_history for fretta

* fixes for review comments

* readme change

* more comments

* Rel150/atherton fretta fixes (#409)

* Handle atherton nxapi double quotes

* Handle atherton nxapi double quotes

* Handle atherton nxapi double quotes for tacacs

* Make regexp in nexus_image method more flexible

* pim and interface bfd (#410)

* pim bfd

* doc

* Update CHANGELOG.md

* n7k atherton hsrp (#411)

* pim bfd

* doc

* fix n7k atherton hsrp

* review comments for doc

* review comments for doc

* Add ('--') separator for /bin/nsenter example.

Resolves #413

* Update Copyright date

* fix the case sensitive issue for int_hsrp_group (#416)

* cisco route map (#418)

* pim bfd

* doc

* fix n7k atherton hsrp

* review comments for doc

* review comments for doc

* partial new code

* rest of the code

* manifest

* fix get issue

* fix few errors in manifest

* fix manifest

* fix few issues

* fix next-hop sets

* fix manifest

* fix few issues

* fix vlan string munge

* beaker tests

* fix manifest

* fix beaker

* fix case sensitivity for int_hsrp_group name

* remove downcase from provider

* fixes for fretta

* doc

* remove 2 props from I4 code

* review comments

* review comments

* fix doc

* review comments

* add validate for multicast props

* route-map provider (#421)

* pim bfd

* doc

* fix n7k atherton hsrp

* review comments for doc

* review comments for doc

* partial new code

* rest of the code

* manifest

* fix get issue

* fix few errors in manifest

* fix manifest

* fix few issues

* fix next-hop sets

* fix manifest

* fix few issues

* fix vlan string munge

* beaker tests

* fix manifest

* fix beaker

* fix case sensitivity for int_hsrp_group name

* remove downcase from provider

* fixes for fretta

* doc

* remove 2 props from I4 code

* review comments

* review comments

* fix doc

* review comments

* add validate for multicast props

* add validate for multicast props

* Fix Chrun: console and vty config #417 (#422)

* Strip \r characters

* Add testcases to validate config with ctrl chars

* Remove puts and add inspect to debugs

* Add cleanup before next test

* Refactor ctrl character pattern and test

* Remove puts statements

* Add load-interval props to cisco_interface (#425)

* add load-interval attribs to interface

* clean up changelog

* review comment

* fix double quotes issue for passwords (#426)

* add load-interval attribs to interface

* clean up changelog

* review comment

* double quote string cleanup

* review comments

* fix backspace issue for dhcp (#428)

* Feature/upgrade services (#427)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Feature/upgrade services (#429)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Move source_uri validation to provider

* remove all route maps after beaker test (#431)

* remove all route maps after beaker test

* review comment

* Feature/upgrade services (#430)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Move source_uri validation to provider

* Added image_version proc and ability to process '()'

* Fix rubocop errors

* Add new test file for cisco_upgrade resource beaker_tests/cisco_upgrade/test_upgrade_idempotence.rb

* Running cisco_upgrade tests on n3k,n9k only

* Update README with references to the new cisco_upgrade resource

* Update README.md

* Add demo manifest for cisco_upgrade

* Add new manifest for cisco_upgrade

* Added 'cisco_upgrade' to changelog

* Update Support Table for cisco_upgrade

Add Release for Fretta and update N9K/N3k release to camden 2e

* Minor changes to README.md

* Update README.md

* Minor changes to documentation

* Update version -> 1.6.0

* Update CHANGELOG.md

* Update metadata.json

* Feature/upgrade services (#433)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Move source_uri validation to provider

* Added image_version proc and ability to process '()'

* Fix rubocop errors

* Add new test file for cisco_upgrade resource beaker_tests/cisco_upgrade/test_upgrade_idempotence.rb

* Running cisco_upgrade tests on n3k,n9k only

* Update README with references to the new cisco_upgrade resource

* Update README.md

* Add demo manifest for cisco_upgrade

* Add new manifest for cisco_upgrade

* Added 'cisco_upgrade' to changelog

* Update Support Table for cisco_upgrade

Add Release for Fretta and update N9K/N3k release to camden 2e

* Minor changes to README.md

* Update README.md

* Minor changes to documentation

* Replace output with stdout.chomp for facter call

* Fix radius_global_provider_defaults expected reponses (#434)

* Update radius_global_provider_defaults.rb
mikewiebe pushed a commit that referenced this pull request May 31, 2017
* Update CHANGELOG.md

* version may be absent on 'snmp-server host' (#420)

* Ospf Area (#422)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* Condense vlan configuration and fix teardown error (#426)

* test_aaa*: shorten class & testcase names

* test_interface*: short class & testcase names

* modify/delete some repetitive tests

* tested on n9-i4

* Add feature ospf enable (#428)

* test_pim_group_list: class/testcase renaming

* Tested on n9-i4

* test_snmpcommunity: short class/testcase names

* snmpuser: dummy_user var does not exist

* YANG JSON support for gRPC client (#425)

* Added support for setting/getting YANG config

* revert

* skip all tests on nexus

* cleanup

* method name change

* fixed rubocop errors

* Changes based on feedback

* removed blank line

* test_snmpuser: shorten testcase names

* test_tacacs_server_host: class/testcase name changes

* minitest: shorten class / testcase names

* Added IOS XR support for snmp_user

* Refactored snmp_user

* Updated test_snmpuser.rb

* Fixed NXOS issue with snmp_user

* Updated test_snmpuser.rb for NXOS

* Update docs for XR + small fix (#431)

* Resurrected XR doc. Fixed constant reference.

* split line that was too long

* removed whitespace

* Fixed 6.0.0 version number.

* changes based on review

* Refactor test_snmpserver (#430)

* Refactor test_snmpcommunity

* Shortened class/testcase names
* Removed redundancy by combining several test sections into a single test
* Added validate_property checks

* Tested on n9-i4

* remove comment line

* implement tacacs_global to match radius_global (#429)

* Add nssa support to ospf_area (#432)

This PR is for router_ospf_area provider which includes nssa properties.
All tests pass on on platforms except on n8k.
On n8k, commands like "area nssa default-information-originate" and "area nssa default-information-originate route-map " are not getting configured properly after we reset nssa and due to this the relevant tests failed. Bug is filed on nxos platform and skipping these tests only on n8k.

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* Added support for retrieving operational data via gRPC/YANG (#433)

* Added show_running_yang utility.  Allow retrieval of operational yang data.

* Added show_running_yang utility.  Allow retrieval of operational yang data.

* Updated changelog.  Fixed comment.

* Fixed rubocop error

* Removed extra space.

* ospf_area: Fix hash in nssa_set (#434)

This PR is for changing the nssa_set method in the ospf_area NU due to the review comments on the puppet side. This simplifies the previous version.

Also changed authentication 'clear_text' to 'cleartext' to keep consistency among all the other providers.
Chris has the context about this PR and so it is better if he reviews this.

* Add feature ospf enable

* review comments

* Add ospf_area_vlink (#436)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* first commit

* test code for vls

* test code for vls

* add more tests

* auth added

* cleartext added

* authentication_key_pw added

* message_digest_key added

* default for key_id

* comments add

* CHANGELOG fixed

* comment added

* review coments

* fixes to tacacs_global (#437)

* Rubocop fixes for PR 435 (#438)

* Fixed various XR minitest errors/failures.

* Rubocop fix for PR435

* pvlan_mapping fix for n8k (#439)

* partial code commit, no test yet

* partial testing

* range added

*  fix range

* fix default cost

* Added comments

* other method add

* review comments

* partial review comments fixed

* partial review comments fixed

* fix auth and stub

* All review comments fixed

* bug ID added

* nssa translate added

* nssa properties added

* comments added

* route-map default is empty

* skip few tests for n8k due to bugs

* Review comments

* first commit

* test code for vls

* test code for vls

* add more tests

* auth added

* cleartext added

* authentication_key_pw added

* message_digest_key added

* default for key_id

* comments add

* CHANGELOG fixed

* comment added

* review coments

* fix for pvlan_mapping for n8k

* interface_ospf NU fixes (#440)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Merge release_1.3.1 --> develop (#454)

* Add 8K to BGP wait_for_process_initialized()

* Add 8K to OSPF wait_for_process_initialized()

* Fix for n8k vrf context

* fix comment

* Remove skip for CSCuz44696

* fix vni for all supported platforms

* Fix minitest for aaa feature

* yaml fix

* Update version.rb

* Utils.normalize_range_array

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

* The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* There's also a method that breaks the ranges down into individual elements so that delta_add_remove can add or remove specific elements on the switch.

* I have a related commit for Puppet on the way.

* Tested on n9k

* Property mapped_vni fix for n5|6k

* private_vlan_association minitest fix

* Updated result values to reflect that API now uses Utils.normalize_range_array, which summarizes the ranges.

* The rest is just cleanup, ie removed the else clause since the if block does a return.

* Tested on n3,n5,n6,n7,n8,n9-I3

* comment updates only

* Refactor yaml to use default_only

* Error condition for l2vpn added

* Minor test code cleanups

* Add basic filter to Interface.filter

* Get rid of interfaces_id method

* shorten test method names in test_interface_private_vlan

* tested on n9

* Simplified yaml entry

* process_initialized is included for n8k

* Fix negotiate auto invalid skips (#404)

* Condense negoitate test code and fix invalid skips

* Remove debug code

* Update aaa_authentication_login_service.rb

* interface: private_vlan refactor

* There were a few errors with the original implementation. As I worked through this I found that it made sense to rewrite many of the methods to use the new range conversion utilities, and with so many functional changes we decided to take the opportunity to shorten the property names. Since the original code was already released with 1.3.0 we decided to just deprecate them.

* Created `DEPRECATED.yaml` and `interface_DEPRECATED.rb` for the original code. The setters will raise a warning if used, which includes the name of the new property to use. I ran the original test_interface_private_vlan tests against the deprecated code and they still pass, but then updated the test file to use the new methods. This means that going forward the deprecated methods will not have any tests run, and any issues found will not be fixed.

* Related puppet fixes are in the works.

* Tested on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* switchport_pvlan_mapping_trunk needs to be a multiple

* My first pass at this code missed that this property supported multiple occurrences
  * Added a delta_hash method for trunk
  * Changed `pvlan_range_delta` to a single-caller method for `switchport_pvlan_mapping` since it's no longer shared with the trunk method
  * Fixed the minitest

* Passes on n3-I4,n5,n6,n7,n8,n9-I2,n9-I3

* Move svi pvlan test into test_interface_svi.rb

* Tests pass on all NX platforms

* Move deprecated keys into own hash

* This is just a minor cleanup to make this simpler to remove later on

* Update comments in DEPRECATED.yaml

* change private_vlan to pvlan

* changelog

* fix for context

* Change deprecation warning msg

* Change deprecation warning msg

* pvlan_mapping should always return array

* This property allows input as string or array. The getter was returning default as [] and non-default as String - which forces special handling in puppet's insync? method - so I changed it to always return an array. This way we don't need to override insync? at all.

* Also moved the pvlan_mapping test out of the svi file. While it does only apply to svi interfaces it seems to fit better with the other interface-related private-vlan tests.

* Tested on n5,n7,n9-I3

* Add requires for DEPRECATED providers

* Symptom: Noticed a corner case where changing a deprecated file on the device but not changing the inheriting file (I updated interface_DEPRECATED.rb but not interface.rb) caused the following error:

```
Linux# puppet agent -t
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Facter: error while resolving custom fact "cisco_node_utils": uninitialized constant Cisco::NodeUtil
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: already initialized constant Cisco::PVLAN_PROPERTY
/opt/puppetlabs/puppet/lib/ruby/gems/2.1.0/gems/cisco_node_utils-1.3.1/lib/cisco_node_utils/interface_DEPRECATED.rb:29: warning: previous definition of PVLAN_PROPERTY was here
```

* Analysis: Looks like facter caches the provider files. I found that making a whitespace change in interface.rb was enough to trigger the cache clear for that file and it avoided the error. But the real problem is that the deprecated providers do not have a require for 'node_utils', so just needed to add those to avoid this problem.

* Also moved PVLAN_PROPERTY hash within the class to avoid the re-definition warning. This is probably not necessary but it's cleaner.

* Also found that `set_value` didn't get included for `switchport_mode_private_vlan_trunk_promiscuous` when I copied the file contents over to DEPRECATED.yaml, so it's there now.

* Tested on n9k-i3

* Update interface_DEPRECATED.rb

* Update vlan_DEPRECATED.rb

* virtual_service and system_image yaml fix

* Fix yaml validation error

* Addressed PR comments

* Remove hardcoded tacacs server reference

* Interface shutdown property fix

* Update test_interface.rb

* switchport disable is broken

* Broken by #406

* Tested on n9-i3

* test_interface_private_vlan.rb: /private_vlan/pvlan/

* The vlan object still referenced the old names

* Tested on n9-I3

* test_interface* minor cleanups

* method name changes only for the most part

* tested on n3-I4

* yum package manager fixes

* Removed debug

* Remove trailing whitespace

* Do not track tacacs server info

* Add full relative path to tacacs server info

* Test if tacacs server is valid

* Add relative path of yaml file

* Refined the error message for invalid server

* Pim.pims fix for feature disabled

* The global nature of the pim resource means that an object will be created for each vrf regardless of state; however, this meant that objects were getting created even when feature pim was disabled, causing puppet agent/resource to to raise an error whenever the getter was called.

* Tested on n7

* Add N8k references

* Handle no virtual-services installed case

* vxlan and pvlan fix

* Remove delta check for cpu utilization (#421)

* Add 8k support to CHANGELOG

* Switchport trunk allowed vlan now accepts 'vlan add' lines (#423) (#441)

* Fix regexp to only accept vlan ranges

* Trunk allowed vlan now handles 'vlan add' lines

* test_evpn_vni:route_target_both: I2 vs I3,I4,I4+ (#442)

Badcodefix: #287

* The previous fix should have limited route_target_both testing to just I2 images; instead it did the reverse.

* Tested on n9-i2,n9-i3,n9-i4,n9-i4+

* Fix error due to time zone difference (#443)

* Fix suppress-fib-pending lib and test code (#445)

* Remove testing of vrf context and fix default test

* Fix broken yaml

* Merge default test code into main testcase

* Snmp packet_size fixes (#446)

* Snmp packet_size fixes

* Add n8k

* Fix last_reset check for platform (#444)

* Fix cannot disable local issue (#447)

* New default for vxlan_vtep: holddown (#448)

* Tested on n9k-e_dev
  * Minitest passes
  * Beaker passes

* Fix auth method local cleanup (#449)

* Refactor aaa local auth removal (#450)

* Refactor aaa local auth removal

* Remove whitespace

* Remove unneeded test steps (#452)

* New overlay_global behaviors (#451)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Prevent removal of method local on unsupported platforms (#453)

* Missed merge conflict

* Add noop test for CI dev use

* Munge 'no event-history events' to size_disable (#456)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`

This change munges the `no event-history events` to `size_disable`
in order to handle behavior changes between different nxos releases.
This code change should be backwards compatible.

* Remove broken xr snmpuser support (#459)

* Remove broken xr snmpuser support

* test_snmpuser: shorten testcase names

* Ospf bfd for interfaces (#457)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* add bfd to router ospf

* add p2p type to int ospf

* ad bfd to interface_ospf

* test file fix

* test file fix

* clean code

* bfd per_link added to int po

* bfd echo added to interface

* bfd echo added to interface

*  fix p2p

* test code enhanced

* changelog

* review comments

* Update CHANGELOG.md

* convert symbol to string

* bfd_echo similar to vtp

* review comment

* review comment

* Scrub XR references from doc. (#458)

* Scrub XR references from doc.

* Scrub XR references from doc.

* Ospf parameters for interfaces (#460)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* added pri, tx delay, shut and mtu to int ospf

* changelog

* test_vpc needs rescue for incompat intf

* test_vpc needs rescue for incompat intf (#461)

* Minitest bug fixes (#462)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* added pri, tx delay, shut and mtu to int ospf

* changelog

* bug fixes

* remove test_last_reset

* Fix remove aaa local on n3k (#464)

*  Minitest: Handle N7k F3-features w/o compat LCs (#463)

* test_vpc needs rescue for incompat intf

* Handle N7k F3-features w/o compat LCs

* The vrf_af route_target tests were failing because feature nv overlay failed - because our n7k does not have an F3 linecard:

```
 1) There are some features that refuse to load unless the VDC is
    limited to F3 only, but they will actually load if the config is
    present, despite the fact that there are no physical F3s.
 2) We have some tests that need these features but don't need interfaces.
```

* Solution: Enable the vdc config for F3 but don't fail if the physical LC is not present
  * Prior to this solution I had created a couple of methods to find an appropriate interface based on the feature-to-LC requirements. This works but is only useful for features that also require an interface (unlike the vrf_af test). Eventually I would like to remove the other one-off methods (e.g. `fabricpath_testenv_setup`, `vxlan_linecard?`, etc) that do similar functions and convert the callers to use this common one instead. Since there are no current callers for it I just commented it out.

* Tested on n7k (no F3 card) and N9K.

* /if-else/case/

* MT: Fix snmpuser teardown loop (#465)

* test_vpc needs rescue for incompat intf

* MT: Fix snmpuser teardown loop

* MT: portchannel: n3k_in_n3k bad pattern

* Fix half/full in test_duplex

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* Tested on n3048

* Fix half/full in test_duplex (#466)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* Tested on n3048

* minitest fixes for vtp and resilient mode (#467)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* fix for symmetry not supported on n3k (#468)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* test_interface_sw: check for fex compatibility (#469)

* f3 fix for test_feature

* Refactor yum patch test (#470)

* Refactor yum patch test

* Update failure message

* Update failure message

* Addressed review comment

* Rubocop fixes

* f3 after_tests for test_overlay_global

* Revert "f3 after_tests for test_overlay_global"

This reverts commit 612514e.

Bad codefix

* ciscotest: first_or_last_teardown (#471)

* f3 setup/teardown on N7k's can be very time consuming (60+ seconds) so it's expensive to do this for every testcase

* This hack limits the vdc teardowns to the first and last testcase (f3 setup is ignored if it's already set to f3)
  * We have to check for first because a test may use -n to limit the run to a single test

* Minitest.after_run is not really an option for this: it's designed to run at the end of an entire test suite and actually runs at_exit, at which point we no longer have access to our ciscotest methods.

* better teardown for test_feature

* f3 setup/teardown for test_vxlan_vtep_vni

* f3 setup/teardown test_bridge_domain_vni

* f3 setup/teardown for test_vxlan_vtep (#472)

* Also added a rescue/retry for vdc limit-resource

* setup/teardown cleanups for test_vlan

* narrowed the interfaces method in ciscotest to exclude dot1q sub-ints

* moved the mt-full test from test_vlan_mt_full.rb into vlan.rb and removed entire test file

* Tested on n5, n7, n9

* f3 setup/teardown test_encapsulation

* n7k f3 fix for test_router_bgp/route_distinguisher

* setup/teardown fix test_vlan_private

* test_yum: skip for no pkginfo filename

* assert for test_yang

* noop.rb: change skip to assert

* Rel140/refactor yum (#473)

* Refactor yum to cleanup patches properly

* Enable additional releases

* Add retry loop for Yum.remove

* Modify regexp

* Reduce tries from 50 to 20

* Refactor retry loop

* Unpdate n9k to allow local auth removal

* snmpuser minitest fix (#475)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* changelog

* revert Changelog

* fix for snmpuser 8 char limit

* test_fabricpath_global cleanup fixes

* Tested on n5,n7,n9-i2,n9-i5,n3

* test_vxlan* cleanup fixes

* tested on n3,n5,n7,n9-I2,n9-I5

* test_interface_switchport test cleanup

* test_interface_switchport test cleanups

* test_aaa_authentication_login cleanups

* Failing when stale configs present on testbed; this change should remove any leftovers

* Tested on n3-I2,n5,n7,n9-I5

* Add storm_control and dhcp relay props for interface (#474)

* Add feature ospf enable

* review comments

* Fix interface_ospf

* bug fix for vtp

* bug fix for resilient mode

* version number fix

* review comment

* Fix for symmetry not supported

* review comments

* review comment

* storm-control and dhcp relay for intf

* exclude 2 storm control props on n7k due to hw limitation

* comments added

* changelog

* typo correct

* cleanup unsupported tests

* review comments

* remove features added during the minitest

* Add tacacs-server key cleanup

* removing vlan name negative tests and fix dhcp relay munge (#476)

* removing vlan name negative tests

* munging issue fixed

* Add defect/image check to minitest (#477)

* Add defect/image check to minitest

* Bails out of testcase if image matches pattern; no skip, no assert
* Prints 'NOOP' message and any add'l helpful text, e.g.:

```
Node under test:
  - name  - n5k-136
  - type  - N5K-C56128P
  - image - bootflash:///n6000-uk9.7.3.0.N1.1.bin

TestVrf#test_name_zero_length = 4.88 s = .
TestVrf#test_route_distinguisher = 11.79 s = .
TestVrf#test_remote_route_filtering = 2.01 s = .
TestVrf#test_name_too_long = 1.93 s = .
TestVrf#test_vpn_id = 2.07 s = .
TestVrf#test_vni = 2.85 s = S
TestVrf#test_mhost = 1.96 s = .

TestVrf#test_description -> NOOP <- [CSCuy36637: Cannot remove description]
TestVrf#test_description = 2.91 s = .
TestVrf#test_collection_default = 1.01 s = .
TestVrf#test_create_and_destroy = 2.89 s = .
TestVrf#test_name_type_invalid = 1.05 s = .
TestVrf#test_shutdown = 26.73 s = .

Finished in 62.072465s, 0.1933 runs/s, 0.4189 assertions/s.
12 runs, 26 assertions, 0 failures, 0 errors, 1 skips
```

* /puts/Cisco::Logger/

* Remove timestamp noise from logger

* Enable nv_overlay_evpn fix (#478)

* skip_legacy_defect method

* Rework previous `defect?` method to do skip instead of return

* Tested on n3-I2, n5

* skip_legacy_defect for vtp

* Dhcp Relay Global (#481)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* skip_legacy_defect for snmpserver

* Dhcp Relay Global (#482)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Refactor test_snmpuser teardown

* portchannel_global n3k minitest fix (#483)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Fix minitest error

* Use valid type6 tacacs password

* Add skip_legacy_defect? for aaa, snmp and vlxan

* bgp event_history (#484)

* removing vlan name negative tests

* munging issue fixed

* add dhcp relay global props

* added a new prop and cleaned up names of props

* add destroy method

* doc

* review comments

* test code cleanup

* stop enabling dhcp feature

* Fix minitest error

* bgp event-history fixes

* review comments

* more review comments

* Remove require pry in test_snmpuser.rb

* Separate ace ipv4 and ipv6 ttl tests

* Update sample patch names for I5 images.

* bgp event_history (#486)

* bgp event-history

* fix event-history props

* doc

* Update expected error class in yum test

* bgp send-community fix (#487)

* fix for send_community

* fix bfd echo intermittent failure

* review comments

* review comment

* fail api raises RuntimeError, update test

* Initial upgrade services

* Remove white space

* fix for send-community (#488)

* Fix test_lacp_suspend_individual to address behavior change (#489)

* Fix test_lacp_suspend_individual to address behavior change

* Remove pry debug

* Rel141/lacp suspend (#490)

* Fix test_lacp_suspend_individual to address behavior change

* Remove pry debug

* Refactor lacp_suspend_individual setter

* Addressed PR comments

* Update comment to be more accurate

* Update version from 1.4.0 to 1.4.1

* Fix/command config issue (#491)

* Fix 'no' commands won't apply if defaults don't nvgen

* Add 'nvgen' key to scale test hash

* Add ability to define setup config in test yaml file

* Add setup yaml test key support

* Update all tests to use scalar designation

* Initial refactor N8k --> N9k-F (#493)

* (POC) product_id qualifier for 8k rebrand

* This is just a POC diff for adding add'l checks to determine the product_id. Do not merge this code.

* The requirement here is to create a unique product_id for switches that share the same product_id but have a fundamental difference; e.g.
  * 8k may only be differentiated by the presense of 8k fabric modules
  * n3k-in-n9k-mode will have the same product_id as a "regular" n3k

* N9K-F enablement

* hsrp_global and interface_hsrp providers (#492)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* fix for event history on n9k-f (#495)

* Remove unsupported n9k-f feature

* Fix node test for fretta

* Fix test_platform regex

* Fix n9k fretta regexp

* Enable yum patching for fretta_camden

* Enable I6 release patching

* interface hsrp group (#496)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* hsrp group ip

* fix hsrp ip

* fix hsrp_groups

* fix name

* fix ipv4_enable

* fix priority

* fix auth

* fix ipv6 autoconfig

* documentation

* fix auth

* fix auth password

* review comments

* fix timers with regex

* Update platform_to_filter api for n9k (#497)

Update to correctly match fretta or non-fretta based n9k platforms but not both.

* Add short tag test api (#499)

* Update CHANGELOG.md

* fretta changes for event history bgp (#498)

* hsrp global provider

* traling space removed

* interface_hsrp

* fix args issue

* hsrp group partial

* fix auth

* more props for hsrp group

* exclude interface_hsrp_group

* changelog

* review comments

* changelog

* travis fix

* change n8k to n9k-f

* hsrp group ip

* fix hsrp ip

* fix hsrp_groups

* fix name

* fix ipv4_enable

* fix priority

* fix auth

* fix ipv6 autoconfig

* documentation

* fix auth

* fix auth password

* review comments

* fix timers with regex

* fix version check for fretta

* Fix fretta for event history using product_id

* Rel150/atherton fretta fixes (#500)

* Fix vrf delete in progress issue for domain_name

* Fix fabricpath loadbalance yaml entries

* Disable switchport on portchannel test for bfd echo

* Add missing n9k fretta exclude

* Raise deterministic error for yum install failures

* Update error class test

* pim bfd (#501)

* pim bfd

* fix pim ssm range tests

* review comment

* Rel150/atherton fretta fixes (#502)

* Fix vrf delete in progress issue for domain_name

* Fix fabricpath loadbalance yaml entries

* Disable switchport on portchannel test for bfd echo

* Add missing n9k fretta exclude

* Raise deterministic error for yum install failures

* Update error class test

* Fixes for atherton nxapi double quote behavior

* Enable bgp af properties for atherton

* atherton event-history skips (#503)

* pim bfd

* fix pim ssm range tests

* review comment

* n7k atherton event-history

* Update CHANGELOG.md

* n7k atherton hsrp (#504)

* pim bfd

* fix pim ssm range tests

* review comment

* n7k atherton event-history

* fix hsrp for n7k atherton

* New nxapi_structured infra features (#505)

* Initial vlan long name POC

* Update find logic

* Add nxapi structured yaml feature support

* Change get_value schema from string to any

* Update inventory.yaml entries to use new nxapi_structured infra

* Update README_YAML.md

Add new nxapi_structured features.

* Simplify inventory.yaml file

* Bug fix

* Fix rubocop failure

* Bug fix in drill_down_structured method

* Update test to check for Cisco::CliError

* Move validate_installed method inside begin_rescue block

* Remove debug code and cache_flush

* Add vrf vni support for fretta

* Flush cache for nxapi_structured get_config calls

* Delete README-pre-1.3.0.md

* route_map (#507)

* pim bfd

* fix pim ssm range tests

* review comment

* n7k atherton event-history

* fix hsrp for n7k atherton

* first commit for route map

* add match ip multicast

* Add match ipv6

* add match metric

* add route_map

* add vlan, length, mac_list

* evpn route type add

* fix platform specific excludes

* fix route-type multiple

* add some set properties

* add set metric

* add some set commands

* set intf, set aspath

* doc

* add set ip prorperties partially

* add set ip prorperties

* set community added

* set extcommunity partial

* set extcommunity cost

* fix some platform diff issues

* fix some platform diff issues

* fix some platform diff issues

* doc and rubocop

* skips for bugs

* changelog

* exclude for ospf_area added

* fix CHANGELOG

* minor error in load-share fixed

* maps nil check

* fix review comments and combine some properties

* match ip addr access fix

* quotes for arrays

* SNMP Community - Symbols Cause Churn (#508)

* Only flush cache for structured table data

* Fix typo

* Escape special characters in key_substitutor method

* Fix debug statementwq

* Revert "Fix debug statementwq"

This reverts commit 16a73a4.

* Revert "Escape special characters in key_substitutor method"

This reverts commit 0fbbe19.

* Refactor snmp community group to use structured output

* Refactor snmp community to use structured output for n3|9k

* Addressed PR comments

* fix itd ingress intf issue (#510)

* Add support for 7_0_3_I5_2 sample patches.

* Rel160/bug fix (#512)

* Fix infra bug

* Infra fix

* route_map test skip for dplus images (#513)

* fix itd ingress intf issue

* skip for 2 tests failing on dplus images

* Allow configuration of local nxapi session cookie (#514)

* Allow explicit nxapi session cookie config

* Refactor cookie code

* Update client.rb

* Update validate_cookie method

* Remove debug statements

* Update README.md

* Update cisco_node_utils.yaml.example

* Remove whitespace

* Replace Utils.add_quotes calls with asser_match

* Remove unused add_quotes method

* Add logic to handle EOFError (#515)

* Catch EOFError and retry

* Drop try count from 5 -> 2

* Fix install fex minitest

* Remove puts statement.

* Allows tokens to be passed to get_command

* Add tests and procs for install all nxos

* Update DOC to highlight that get_command can be tokenized

* Add YAML to specify params for upgrade

* Adding error handling and cleaning up code

* Reworked some TCs + Add new TCs

* Handle case when upgrade is run with booted image

* Add test_upgrade_boot_image

* Add Service to CHANGELOG.md

* Add TODO to upgrade scenario

* Update CHANGELOG.md

* Upgrade services (#516)

* Initial upgrade services

* Remove white space

* Allows tokens to be passed to get_command

* Add tests and procs for install all nxos

* Update DOC to highlight that get_command can be tokenized

* Add YAML to specify params for upgrade

* Adding error handling and cleaning up code

* Reworked some TCs + Add new TCs

* Handle case when upgrade is run with booted image

* Add test_upgrade_boot_image

* Add Service to CHANGELOG.md

* Add TODO to upgrade scenario

* Update CHANGELOG.md

* Add load-interval properties to interface (#517)

* Add load-interval properties to interface

* review comments

* added test cases for loopback and subintf

* remove test for n9k (#518)

* fix for double quotes errors for passwords (#519)

* remove test for n9k

* double quote string cleanup

* review comments

* Add command for upgrade_force

* Update upgrade to handle delete_boot and force upgrade

* Upgrade services (#520)

* Initial upgrade services

* Remove white space

* Allows tokens to be passed to get_command

* Add tests and procs for install all nxos

* Update DOC to highlight that get_command can be tokenized

* Add YAML to specify params for upgrade

* Adding error handling and cleaning up code

* Reworked some TCs + Add new TCs

* Handle case when upgrade is run with booted image

* Add test_upgrade_boot_image

* Add Service to CHANGELOG.md

* Add TODO to upgrade scenario

* Update CHANGELOG.md

* Add command for upgrade_force

* Update upgrade to handle delete_boot and force upgrade

* Add latest Camden and Dplus MR sample patches

* Remove whitespace (#521)

* Fix test_image_version

* Add is_box_online

* Enhancements to service.rb

Function box_online? added.
Modified upgraded? to check for config ready.
Add version check to 'upgrade'.
Handle 500 - Backend processing Error

* Enchancements added to test_service.rb

Added test for box_online?
Modified calls to Service.upgrade to include version
Increases retry to 5 in test_upgrade
Made test_upgrade_boot_image skippable in absence of yaml file

* Renaming files from service to upgrade

* Updating references of service to upgrade

* Renaming Service to Upgrade

* Updating CHANGELOG.md

* fix 1.6.0 issues (#523)

* Incorporated @mikewiebe PR comments.

- updated references of 'media' to 'uri'
- fail upgrade if uri is not bootflash
- replace shell_command with config to handle OAC

* Fix Rubocop error

* Upgrade services (#524)

* Initial upgrade services

* Remove white space

* Allows tokens to be passed to get_command

* Add tests and procs for install all nxos

* Update DOC to highlight that get_command can be tokenized

* Add YAML to specify params for upgrade

* Adding error handling and cleaning up code

* Reworked some TCs + Add new TCs

* Handle case when upgrade is run with booted image

* Add test_upgrade_boot_image

* Add Service to CHANGELOG.md

* Add TODO to upgrade scenario

* Update CHANGELOG.md

* Add command for upgrade_force

* Update upgrade to handle delete_boot and force upgrade

* Fix test_image_version

* Add is_box_online

* Enhancements to service.rb

Function box_online? added.
Modified upgraded? to check for config ready.
Add version check to 'upgrade'.
Handle 500 - Backend processing Error

* Enchancements added to test_service.rb

Added test for box_online?
Modified calls to Service.upgrade to include version
Increases retry to 5 in test_upgrade
Made test_upgrade_boot_image skippable in absence of yaml file

* Renaming files from service to upgrade

* Updating references of service to upgrade

* Renaming Service to Upgrade

* Updating CHANGELOG.md

* Incorporated @mikewiebe PR comments.

- updated references of 'media' to 'uri'
- fail upgrade if uri is not bootflash
- replace shell_command with config to handle OAC

* Fix Rubocop error

* Add debug logging and exclude unsupported platforms

* Remove merge conflicts

* Remove dublin yum package support

* Add missing commit step to yum workflow (#526)

* Increase dns domain create try counter

* Skip test_sys_def_svi_autostate in Atherton

* Remove pointless test test_name_long

* Add back test_name_long but remote error check step

* fix hsrp+bfd and pim_bfd (#527)

* remove all route maps after testing (#528)

* Update CHANGELOG.md

* Update CHANGELOG.md

* fix bgp neighbor & af issue with remote_as (#522)

* Fix similar vlan id issue (#530)

* Inital commit

* Update vlan.yaml

* Add similar id test and escape special characters

* Update copyright date

* Add LACP mode to interface_channel_group (#529)

* Add LACP support to interface_channel_group

* add new "mode" property
* add lacp feature enablement, copied from Cisco::Interface

* resolve rubocop offenses

* rubocop complaining about alignment for rescue block

* redundant begin

* rubocop not liking the rescue placement

* last fix for the rescue

* rubocop warnings preventing push, comment out offenses for now

* Fix regex for channel_group#, version change, etc

* regex getter for channel_group was incorrect and not matching the
group ID
* make channel_mode getter pull out the mode properly and ignore the
group ID
* change version to 1.5.2 so switch can differentiate versions (likely
this needs to be changed back by Cisco team)

* Rename prop to channel_group_mode, kept old cmds

* fix two style issues for quotes & line length

* Integrate refactoring as per pull/529

* much cleaner methods for get/set for the new mode property
* checks & balances put in place to remove and re-add the configuration
in the setter
* switch default mode of "on" integrated now as well
* @mikewiebe added minitest to confirm functionality; tested against n9k
@ 7.0(3)I4(2)

* Add lacp to feature, true-up regex for new modes

* kept the specific functions as they are and fixed up the regex for the
channel_group_mode. It now catches both static portchannels and
LACP-enabled modes via optionals in regex
* moved LACP feature enablement under existing Feature obj + cmd_ref

* Revert version.rb back to 1.5.0

* Feature to enable LACP not called correctly

* Tweak channel_group get

* uncomment out lines from test_snmpserver

* Handle version difference for development builds (#532)

* Handle version difference for development builds

* remove unnecessary split()

* Update copyright

* fixes for freeport issues (#533)

* fixes for freeport issues

* review comment

* fix review comments

* Rel160/yum (#534)

* Yum refactor

* More refactoring

* Add rescue for behavioral differnces

* Streamline try operations

* Update yum.rb

* fix deactivate commit

* fix yum package for dublin (#535)

* Patch fixes (#536)

* fix yum package for dublin

* fix remove method for yum

* skip yum tests for I2 and I3

* Update README.md

* Update LICENSE

* Update yum_package.yaml

* remove debug messages from yum (#537)

* eth int default (#538)

* eth int default

* changelog

* review comments

* Add missing vpc_domain boolean features (#540)

* Add two new bool props for vpc_domain provider

* Add ND synchronize prop for IPv6 VPCs

* Update changelog

* Update copyrights.

* Interface channel group (#541)

* fix channel_group mode

* fix mode

* changelog

* remove feature_lacp from yaml

* fix minitest errors (#543)

* Upgrade services (#544)

* Handle version difference for development builds

* remove unnecessary split()

* Update upgrade API and add 'package' API

Removing version check from upgrade API as the version property will be
deprecated.

Adding ‘package’ API which returns the nxos image installed on the
device.

* Modifying tests to handle new upgrade API

* Improving Error Handling for install command failure

* Update Documentation

* Move package api to get full path

* Exclude (#545)

* add version checks in yaml

* exclude clause check for new version

* fix ciscotest for regexp

* add doc

* return if val is same

* nv overlay remove for n3k

* vrf_af modify

* fix minor test case error

* fix white space issue in yaml

* add skip for default case

* add schema for os_version

* minor issue with interval fixed

* review comments

* (NETDEV-29) Enhance netdev NTP types (#542)

This commit enhances the existing ntp_config and ntp_server methods
and adds ntp_auth_key

ntp_config
 - authenticate
 - trusted_key

ntp_server
 - key
 - maxpoll
 - minpoll
 - source_interface
 - vrf

This commit adds ntp_auth_key

ntp_auth_key
  - key
  - algorithm
  - mode
  - password

* SPAN session provider (#539)

* Add new obj for SPAN session management

* starting with the test first; span_sesion.rb is incomplete at the
moment

* Add shutdown prop

* Addl tests + getter/setters for span_session

* Use has_key method for validating interface str

* Fix syntax error in span_session

* Fix failing test in lib/span_session.rb

* Fix failing check in test_span_session.rb

* Fix hash align offences

* Remove extraneous blank line

* Various updates/changes from PR feedback

* Update CHANGELOG, fix non-functioning test

* Add key-val to create & destroy

* Remove type in create cmd_ref

* Fix incorrect cmd_ref vars, correct setter calls in test

* Fix refute for removal test

* Add template to cmd_ref, fixes, revised test

* Add missing state key to destination set

* Attempt to fix failing interface-related tests

* Fix input validation for sources + helper method

* source_interface/vlan not iterating properly
* add valid_direction? helper method to validate span source directions (in/out/both)

* Fix span_session type getter

* Span session fixes:

* Bgp af aa (#547)

* first commit

* reset before set

* fix initialize

* minor bug fixes

* doc

* common methods moved to utils

* add comments

* comment clean

* review comments

* Addressed review comments and fixed a bug

* Add I5 MR3 Support

* update release process checklist

* Remove whitespace

* Remove git-flow setup info.

* version changed

* fix source_interface prop parent

* remove source interface as it is already there in previous releases

* skip for I4_6 and switchmode disabled for load_intervals

* adding skips for versions with issues

* release version numbering

* missing compare added in docs

* clean up the previous commit

* Fix grpc gem version to '1.2.5'

* add dplu6 for patch

* Update author list
mikewiebe pushed a commit to cisco/cisco-network-puppet-module that referenced this pull request May 31, 2017
* Added IOS XR support for tacacs_server

* Updated CHANGELOG

* Update CHANGELOG.md

* Added support on IOS XR for tacacs_server_group

* remove sync damage from demo_bridge

* Refactored network_interface provider. Updated tests and code to
support IOS XR.

* Matrix updates for overlay_global & network_trunk

* domain and search options are mutually exclusive

http://man7.org/linux/man-pages/man5/resolv.conf.5.html

* Remove source_interface_hold_down_time for 8k

* Collapse release_1.3.2 to develop

* cisco_bfd_global: new properties (#334)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* network_snmp ios_xr does not support global enable

* bgp_neighbor: add bfd (#340)

* manifest

* type file add

* provider file

* array types

* beaker

* add loopback int

* remove name

* fix manifest

* documentation

* comment

* Review comments

* Fix README

* Fix README

* add bfd to bgp_neighbor

* bfd prop

* documentation

* Fix BFD caveat

* Update CHANGELOG.md

* search_domain, tests platform agnostic (#343)

* modificatins for snmp_notification on IOS_XR

* test fixes for ios_xr snmp_notification_receiver (#338)

* Add test_get / test_set to command_config (#348)

* Add test_get / test_set to command_config

* Needed a way for beaker to query / set config that didn't have explicit resource support (e.g. disabling a feature)

* test_get is a simple get-only property that does a show running; callers set a filter to parse what they need:
    `puppet resource cisco_command_config 'cc' test_get='incl feature'`

* test_set is a simple set-only property:
    `puppet resource cisco_command_config 'cc' test_set='no feature foo'`

* Tested on n3,n5,n7,n9

* Bad regex in bkr test service_provider_nondefaults.rb

* Add beaker test_get / test_set

* config_find_remove() uses test_get to search for existing configs, then test_set to remove it.

* Fix the fabricpath tests which ran into an issue on n5k when cleaning up 'feature nv overlay' with command_config: Puppet resource removes the config but then immediately does a 'show runn' which gets a SAP timeout on the device itself and the test errors. Using the test_set setter instead of regular command_config gets around this problem because it's a "set-only" with a dummy test_set getter.

* Tested on n5,n7,n9

* test_get: add debugs, comments

* tested on n5

* Skipped tacacs provider test on IOS XR (#350)

* Refactor tests: aaa_group_tacacs (#351)

* Converted to new test syntax

* Tested on n9-i4

* Add cisco_ospf_area provider (#352)

This PR is for cisco_ospf_area provider. The properties do not include nssa and its associated properties. They will be added as part of another user story.

Since this provider becomes absent when all properties are set to default, cisco_pim model is followed for beaker tests.

All demo_manifests and beaker tests passed on all platforms.

Squashed commits:

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* Added IOS XR support for snmp_user (#353)

* Add nssa properties to ospf_area provider (#354)

* first commit

* fix issues

* remove comment

* Fix stub

* fix area to ipaddr or int

* small error

* beaker tests

* documentation

* review comments

* Update README.md

* Review comments about stub

* nssa

* small correction

* name changes

* fix manifest

* fix nssa_set

* include cmnutils

* beaker test added for nssa

* typo fix

* documentation

* fix docmentation

* fix README

* Fix review comments

* tacacs_global changes for ios_xr (#342)

* router_ospf_area_vlink: new provider (#355)

Adds virtual-link support

* Fixes for cisco_interface_ospf provider (#357)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* minor vrf name change

* to avoid annoying conflict with 'management'

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* Merge release_1.3.2 --> develop (#365)

* Add note on existing_str

* Refactor test_interface.rb into multiple files

* This test was trying to do too much; it became too large and unwieldy to use and troubleshoot.
* Refactor to use new test syntax (test_harness_run)
* File changes:
  *  deleted:    test_interface.rb
  *  new file:   interfacelib.rb
  *  new file:   test_interface_L2.rb
  *  new file:   test_interface_L3.rb
  *  new file:   test_interface_bdi.rb
  *  modified:   test_interface_capabilities.rb
  *  modified:   test_interface_stp.rb
  *  new file:   test_interface_svi.rb
  *  new file:   test_interface_private_vlan.rb

* renamed test_vlan_mapping.rb to test_interface_vlan_mapping.rb

* Only tested on n7k and n9k so far but there's a lot here and I wanted to get some eyes on the changes

* Platform tweaks for test_interface*

* test_interface: add skip_unless_supported plat checks

* Minor change to bail out of the test immediately if the platform does not apply

* test_interface_private_vlan: fix trunk assoc cleanup

* Found a bug on n9k where 'private-vlan association trunk' does not get cleaned up by 'default interface', which breaks this beaker test

* Created a workaround cleanup method that does 'no switchport'

* Tested on N9k-I3

* test_private_vlan: refactor, remove redundancies

* Refactored to use new test syntax; removed unnecessary/redundant tests and some that didn't test anything
* This test suffers from the same idempotency bug as the interface private-vlan code; it will require the same kind of fix

* Tested on n9k-I3, N7

* Bump version number.

* Add testing for switchport_autostate_exclude

* Remove old and redudant access_vlan tests

* Remove old style beaker tests

* normalize_range_array for puppet

This is the puppet counter-part to NU. The notes below are copied from: cisco/cisco-network-node-utils#400
The main difference between these is a default check in Utils.normalize_range_array and that there's no Utils.dash_range_to_elements since that's not needed in puppet.

* The motivation for this change was finding yet another array normalizer in the private vlan code so these changes are initially meant to address fixes there. IMO our range summarize methods were getting a bit long and difficult to maintain; these new methods will hopefully simplify things somewhat.

  * The main problem these methods are trying to solve is reconciling manifest inputs with getter results when there are overlapping ranges; e.g.:
  * '2-5, 9, 4-6'     needs to be ['2-6', '9']
  * ['2', '3', '4-6'] needs to be ['2-6']
  * ['2', '3', '4']   needs to be ['2-4']

* It's fairly easy to merge the ranges if they are actual ruby ranges instead of the dash-syntax ranges, so the new methods just convert to ruby ranges, merge, and convert back.

* Tested on n9k. Additional testing coming on the other platforms, as well well as demo, Readme, etc.

* bgp_af l2vpn

* Fix demo_bgp

* Fix additional_paths_install

* New beaker style vlan tests

* l2vpn/evpn support

* l2vpn/evpn support

* exclude n3k

* review comments

* Review comments

* cisco_interface: deprecate private_vlan*

* private_vlan refactor

* cisco_interface: private_vlan refactor

* Deprecated the private_vlan properties that were released with 1.3.0 and created new pvlan properties in their place.

* This is the companion to NU PR: cisco/cisco-network-node-utils#406

* Updated Type, Provider, Beaker, Demo, README, and CHANGELOG.

* Currently only tested on N7, N9-i3. Additional testing in prog.

* readme and changelog

* readme and changelog

* Update README.md

* pvlan beaker fixups for 6k

* The 6k cli is strict about requiring vlan associations before allowing interface vlan association; therefore I added the dependencies to the test. I need to rerun the test on all the platforms to see if the platform check needs to be tweaked.

* Only tested on n6 so far

* Minor demo_interface changes

* Added some private-vlan dependency resources

* test_interface_private_vlan: n3k platform fixes

* demo manifest as well

* tested on n3-i4,n9-i2,n5,n9-i3,n7

* test_interface_stp needs vlan cleanup

* tested on n9-i3

* Re-add n8k doc references

* Fix some N8k references

* Add N8k back to support table

* Remove extra property

* Fix spacing in rotate property

* anycast_gateway platform checks

* Restrict the anycast test to n9k only

* Tested on n3,n7,n9-i2,n9-i3

* test_interface_service_vni script fixes

* Some cleanup / setup was insufficient

* :non_default was not getting run

* This is only supported on n7k; tested on n7k.

* test_vrf: f3 dependencies

* N7k needs an f3-only vdc for route_distinguisher

* tested on n7

* test_vrf_af: add f3 dependency for 7k

* tested on n7k

* Update README-agent-install.md

* Update README.md

* test_vlan/test_private_vlan: add f3 deps

* Tested on n7

* test_vxlan_vtep*: add f3 deps

* Tested on n7

* Refactor package provider to use rpm - qip (#328)

* Replace regexp with rpm -qip

* patching demo updates

* Updated fail message

* Update demo_patching.pp

* Add back rpm filename regexp support (#329)

* Add back rpm filename regexp support

* Remove debugs

* Update README.md

* interface svi fix

* Remove explicit anycast config

* anycast-gateway-mac is a required dependency; a recent commit added an explicit call to the test file to set this up; BUT we already had existing code for doing this that was part of interfacelib.rb

* The interfacelib code was returning early because of /unless/if/

* Tested on n9-i4

* test_interface_L2 should reset sys_def_switchport

* This test sets the system default switchport state to true but it should reset it to false when it's finished.

* Tested on n9-i4

* test_vxlan_vtep_vni: suppress_uuc broken

* There was a platform exception that tried to add this property using the new test syntax; however this test file uses an older syntax.

* Added an nv overlay hw support check (my n6k does not support nv overlay)

* Tested on n6

* README-agent-install: doc cleanup (#330)

* README-agent-install: doc cleanup

* This doc has had a lot of misc updates in the past so I tried to streamline the content somewhat and organize the sections into discrete steps.

* A couple of things that need a closer look:
 * The RPM table may need updating to reflect the GS fix coming out any day
 * The auto-install section for cisco_node_utils gem is a little weak. I'm not sure if I referenced the correct pp file and used the right directory target.

* README-agent-install.md: Cleanup node-utils section

* README-agent-install.md: fix broken links

* Review comments addressed

* All addressed except for the GS RPM comment.

* README-agent-install: GS RPM v1.5 tested

* Add markdown syntax flags

* README.md cleanup for 1.3.2 (#335)

* Move Document Workflow Map to Documentation Guide table

* README: Move Limitations into Platform Support

* Add Legend & tables

* README: Update Usage section

* README: Move platform support section after resource ref tables

* README.md: minor text change

* URL change: /develop/master/

* Addressed remaining PR comments

* /develop/master/ URL fixup

* test_vdc: fix for non-F3 testbeds (#336)

* test_vdc: fix for non-F3 testbeds

* Updated this test to work with non-F3 N7k testbeds.
  * Initially set the VDC module-type to default state
  * Then set module-type to F3 and test
  * There's no great way to know which way to leave the module-type when this test completes, so:
    * Reset module-type to default for non-F3 testbeds since leaving it as F3 means the device won't have any usable interfaces
    * Noop for F3 testbeds so that it leaves their F3 still usable

* Tested on n6, n7-non-F3

* beaker tests: add F3 dependencies

* vdc, bridge-domain tests

* tested on n6, n7-non-F3

* Fix vxlan_vtep_vni suppress_uuc prop (#341)

* Readme.md changes for itd_service (#346)

* itd_service pre requisite

* cleanup

* cleanup

* review comment

* review comment

* review comment

* Add n8k reference to CHANGELOG

* command_config: undefined method 'previous' (#358)

* Symptom: Simple cc manifest with a faulty line of config:

cisco_command_config { 'interface':
   command  => '
     interface loopback42
     ipv6 pim foo
   '
}

When puppet agent runs the cc provider drops into a rescue which should first print out the parts of the config that were successfully processed and then do a raise, but instead we see:

```
  Error: undefined method 'previous' for #<Cisco::CliError:0x0000000460ac08>
```

* Analysis: `client.rb` was refactored a few months ago, wherein the `previous` hash key was renamed to `successful_input`. The cc providers (both puppet & chef) never got updated with the new key name.
  * Ref: https://github.com/cisco/cisco-network-node-utils/blob/develop/lib/cisco_node_utils/client/nxapi/client.rb#L285

* Testing:

```
Linux# puppet agent -t --debug
 ...
Info: Cisco_command_config[interface](provider=cisco): Successfully updated:
interface loopback42
Error: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

Error: /Stage[main]/Main/Node[default]/Cisco_command_config[interface]/command: change from  to interface loopback42
ipv6 pim foo
 failed: The command 'ipv6 pim foo' was rejected with error:
% Invalid command

```

* New overlay_global behaviors (#360)

* DME changes for l2rib properties resulted in removal of the 'default' keyword from the cli:

    `l2rib dup-host-mac-detection default`

* Prior to this change, 'default' was the only way to reset the host_moves & timeout properties back to default; there was/is no 'no' command, so the only way to reset it now is to re-enter the command with the default values.

* This change necessitates changes to the setter, minitest, and beaker. I also changed the default values to actual integer values instead of empty strings.

* Tested minitest & beaker for: n9-edev,n9-I4,n5,n6. Skips for n3 (normal) and n7 (requires F3 card).

* Remove vsh code (#361)

* Fix cisco_aaa* 'TACACS+ group delete denied, group is in use' issue (#362)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Fix cisco_tacacs* 'TACACS+ group delete denied, group is in use' (#363)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Fix netdev tacacs* 'TACACS+ group delete denied, group is in use' (#364)

* Added setup and cleanup steps

* Add back needed autorequires

* Added cleanup and teardown calls

* Refactor setup/cleanup

* Remove debug causing beaker tests to error out

* Add setup/cleanup steps

* Add setup/cleanup steps

* Fixed merge issue

* Add noop beaker test

* This is a dummy test for use during CI development

* Move noop.rb to base dir

* Munge events value 'false' to 'size_disable' (#366)

Due to recent platform changes, the CLI for `event_history events
size disable` now results in the config `no event-history events`.

This change munges the manifest value of `false` to `size_disable`.

* Ospf bfd for interfaces (#367)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* bfd added to router ospf vrf

* bfd_per_link added to interface_portchannel

* add bfd and network to int ospf

* add bfd echo to intf

* changelog

* doc

* Remove get_vshell_cmd calls (#368)

* L3 PIM-on-VRF-intf beaker fix (#369)

* ip pim sparse-mode was failing to nvgen during the test
  * Factors: a) the intf is in vrf 'test1'; and, b) 'test1' has not been instantiated yet
  * Normally these forward-references are not a problem but the new DME-based PIM cli is silently rejecting it because the vrf is not instantiated
  * For puppet it's not unreasonable to require a pre-instantiated vrf, and since this change only affects our beaker test I'm just going to update the test. The PIM team did say they would reconsider raising an error for this, or better yet just create the pim cli object regardless of vrf-instantiation state.

* Also fixed a cleanup issue for dot1q sub-ints.

* Tested on N9-I5

* Add Ospf properties for interfaces (#371)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* Fix beaker test bug (#372)

* bug fix for interface_portchannel beaker test (#373)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Removed, no longer needed

* Remove broken snmp_user XR support (#374)

* Add agent_probe to utility.lib (#375)

* `feature vn-segment-vlan-based` is not supported on some n3k's

* Added a simple helper method to test for h/w support; the result is then used by `unsupported_properties` to update the test cases

* Tested on n3k(3048), n7k, n9k

* Add f3 utility for n7 bkr tests (#376)

* Tested on n7k

* Fix half/full in test_duplex (#377)

* For some 3k, need to munge 'half/full' into csv-style 'half,full' to play nice with interface_capabilities

* This fix is a little trickier than the NU fix because the output from puppet resource is 'raw' whereas the NU output is a pre-processed hash of capabilities; thus we have to be careful not to munge the vsh or puppet resource output.

* Tested on n3048

* Update service provider beaker test to work in guestshell (#378)

* Select service based on OS family

* Update fail_test message

* Add teardowns to beaker (#379)

* f3 handling for test_vrf (#380)

* f3 handling for test_vrf

* N7k setup/cleanup when missing F3 cards

* New `image?` method for checking image version pattern; used as test for unprops

* New `remove_all_vrfs` method that uses `test_get`/`test_set`; this is much faster than removing vrfs one at a time

* Remove :description image check

* Remove redundant cleanup

* f3 setup/teardown for vrf_af

* f3 setup/teardown bridge-domain

* f3 setup/teardown for encap

* bkr setup/teardown cleanups

* f3 setup/teardown for interface_svi

* f3 setup/teardown for service_vni

* f3 setup/teardown test_private_vlan

* f3 setup/teardown for vxlan_vtep*

* f3 setup/teardown for fabricpath_topology

* setup/teardown cleanups for cisco_itd_device_group_node

* beaker fix for resilient and symmetry non support on n3k (#381)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* setup/teardown for bfd_global

* setup/teardown bridge_domain

* setup/teardown acl

* setup/teardown bgp_af

* setup/teardown cisco_pim

* Convert test_fabricpath_global to new syntax

* Setup/teardown test_interface_L3

* setup/teardown test_interface_private_vlan

* Convert test_interface_channel_group to new syntax

* Convert test_interface_portchannel to new syntax

* setup/teardown for test_itd_service

* setup/teardown cisco_ospf_area*

* setup/teardown cisco_interface_ospf

* setup/teardown cisco_ospf_vrf

* Bad cleanup test_itd_service

* Convert test_command_config to new syntax

* better cleanup for bfd

* setup/teardown for test_bgp

* setup/teardown test_bgpaf

* better cleanup for pim

* setup/teardown test_bgpneighbor

* Better remove_all_vlans

* setup/teardown test_bgpneighboraf

* ospf_vrf cleanup should remove feature bfd

* setup/teardown test_stp_global

* setup/teardown test_bgpneighbor*

* better cleanup test_interface_L3

* better cleanup test_interface_ospf

* setup/teardown test_interface_portchannel

* setup/teardown test_interface_stp

* setup/teardown test_interface_bdi

* setup/teardown test_evpn_vni

* Convert test_vpc_domain to new syntax

* setup/teardown test_itd_device_group

* Convert test_overlay_global to new syntax

* Rel140/refactor package tests (#382)

* Refactor beaker package tests

* Remove unused code

* Rubocop fix

* Uncomment filename

* Add ensure_prop_override setting

* Rubocop fix

* Fix test_itd_service

* The cleanup in the dependency manifest was turning off 'feature itd' but that needs to be re-enabled in order to configure the itd device-group dependency

* beaker: Remove raise_skip call from summary checker

* test_interface_ospf dependency fix

* Add :array opt to test_get bkr utility

* Enable yum package testing in guestshell (#384)

* Initial gs package test support

* Minor refactoring

* Add camden i2.1 patch details

* Use specific yum patch for camden fcs

* Separate native and gs test flow

* Remove ensure absent in manifest_props

* Enable additional releases

* I5 patch fix

* Use single workflow for gs and native

* Convert test_snmp_server to new syntax (#385)

* Convert test_snmp_server to new syntax

* packetsize was failing on n7k so I just rewrote the test to use the new format

* tested on n7k,n9k-I5

* Fix pktsize cleanup

* Rename test_package.rb -> test_package_patch.rb

* Converted the old style tests to new syntax. (#386)

Most of these are straightforward changes. The package test is complicated on native since third-party rpms require setting up a yum repo, but I set up the test to do the repo init via puppet so we actually get a bit more coverage this way.

* Tested on N5,N7,N9-I5 using native/GS/OAC

* utilitylib: Restore tests[id][:resource]['ensure']

I pulled this out by mistake with this commit:
  2641c7a#diff-e0883d3270eb11e5d50fcdc5c4f83003L603

* test_interface_ospf: Fix process dependency

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* test_interface_ospf: Fix process dependency (#388)

* A previous test cleanup removed 'router ospf Sample' from the harness dependencies; now the nightly if failing when it tries to configure an ospf config on an interface

* Although the router config is not necessary for the interface config, the failure occurs because the ospf process is still starting up (ospf startup is slow on 5k/6k/8k). The ospf provider already has a 'wait_for_process_initialized' method to handle this slow start, while the interface_ospf provider does not. This is only an issue during testing so I do not propose adding the wait_for method to interface_ospf.

* Tested on n5,n7,n9

* Add log.error to beaker search_pattern

* When test_resource fails it just displays what it's expecting to find but it doesn't show what the current output was (which often helps with troubleshooting). This just includes the output when there's a failure.

* Add titles for bgp vrf beaker tests

* Suppress fib pending fix (#387)

* Generalize the method for checking nexus images

* Fix suppress fib pending for non-I5 images

* Clean up image check and post-merge leftovers

* cisco_interface enhancement (#389)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* Add'l cleanup for test_interface_ospf

* Fix id bug

* Replace skip_nexus_i2_image() with skip_nexus_image() api call (#390)

* Skip dns provider test instead of error

* Remove commented out call to fail api

* Update test_harness_dependencies for test_interface_ospf.rb (#393)

* Fixed rubocop errors

* Remove debug code

* Dhcp Relay Global (#392)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* Remove packet_size prop testing for I2 and I3 images

* cisco_interface beaker test (#394)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* event_history_periodic changes for bgp (#395)

* Fix interface_ospf provider and beaker

* doc

* doc

* review comments

* add mtu, pri, shut and tx delay to int ospf

* documentation

* bug fix

* Fix for symmetry and resilient no support on n3k

* review comment

* rewview comments

* dhcp relay and storm control -- not tested yet

* beaker test

* fix non default test

* removed storm control broadcast and multicast for n7k

* fix munging

* demo manifest changes

* cleanup manifests

* dhcp and l3 are merged

* merge L2 and storm control

* docs

* review comments

* dhcp_relay_global provider

* beaker

* fix beaker

* Fix provider code for removal of name

* documentation

* typo in beaker

* fix doc

* fix doc

* fix doc for version

* fix beaker test for intf

* fix bgp for event_history

* move facter to provider

* beaker for event_history_periodic

* documentation

* review comments

* review comments

* bgp event_history (#400)

* fix bgp event-history

* beaker changes

* doc and manifest

* review comments

* manifest review comment

* Rel141/lacp suspend (#401)

* Fix lacp_suspend_individual property issue in evergreen

* Remove unneeded test_set call in test_interface_portchannel.rb

* Update README.me with lacp_suspend_individual caveat

* Futher clarify caveat for lacp_suspend_individual property

* Futher clarify caveat for lacp_suspend_individual property

* Test non-default value for n3k

* fix vrf beaker (#402)

* Remove comment that no longer applied with the latest node utils gem

* Scrub N8k References

* hsrp_global and interface hsrp (#404)

* hsrp global new provider

* hsrp interface

* beaker of intf_hsrp

* move int_hsrp to int

* documentation

* Rel150/n8k n9kf rebranding (#406)

* N8k -> N9K-F changes

* Fix puppet module function name

* Remove old README doc

* Update N9k-F Module Version

* Additional N8k -> N9K-F updates

* Refactor platform_fretta function to use os_release fact

* Update platform_fretta function comments

* Fix image version check

* Skip privte vlan tests on n9k-f

* Skip cisco_itd tests on n9k-f

* Skip private vlan tests on n9k-f

* Skip cisco_vpc tests on n9k-f

* Anchor n9k platform check

* Update platform regexp to use correct packet size for fretta

* Rel150/product tag (#407)

* Add product_tag helper method

* Fix bug in product_tag api

* Update CHANGELOG.md

* Interface HSRP group (#405)

* hsrp global new provider

* hsrp interface

* beaker of intf_hsrp

* move int_hsrp to int

* documentation

* hsrp group fixes

* fix array issue

* add validations

* demo manifest

* beaker

* documentation

* n8k to n9k-f

* review comments

* fix event_history for fretta

* fixes for review comments

* readme change

* more comments

* Rel150/atherton fretta fixes (#409)

* Handle atherton nxapi double quotes

* Handle atherton nxapi double quotes

* Handle atherton nxapi double quotes for tacacs

* Make regexp in nexus_image method more flexible

* pim and interface bfd (#410)

* pim bfd

* doc

* Update CHANGELOG.md

* n7k atherton hsrp (#411)

* pim bfd

* doc

* fix n7k atherton hsrp

* review comments for doc

* review comments for doc

* Add ('--') separator for /bin/nsenter example.

Resolves #413

* Update Copyright date

* fix the case sensitive issue for int_hsrp_group (#416)

* cisco route map (#418)

* pim bfd

* doc

* fix n7k atherton hsrp

* review comments for doc

* review comments for doc

* partial new code

* rest of the code

* manifest

* fix get issue

* fix few errors in manifest

* fix manifest

* fix few issues

* fix next-hop sets

* fix manifest

* fix few issues

* fix vlan string munge

* beaker tests

* fix manifest

* fix beaker

* fix case sensitivity for int_hsrp_group name

* remove downcase from provider

* fixes for fretta

* doc

* remove 2 props from I4 code

* review comments

* review comments

* fix doc

* review comments

* add validate for multicast props

* route-map provider (#421)

* pim bfd

* doc

* fix n7k atherton hsrp

* review comments for doc

* review comments for doc

* partial new code

* rest of the code

* manifest

* fix get issue

* fix few errors in manifest

* fix manifest

* fix few issues

* fix next-hop sets

* fix manifest

* fix few issues

* fix vlan string munge

* beaker tests

* fix manifest

* fix beaker

* fix case sensitivity for int_hsrp_group name

* remove downcase from provider

* fixes for fretta

* doc

* remove 2 props from I4 code

* review comments

* review comments

* fix doc

* review comments

* add validate for multicast props

* add validate for multicast props

* Fix Chrun: console and vty config #417 (#422)

* Strip \r characters

* Add testcases to validate config with ctrl chars

* Remove puts and add inspect to debugs

* Add cleanup before next test

* Refactor ctrl character pattern and test

* Remove puts statements

* Add load-interval props to cisco_interface (#425)

* add load-interval attribs to interface

* clean up changelog

* review comment

* fix double quotes issue for passwords (#426)

* add load-interval attribs to interface

* clean up changelog

* review comment

* double quote string cleanup

* review comments

* fix backspace issue for dhcp (#428)

* Feature/upgrade services (#427)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Feature/upgrade services (#429)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Move source_uri validation to provider

* remove all route maps after beaker test (#431)

* remove all route maps after beaker test

* review comment

* Feature/upgrade services (#430)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Move source_uri validation to provider

* Added image_version proc and ability to process '()'

* Fix rubocop errors

* Add new test file for cisco_upgrade resource beaker_tests/cisco_upgrade/test_upgrade_idempotence.rb

* Running cisco_upgrade tests on n3k,n9k only

* Update README with references to the new cisco_upgrade resource

* Update README.md

* Add demo manifest for cisco_upgrade

* Add new manifest for cisco_upgrade

* Added 'cisco_upgrade' to changelog

* Update Support Table for cisco_upgrade

Add Release for Fretta and update N9K/N3k release to camden 2e

* Minor changes to README.md

* Update README.md

* Minor changes to documentation

* Feature/upgrade services (#433)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Move source_uri validation to provider

* Added image_version proc and ability to process '()'

* Fix rubocop errors

* Add new test file for cisco_upgrade resource beaker_tests/cisco_upgrade/test_upgrade_idempotence.rb

* Running cisco_upgrade tests on n3k,n9k only

* Update README with references to the new cisco_upgrade resource

* Update README.md

* Add demo manifest for cisco_upgrade

* Add new manifest for cisco_upgrade

* Added 'cisco_upgrade' to changelog

* Update Support Table for cisco_upgrade

Add Release for Fretta and update N9K/N3k release to camden 2e

* Minor changes to README.md

* Update README.md

* Minor changes to documentation

* Replace output with stdout.chomp for facter call

* Replace heavy_minus_sign emoji with utf-8 ➖symbol in README (#438)

Previously the README was a mix of utf-8 symbols and GitHub emoji.  This was not properly rendering on Puppet Forge, as GitHub emoji codes are not supported.

* use resource name for all cisco provider cases (#439)

* fix beaker patch test for evergreen (#440)

* fix eth default

* Patch skips (#442)

* fix beaker patch test for evergreen

* skip patching tests for I2 & I3

* add docs

* add example

* beaker test for purge_config

* review comments

* Channel group mode addition (#449)

* fix channel_group_mode

* ad beaker for channel_group_mode

* add example manifest

* add example manifest

* doc

* fix readme

* fix skip for patch

* added dplus5

* add beaker test for no mode

* fix netdev port_channel

* Remove range checks

* Update README.md

* Update README-agent-install.md

* Feature/upgrade services (#451)

* Add new type for cisco_service

* Add new provider cisco_Service

* Fix rubopcop errors

* fix rubocop errors

* Fix date on CopyRight

* Rename cisco_service to cisco_upgrade

* Redesigned upgrade resource type based on @mikewiebe PR comments

* Redesigned upgrade resource provider based on @mikewiebe PR comments

* removing cisco_service resource type

* rename media to uri and misc. fixes

* converting del_boot_image and force_upgrade to bools

* Remove whitespace

* Source_uri is required

* Handle node_utils API change from service to upgrade

* Move source_uri validation to provider

* Added image_version proc and ability to process '()'

* Fix rubocop errors

* Add new test file for cisco_upgrade resource beaker_tests/cisco_upgrade/test_upgrade_idempotence.rb

* Running cisco_upgrade tests on n3k,n9k only

* Update README with references to the new cisco_upgrade resource

* Update README.md

* Add demo manifest for cisco_upgrade

* Add new manifest for cisco_upgrade

* Added 'cisco_upgrade' to changelog

* Update Support Table for cisco_upgrade

Add Release for Fretta and update N9K/N3k release to camden 2e

* Minor changes to README.md

* Update README.md

* Minor changes to documentation

* Replace output with stdout.chomp for facter call

* deprecate 'version' and add new property 'package'

* Add support for tftp: URI

Also added new property package and warning to handle deprecation of
‘version’

* Update tests

* Fix typo

* Modify failure message

* Rework validation

* remove package nil check

* Add package to UPGRADE_NON_BOOL_PROPS

* Fix beaker test

* Add source uri validation for usb

* Fix rubocop errors

* Remove references to 'version'

* Update  Documentation

* Removing source_uri and repurposing package

* Adding full package path to type

* Move Uri Processing to the provider

* Add 'version' back for tests

* Updating documentation to remove source_uri

* Fix rubocop errors

* Incorporating feedback on documentation

* (NETDEV-29) Enhance ntp_config and ntp_server add ntp_auth_key (#447)

This commit enhances the existing ntp_config and ntp_server providers
and adds ntp_auth_key

ntp_config
 - authenticate
 - trusted_key

ntp_server
 - key
 - maxpoll
 - minpoll
 - source_interface
 - vrf

ntp_auth_key
 - key
 - algorithim
 - mode
 - password

* Exclude (#453)

* adding excluded props for versions

* add bgp_neighbor exclude

* more tests for adding properties

* vxlan_vtep to be tested

* vxlan_vtp_vni beaker

* fix beaker dependency manifest

* doc

* README.md

* typo fix

* examples

* rubocop fix

* Update release checklist (#455)

* Update release checklist

* Fix CHANGELOG link.

* Fixed typo.

* Bgp address family aggregate address (#454)

* provider code for bgp af aggregate addr

* comment cleanup

* doc

* review comments

* add require ipaddr and cmnutils (#456)

* version change

* ntp props added to README

* skip addl-paths selection for n9k I5.3

* missing patch file tests added

* Fretta and Freeport added

* Update release date
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants