Commit Graph

131 Commits (d9ef167e78e3e052813173e218a9747b81bea2ef)

Author SHA1 Message Date
John R Barker 0d0c38400f eos_template is deprecated (#22549) 2017-03-12 19:59:56 +00:00
Ricardo Carrillo Cruz c57729944b Fix the eos_banner idempotency (#22413)
The map_config_to_obj calls the run_commands  helper function,
which returns a list of results.
However, the map_params_to_obj return a single string.
Therefore, the comparison between the two datasets could never be equal,
breaking idempotency.
Also, the 'no banner' command should be run on absent only if there's a banner
text set.

Fixes #22194
2017-03-09 12:43:54 +00:00
John R Barker 0775d39a87 Add extends_documentation_fragment back (#22293) 2017-03-05 08:37:01 +00:00
Peter Sprygada 6c8025ce5c adds eos_system integration tests (#22214)
* adds integration test cases
* updates eos_system with minor bug fixes
2017-03-02 21:20:17 -06:00
Peter Sprygada 3c401f9ba2 add common arguments to eos_banner (#22024)
fixes #22015
2017-02-27 20:22:42 -05:00
Peter Sprygada c1c54f1bf4 roll up of eos fixes (#21987)
* fixes to_command function in eos to not iterate over commands twice
* fixes lots of minor issues with _eos_template
2017-02-27 09:24:05 -05:00
Peter Sprygada f95a11a9db fixes eos_eapi to error on wrong transport (#21993) 2017-02-27 09:20:08 -05:00
Peter Sprygada 16a39639f5 fixes minor bugs in eos_eapi module (#21925)
* module will now check protocol running state before return
* warns on config argument no longer being needed
* lots of integration test cases updated
* updates unit and integration test cases for state check

fixes #21908
2017-02-25 17:18:46 -05:00
Peter Sprygada 1f9b503e89 fixes issue with config parents on eos modules (#21923)
eos_config module wasn't respecting config block path (parents).  This
patch fixes that problem.  Also fixes a number of integration tests
cases

fixes #21903
2017-02-25 16:40:13 -05:00
Peter Sprygada 0a62d7c1f4 adds missing argspec to eos_user module (#21806)
Updates the eos_user module with the common eos arg spec
2017-02-22 20:19:15 -05:00
Peter Sprygada 9e6980a039 fixs command dict to be sent to connection socket (#21713)
There as an invalid key in the command dict that would cause failure
using prompts.  This changes the key from response to answer which is
what is expected by network_cli
2017-02-22 09:44:04 -05:00
Matt Martz 7c00346714 Validate EXAMPLES as YAML 2017-02-15 13:01:43 -08:00
Peter Sprygada b0c01bbb82 updates network_common lib (#21306)
* removes connection functions refactored into connection
* updates ComplexDict and ComplexList objects to use with AnsibleModule
* updates modules to add new argument to ComplexList & ComplexDict
2017-02-14 14:38:30 -05:00
Peter Sprygada e1a2c6e1d3 roll up of fixes for eos modules (#21406)
* fixes issue with load_provider() not checking for an existing key
* adds updates to eos_config results key
* lots of minor syntax fixes in eos shared module
* adds eos_argument_spec to eos_eapi

fixes #21402
2017-02-14 18:47:29 +00:00
Peter Sprygada 14b942f3fb updates eos modules to use socket (#21197)
* updates eos modules to use persistent connection socket
* removes split eos shared module and combines into one
* adds singular eos doc frag (eos_local to be removed after module updates)
* updates unit test cases
2017-02-13 20:22:10 -05:00
Peter Sprygada d226f31a0f fixes ios and eos command modules (#20989)
* returns support for prompt/response over cli
* now sends native dict instead of str command
* fixes issue with run_commands() in ios to jsonify request
* updates unit test cases
2017-02-02 22:10:14 -05:00
Matt Martz 829c0b8f62 Update validate-modules (#20932)
* Update validate-modules

* Validates ANSIBLE_METADATA
* Ensures imports happen after documentation vars
* Some pep8 cleanup

* Clean up some left over unneeded code

* Update modules for new module guidelines and validate-modules checks

* Update imports for ec2_vpc_route_table and ec2_vpc_nat_gateway
2017-02-02 11:45:22 -08:00
Peter Sprygada 1e2afd57ae fix up eos doc frags (#20981)
* fix modules with invalid doc frags
* remove unneeded doc frags
2017-02-02 12:15:23 -05:00
Peter Sprygada d8d0b007e3 adds support for eos_local connections to eos modules (#20961)
* updates modules to use eos_local
2017-02-01 22:37:57 -05:00
Peter Sprygada 85d78390f9 adds new module eos_system (#20797)
* provides declarative resource for configuring eos system parameters
* supports network_cli connection plugin only
* adds unit tests for module using mock interfaces
2017-01-28 11:07:51 -05:00
Peter Sprygada d2dd2fbe49 adds module eos_banner (#20796)
* new module allows for configuration of eos multiline banners
* adds unit test cases for module
2017-01-28 10:32:04 -05:00
Matt Clay 95789f3949 PEP 8 whitespace cleanup. (#20783)
* PEP 8 E271 whitespace cleanup.
* PEP 8 W293 whitespace cleanup.
* Fix whitespace issue from recent PR.
2017-01-27 15:45:23 -08:00
Peter Sprygada 6c89c587cc refactors eos_config module to use network_cli (#20741)
* update eos_config to use eapi exclusively and remove cli transport
* add unit test cases for eos_config
* updates action plugin to handle both eapi and network_cli connections
2017-01-27 16:23:18 -05:00
Peter Sprygada c860a8641c refactor eos_facts to use network_cli (#20760)
refactors the eos_facts module to use the network_cli plugin
2017-01-27 14:12:58 -05:00
Peter Sprygada 271c0c4574 new module eos_user (#20759)
* adds new module for managing local user accounts on eos devices
* adds unit test cases for module

This module only supports network_cli
2017-01-27 14:12:36 -05:00
Peter Sprygada 32913c0fdf refactors eos_template to use network_cli (#20742) 2017-01-27 09:07:42 -05:00
Peter Sprygada c8dcc7f5d6 refactors eos_command module (#20739)
* eos_command now uses network_cli connection plugin
* adds unit test cases for eos_command module
2017-01-27 08:45:13 -05:00
Peter Sprygada 57660abf33 refactor eos_eapi module (#20740)
* eos_eapi module now requires network_cli plugin
* adds unit test cases for eos_eapi module
2017-01-27 08:44:57 -05:00
Andrea Tartaglia ef391a11ec Removed dict.iteritems() in modules. (#18859)
This is for py3 compatibility, addressed in #18506
2016-12-12 15:16:23 -08:00
Toshio Kuratomi 7319104552 Refreshed metadata for core modules 2016-12-08 11:25:35 -05:00
René Moser 507559dba5 doc: network: fix syntax errors in examples (#5780) 2016-12-08 11:25:34 -05:00
John R Barker 25b6492d37 Bulk spelling improvement to modules-core (#5225)
* Correct spelling mistakes

* Correct more spelling issues

* merge conflict

* Revert typo in parms
2016-12-08 11:25:20 -05:00
Peter Sprygada 25d00838a9 fixes issue with pushing config to versions that do not support sessions (#5236)
earlier versions of eos do not support configuration sessions.  this change
will now check if sessions are supported and if not will fallback to
not using config sessions

fixes #4909
2016-12-08 11:25:19 -05:00
Peter Sprygada f5e72c6590 adds check for AddConditionError when adding conditional statements (#5123)
The Conditional instance will now raise the AddConditionError and this
change instructs eos_command to catch the error and return a nicely formed
error message
2016-12-08 11:25:17 -05:00
John R Barker 177dcadbc0 deprecated _template network modules: Rename in modules-core (#5072) 2016-12-08 11:25:14 -05:00
Nathaniel Case aa82f48dc8 Network module code cleanup (#5061)
* Fix imports in junos_template

* Python 3 compatibility in eos_command

* Python 3 compatibility for ios_command

* Clean up issues with ios_facts

* Python 3 compatibility for ios_facts

* Import shuffle in ios_template

* Python 3 compatibility for iosxr_command

* Clean up iosxr_facts.py

* Python 3 compatibility for iosxr_facts

* Python 3 compatibility for junos_command

* Python 3 compatibility for ops_command

* Cleanup issues with ops_facts

* Python 3 compatibility for ops_facts

* Cleanup issues with ops_template

* Python 3 compatibility for vyos_command

* Cleanup issues with vyos_facts

* Python 3 compatibility for vyos_facts
2016-12-08 11:25:14 -05:00
Nathaniel Case 9b286b1775 eos_facts cleanup (#5057)
* dict.iteritems does not exist in Python 3

Now just dict.items
six.iteritems handles the change

* Addresses point 1

Unsure if this is a good idea or not.

* Addresses point 2

This shouldn't have any particular change, just marks load_comments as abstract

* Remove unused import

Addresses point 3

* Clarify invalid subset error message

Addresses point 4
2016-12-08 11:25:14 -05:00
Peter Sprygada df6b7703bb fixes default value in docstring for http (#4985)
The docstring incorrectly stated the default value for http is yes when
indeed its no.  This fixes the docstring
2016-12-08 11:25:13 -05:00
Peter Sprygada a8ca526450 bug fix that now catches FailedConditionalError when specifying conditionals
This is related to ansible/ansible#17638 and updates the eos_command module
to catch the exception and return a santatized error.
2016-12-08 11:25:11 -05:00
Peter Sprygada 0c94d84910 eos_eapi module allows independent configuration of protocol and port
The eos_eapi module would not configure the port if the protocol wasn't
configured as reported in #4905.  This changes the behavior to now allow
the port to be configured independently

fixes #4905
2016-12-08 11:25:10 -05:00
Peter Sprygada 989793483f fix up eos_eapi module
* fixes TypeError: load_config() got an unexpected keyword argument 'session'\n"
* removes qos argument

ref #4869
2016-12-08 11:25:09 -05:00
John Barker 264bb374b9 RETURNS doesn't support markup, so remove it 2016-12-08 11:25:05 -05:00
John Barker 42d5d7b21b Docs improvements to _config 2016-12-08 11:25:05 -05:00
Peter Sprygada 3a7301bb3b fixes error when calling load_config() with session keyword
The session keyword is no longer needed or supported in the load_config()
method for eos.  This fixes an issue in eos_template where the session
keyword was still being sent.
2016-12-08 11:25:05 -05:00
John Barker c01328b597 Document `backup` options
To make future diffing easier, use consistent ordering
2016-12-08 11:25:04 -05:00
Peter Sprygada e5c26150fb roll up of updates to eos_config module
* removes update argument
* adds `config` option to replace argument
* moves session management into shared module
* cleans up doc strings
* `before` and `after` args now only apply to lines
2016-12-08 11:25:03 -05:00
Andrew Gaffney bac0c4595c Fix missing colons in network module examples (#4778) 2016-12-08 11:25:03 -05:00
Peter Sprygada bfdc5098cb minor bug fixes in eos_template
* fixes issue where configuration was not being loaded (#4704)
* fixes issue where defaults were not included when argument was set to True

tested on EOS 4.15.4F
2016-12-08 11:25:02 -05:00
Peter Sprygada 51613d4307 roll up of minor fixes in eos_config module
* fixes save argument to be type bool
* now properly sets the changed returned flag based on diff
* updates docstring RETURNS to add backup_path
* removes unneeded state argument

tested on EOS 4.15.4F
2016-12-08 11:25:01 -05:00
John R Barker aa0b93a338 Consistent naming of Arista EOS device (#4616) 2016-12-08 11:24:57 -05:00
John R Barker 51aa4e803f Consistent naming of Arista EOS device 2016-12-08 11:24:56 -05:00
Peter Sprygada 0f4446166b update eos_eapi module with new enhancements
* add support for vrf configurations
* add support for configing the qos value for eapi
* add config argument to specify the device running-config

Tested on EOS 4.15.4F
2016-12-08 11:24:55 -05:00
Peter Sprygada 4fd4ff8d5c update eos_template for network shared module
This updates the eos_template module to work with the changes introduced
in the network shared module in Ansible 2.2

Tested on EOS 4.15.4F
2016-12-08 11:24:54 -05:00
Peter Sprygada 733ee349b0 add new eos_facts module for fact collect of EOS nodes
* adds support for std network facts
* adds support for default facts subset
* adds support for config facts subset
* adds support for interface facts subset
* adds support for hardware facts subset

Tested on EOS 4.15.4F
2016-12-08 11:24:53 -05:00
Gary Rybak e2d55d86e4 Move call to filter_exit out of command execution block to prevent setting 'changed' on a command list that is completely filtered (empty). 2016-12-08 11:24:52 -05:00
Peter Sprygada c98a906cf0 add new functionality to eos_command module
* commands argument now accepts a dict arguments[1]
* waitfor has been renamed to wait_for with an alias to waitfor
* only show commands are allowd when check mode is specified
* config mode is no longer allowed in the command stack
* add argument match with valid values any, all

[1] The commands argument will now accept a dict argument that can
specifiy the output format of the command.  To specify a dict argument
use the form of { command: <str>, output: <str>, prompt: <str>,
response: <str> }.  Command and output are required arguments. Output
accepts valid values text and json.
2016-12-08 11:24:52 -05:00
Peter Sprygada 717af59c96 update eos_config with new arguments
* add src argument to provide path to config file
* add new choice to match used to ignore current running config
* add update argument with choices merge, replace or check
* add backup argument to backup current running config to control host
* add defaults argument to control collection of config with or without defaults
* add save argument to save current running config to startup config
* add state argument to control state of config file
* deprecated force argument, use match=none instead
2016-12-08 11:24:52 -05:00
John Barker 2b82389705 General EOS documentation improvements
Typos, formatting, choices.
2016-12-08 11:24:47 -05:00
John R Barker aa6a7d5789 State runnng v running
Fix typo
2016-12-08 11:24:46 -05:00
Peter Sprygada 622592c413 refactor the eos_command module to use the CommandRunner
* This adds support the CommandRunner to handle executing commands on
the remote device.
* It also changes the waitfor argument to wait_for to remain compatable
with other modules and adds an alias for waitfor.
* Restricts commands to show commands only when check mode is specified.
* add version_added to wait_for doc string
2016-12-08 11:24:39 -05:00
Michael Scherer c0217e14a7 Convert the network subfolder to py3/py2.4 syntax (#3690) 2016-12-08 11:24:29 -05:00
Scott Butler e606a1237b Fixed typos 2016-12-08 11:24:27 -05:00
Peter Sprygada ef8b59f430 handles config replace properly in eos_template
fixes 3366
2016-12-08 11:24:16 -05:00
Peter Sprygada a4bb4ee146 refactors eos_template to remove diff functions
replaces functions with netcfg shared library for handling configuration
diffs
2016-12-08 11:24:15 -05:00
Peter Sprygada f77bb0ac28 refactors eos_config to remove config diff functions
replaces with netcfg shared library for handling configuration diffs
2016-12-08 11:24:15 -05:00
Peter Sprygada ae9930f59f doc string fixes for eos_config
This updates eos_config with some fixes to the documentation string
2016-12-08 11:24:12 -05:00
Peter Sprygada ed2d46bc9e bugfix in eos_template for backing up config
eos_template would connect to the remote device to get the running config
for backup even if backup is not needed.
2016-12-08 11:24:12 -05:00
Peter Sprygada 12bb95b943 minor function clean ups in eos_command
This commit cleans up a couple of functions and removes the json
import to use the json methods from AnsibleModule
2016-12-08 11:24:12 -05:00
Peter Sprygada 761724f5c3 bugfix for handling match=strict in eos_config
Resolves an issue where match=strict would act like match=exact when
evaluating the configuration
2016-12-08 11:24:11 -05:00
Gary Rybak 5ff79d0596 Add filter to eos_template to remove configuration mode command followed immediately by an exit command indented one level. 2016-12-08 11:24:09 -05:00
Matt Martz aaf762573e Various simple linting type cleanups on modules 2016-12-08 11:24:06 -05:00
chouseknecht be2a50547e Moved Conditional class to netcfg. 2016-12-08 11:24:05 -05:00
Peter Sprygada 8303eadff1 update eos_config doc string and return values
This change update the return values from eos_config to be consistent with
all network config modules.  This will now return updates and responses
from the module
2016-12-08 11:24:04 -05:00
Peter Sprygada eb5f9c216b update eos_template doc string and return values
This updates the return values form eos_template to be consistent
across all template modules.  This change now returns updates and
respones
2016-12-08 11:24:04 -05:00
Peter Sprygada 279ca048ae update eos_command doc strings and return values
This change updates the returns values from eos_command to be consistent
with network modules. It now returns stdout, stdout_lines and failed_conditionals
2016-12-08 11:24:04 -05:00
chouseknecht e66a74531f Adding eos_eapi module. 2016-12-08 11:24:03 -05:00
Peter Sprygada bc9aacd832 bug fix for eos_config module
This addresses a bug in the eos_config module that would prevent it
from running properly.  The module should now properly process the config
and the candidate
2016-12-08 11:24:03 -05:00
Peter Sprygada cca8a24d7e bug fix on parameter in eos_config
The eos_config module has a bug where its trying to pass an argument
that doesn't exist.  This fixes that problem, removing the offending
keywork argment
2016-12-08 11:24:03 -05:00
Peter Sprygada 9a90721720 initial add of new module eos_template
The eos_template module works by allowing configurations to be pushed
to Arista EOS devices that can be templated by the Ansible Jinja2
template engine
2016-12-08 11:24:02 -05:00
Peter Sprygada d3b826dda2 initial add of eos_command module
This adds a new module eos_command to network/eos.  The eos_command module
is used for sending arbitrary commands to Arista EOS devices.  It includes
arguments that allow the module to wait for specific values before the
module returns control to the playbook or fails
2016-12-08 11:24:02 -05:00
Peter Sprygada ad7704c802 initial add of eos_config module
This adds a new module for pushing configuraitons to eos devices in a
reliable and repeatable fashion.  It includes support for templating
configurations and backing up the current config prior to pushing out
changes.  This module works over either CLI or EAPI.

This PR has a dependency on ansible/ansible PR #14009 being merged
2016-12-08 11:24:02 -05:00