Commit Graph

49 Commits (8e7c546ef9ab6c41bc3245314999251d3a0a387f)

Author SHA1 Message Date
Ganesh Nalawade bf1a543f06 Make warning logs consistent (#23666)
* Make warning logs consistent

Arguments outside provider with default
value should not log as warning in case
it is not mentioned in play.

* Make nxos timeout default consistent and add comments

* Make comments more verbose
2017-04-18 21:59:38 +05:30
Ken Celenza b8507b676b Remove Warning for provider (#23652) 2017-04-18 00:36:24 +05:30
Nathaniel Case 86c714548f Redo #23418 (#23425)
* Check for provider values inside check_args of respective network code

* Partial revert of b9ee5aa

The no_log change is okay, but take out the action result munging
2017-04-07 19:22:17 -04:00
Chris Alfonso d4bd54d3b8 Fixes #23388 Network provider masks too much (#23418)
* Fixes #23388 Network provider masks too much

* Fix trailing whitespace
2017-04-07 14:34:47 -06:00
Ganesh Nalawade 0b8ca98c48 Fix junos rollback id validate issue (#23283) 2017-04-05 16:41:11 +05:30
Nathaniel Case 597bca3129 junos_config: Remove reliance on ability to output configuration in `set` format (#23225)
* Remove reliance on ability to output configuration in `set` format
* Support multiple warnings per rpc-reply
2017-04-04 15:00:00 -04:00
Ricardo Carrillo Cruz 2553a37da5 Add no_log to all network module_utils provider argument (#22566)
The provider argument on the network modules argspec can contain
credentials.
Make sure we don't log it.

Fixes #21892
2017-03-13 13:21:46 -06:00
Peter Sprygada 39c38bf30d fixes candidate var type in junos shared lib (#22551)
* candidate var can now be string, list or element
* fixes minor bug in junos_template for backup argument
* disabled invalid integration test for junos_template
2017-03-13 07:27:45 -04:00
Peter Sprygada 2b2072a8c9 roll up of fixes and updates for junos modules (#22543)
* removes cli functions
* adds comment and confirm to arguments
* implements zeroize argument
* fixes get_diff function in junos shared lib to return diff
* lots of minor bug fixes in junos_config
* minor syntax fixes in junos_netconf
* updates netconf integration tests
2017-03-12 11:45:00 -05:00
Peter Sprygada 3f0f7c4f4e updates junos shared lib and action handler (#22541)
* removes cli functions from shared lib
* adds cli functions to junos_netconf module
* statically pins junos_netconf to cli transport
* all other modules use netconf transport
* adds command rpc function to junos shared
2017-03-12 08:37:45 -05:00
Peter Sprygada 1825406e1e Junos fixes (#22423)
* Fixes for junos_config errors

* Check transport settings for core Junos

* Don't pop from the same list you iterate over

* use of persistent connections are now explicitly enabled in junos

* modules must now explicitly enable persistent connections
* adds rpc support to junos_command

fixes #22166
2017-03-11 10:26:42 -06:00
Nathaniel Case d9d2e6deb6 Junos provider readd (#21869)
* Restore `provider` to junos_*

Fixes #21824
Fixes #21824
Fixes #21827

* Fix `confirm_timeout` related errors
* Fix glaring issues with _junos_template
2017-03-01 12:39:44 -05:00
Peter Sprygada 02d2b753db refactors junos modules to support persistent socket connections (#21365)
* updates junos_netconf module
* updates junos_command module
* updates junos_config module
* updates _junos_template module
* adds junos_rpc module
* adds junos_user module
2017-02-16 10:53:03 -05:00
Ganesh Nalawade 0d06b77970 Add 'update' parameter in junos_config module (#19046)
* Add update parameter in junos_config module which supports
configuration action like merge, replace and overwrite.

* Add support for replace along with update
argument
2016-12-21 11:56:55 -05:00
ikelos 9e5d4de49a Fix overwrite parameter in module_utils.junos (#18671)
The overwrite parameter is forcibly set to false, meaning a module
passing that parameter will have no effect.  The overwrite facility
is necessary to ensure that conflicting options can be written the
configuration (which, in replace mode, they cannot).

This change ensures that if overwrite is set, it will not be changed
to False in the logic.
2016-12-12 15:57:29 -05:00
Peter Sprygada a757a77159 fixes timeout param in netconf provider for junos (#18634)
This change will now cause the netconf provider to honor the module
timeout value when making calls to pyez.
2016-11-26 22:24:48 -05:00
Peter Sprygada b0cd624aef fixes issue with run_commands raising error (#17861)
The junos run_commands() method should raise an error when an RpcError is
returned but didn't when using display=text.  This fixes that error
2016-10-02 16:47:22 -04:00
Peter Sprygada 6be2f0bded fixes unicode conversation from junos get_config() method (#17841)
The junos config should convert the returning configuration to unicode
not str.  This fixes that issue.
2016-09-30 16:31:25 -04:00
Peter Sprygada c534f8f9fc fixes conditional processing with junos and xml data structures (#17801)
The conditional processing was failing due for two reasons:

1) The xml to json conversion string was not happening before the runner
   was processing the results
2) The Conditional instance was not parsing conditionals encoded with []

This fix address both issues.
2016-09-28 20:58:43 -04:00
Peter Sprygada 9854644431 adds overwrite kwarg to load_config in junos (#17798)
The junos load_config() method supports operations of overwrite, replace
and merge.  This adds the missing overwrite keyword arg to load_config()
so that action in junos_template can be procesed correctly.
2016-09-28 14:36:53 -04:00
Peter Sprygada 361f3999ea fixes issue where junos shared module was ignoring ssh_keyfile (#17712)
This fixes a problem with the Netconf transport in which the ssh keyfile
wasn't being used if it was defined.  The ref issue is filed against 2.1.1
but have been unable to replicate the problem in that version

ref: ansible/ansible-modules-core#4966
2016-09-22 19:52:42 -04:00
Peter Sprygada 2a908b832c fixes commit confirm check in junos shared module (#17663)
The module didn't perform a commit confirm check which would cause
checking commits to be non idempotent.  This change will fix that problem.
2016-09-20 16:12:08 -04:00
Peter Sprygada 547cea556f remove old imports from junos shared module (#17655)
this cleans up the old import mechanisms in the junos shared module
2016-09-19 23:14:17 -04:00
Peter Sprygada 6fc9ffd28e clean up junos shared module (#17652)
This cleans up the junos module removing some unneeded commands and fixing
method signature with unneeded **kwargs
2016-09-19 22:27:23 -04:00
Nathaniel Case b753e8dc48 Add simple checks for libraries to junos 2016-09-16 11:30:19 -04:00
Nathaniel Case 036650cb09 Cleanup junos (#17530)
Closes #17411
2016-09-12 17:42:26 -04:00
Peter Sprygada e5d931de6b updates junos shared module methods
* cleans up load_config() arguments to simply
* removes unused methods in Cli transport
* updates error regexp
2016-09-11 23:33:20 -04:00
Peter Sprygada 1dac6edbe4 minor update to catch expection if trying close a non existent session
This will prevent the junos shared module from throwing an exception if
the session is trying to be closed when it doesn't exist
2016-09-09 09:34:12 -04:00
Nathaniel Case 972dc3fc97 Network module cleanup (#17334)
* Clean up EOS, IOS, IOS-XR, Junos, NX-OS, and OpenSwitch

* Cleanup net* files

* Re-add NetworkModule import to network module_utils files

This will trick modules into importing code from module_utils code, thus
including it in the final Ansiballz zipfile.

* Give asa a look over, too
2016-09-06 13:49:48 -04:00
Peter Sprygada d976c80a22 roll up of updates to junos shared module
* adds implementation for Network methods
* adds action plugin junos_config
* removes _log() and raises exceptions instead to be handled by the module
2016-09-04 08:37:33 -04:00
Nathaniel Case 01911e4958 Update Junos to NetworkModule (#17197)
* Junos NetworkModule adaption.

* Take CLI_PROMPTS_RE & CLI_ERRORS_RE from ios.py
2016-08-31 14:34:15 -04:00
Toshio Kuratomi a22909c226 Migrate basestring to a python3 compatible type (#17199) 2016-08-23 13:13:44 -07:00
Stian Vikan 288446c9bf Added and-quit to all commit statements. (#16411) 2016-07-01 12:11:05 -04:00
Peter Sprygada 59e1bb3e6e fixes using ssh keyfile with junos network module
The junos network module will now properly use the ssh key file if its
passed from the playbook to authenticate to the remote device.  Prior
to this commit, the ssh keyfile was ignored.
2016-06-13 22:39:51 -04:00
Peter Sprygada 48aa9153f2 Merge pull request #15755 from ocadotechnology/fix-junos-netconf-ssh-agent
Allow ssh agent usage for junos_netconf
2016-05-18 07:54:59 -04:00
Michael Scherer fae492324e Port the rest of the file to the 2.4/3 compatible syntax (#15873)
Since the modules can use a paramiko transport (ergo
python 2.4 syntax), we need to keep compat with 2.4 and python 3,
so we need to use the get_exception trick, even if the various juniper
libraries are not compatible with 2.4.
2016-05-16 08:11:15 -04:00
Nathaniel Case 043e910652 Check for jxmlease when using netconf on JUNOS. (#15835) 2016-05-13 16:26:07 -04:00
Mike Bryant 68795d8128 Allow ssh agent usage for junos_netconf
By default the `Shell` class disables ssh agents. The `junos_netconf`
module uses this class, but doesn't re-enable agents.
Here it's explicitly enabled again, so an ssh agent can be used to
connect to and configure Junos devices.
2016-05-09 17:54:53 +01:00
Nathaniel Case 250b975704 Clarify exception handling in net modules (#15507)
* Clarify exception handling in EOS

Also modify to EOS to standardize modules. It makes vimdiff a lot less angry

* Move IOS exception handling into Cli

* Move IOS-XR exception handling into Cli

* Move JUNOS exception handling into Cli

* Move NXOS exception handling into Cli

And reorganize to make it match the other modules

* Move OpenSwitch exception handling into Cli

More speculative restructuring here
2016-04-25 16:04:19 -04:00
Peter Sprygada c87300f9e7 adds check on config_format kwarg in junos
This adds a check to validate the arugment for config_format kwarg in
get_config.  If the specified format is not a valid option, the shared
module will call fail_json
2016-04-24 08:20:14 -04:00
Peter Sprygada 61baf41edc Merge pull request #5 from dgarros/pyez
Add options to get_config to accept format (text, set or xml)
2016-04-24 08:18:10 -04:00
Peter Sprygada 32329b493d adds support for netconf to junos shared module
Netconf support is provided using the junos-eznc library and the shared
module depends on junos-eznc to be installed on the local Ansible host.  This
commit also adds changes to the netcfg library to handle receiving messages
over netconf.

To use netconf, specify transport=netconf for junos module.  Be sure that
netconf has been enabled on the remote device.
2016-04-22 15:28:53 -04:00
Nathaniel Case 7290b6282d Update IOS, IOSXR, JUNOS, & OpenSwitch for environment vars. 2016-04-12 08:55:15 -04:00
Nathaniel Case 77e3dc9e6a Fix network modules for ziploader changes 2016-04-06 11:54:47 -07:00
Toshio Kuratomi 4b0aa1214c Ziploader
* Ziploader proof of concept (jimi-c)

* Cleanups to proof of concept ziploader branch:

* python3 compatible base64 encoding
* zipfile compression (still need to enable toggling this off for
  systems without zlib support in python)
* Allow non-wildcard imports (still need to make this recusrsive so that
  we can have module_utils code that imports other module_utils code.)
* Better tracebacks: module filename is kept and module_utils directory
  is kept so that tracebacks show the real filenames that the errors
  appear in.

* Make sure we import modules that are used into the module_utils files that they are used in.

* Set ansible version in a more pythonic way for ziploader than we were doing in module replacer

* Make it possible to set the module compression as an inventory var

This may be necessary on systems where python has been compiled without
zlib compression.

* Refactoring of module_common code:

* module replacer only replaces values that make sense for that type of
  file (example: don't attempt to replace python imports if we're in
  a powershell module).
* Implement configurable shebang support for ziploader wrapper
* Implement client-side constants (for SELINUX_SPECIAL_FS and SYSLOG)
  via environment variable.
* Remove strip_comments param as we're never going to use it (ruins line
  numbering)

* Don't repeat ourselves about detecting REPLACER

* Add an easy way to debug

* Port test-module to the ziploader-aware modify_module()

* strip comments and blank lines from the wrapper so we send less over the wire.

* Comments cleanup

* Remember to output write the module line itself in powershell modules

* for line in lines strips the newlines so we have to add them back in
2016-04-05 11:06:17 -07:00
Peter Sprygada 1a072578c3 minor bugfix that will catch connection errors in junos
This commit fixes a situation where connection errors would be caught
but no useful information display.  The connection error is now caught
and emitted in a call to fail_json
2016-02-17 14:19:12 +00:00
Peter Sprygada 8f9badb2b4 update shared module junos to handle root logins 2016-02-11 07:36:56 -05:00
Peter Sprygada 33d390fb58 adds provider argument to junos shared module
This commit adds a new argument `provider` to the junos shared module.  The
argument allows the set of common connection args to be passed to the
junos shared module.  This commit also updates the junos doc fragment
2016-01-19 14:50:01 -05:00
Peter Sprygada e709095f53 initial add of junos shared module
This commit adds a new shared module for working with network devices running
the Juniper Junos operating system.  The commit includes a new document
fragment junos to be used when building modules.  The junos shared module
currently only supports CLI
2016-01-10 10:36:44 -05:00