Commit Graph

6701 Commits (00827ca8e3d0cd64f410201bf7e3571a4536df3c)

Author SHA1 Message Date
Toshio Kuratomi 19737236ee Add "excommunicate" debug option
Some debuggers are easier to work with when we do everything in a single
process.  This debug option caters to that at the expense of being
different from what Ansible will actually do to invoke a module.

When we document this we should be clear that this shouldn't be used for
general purpose debugging and that some modules may show strange
"errors" when used with this.  Those won't be considered real bugs as
it's not how ansible really invokes the modules.
9 years ago
Matt Davis 957b336cc1 skip fixup_perms for Powershell
action plugins will now skip _fixup_perms for Powershell. We'll have to come up with another way to do this at some point, but it's not necessary yet since we don't support become on Windows. Also added NotImplementedError throws to chmod/chown/set_facl operations on Powershell (instead of returning '') in case anyone tries to use them in the future.



fixes #15312
9 years ago
Brian Coca 5225048df9 capture attribute errors for invalid class plugins
also switched to py3 safe to_str
9 years ago
Toshio Kuratomi fd9838f1a0 Add BSD license information to the ZIPLOADER_TEMPLATE string since it
may be combined with module code.
9 years ago
Toshio Kuratomi 647123ee18 Ziploader subprocess.Popen
* Run the module as a script from the wrapper instead of executing in the same process.

Fixes cornercases where the module could potentially be executed twice
if we import and then run the main() function without calling sys.exit()
somewhere.

Also fixes problem with concurrent.futures() hanging.  Not sure
precisely how this is being triggered but it is related to invoking the
main() function outside of an if __name__ == '__main__' conditional.

* Fix for python-2.6
9 years ago
Toshio Kuratomi 8d46bcaa65 Update submodule refs for git fix 9 years ago
Toshio Kuratomi a57a32adcc Revert "Make the 'path' param type also use abspath on the value"
This reverts commit 1ffadbcc80.

Some modules seem to have path listed for things that are "commands"  --
something that may be a path to a command or a bare command that should
be looked up in PATH.  With this change, if they were formerly looked up
inPATH they are now being made into an absolute path in the cwd.
Reverting this until we can think more about whether to do this and
change those modules to not use path for those parameters.
9 years ago
James Cammarata 1ffadbcc80 Make the 'path' param type also use abspath on the value 9 years ago
Nathaniel Case 77e3dc9e6a Fix network modules for ziploader changes 9 years ago
James Cammarata 040893a677 Adding a config option to allow disabling locale settings upon module exec
Fixes #15138
9 years ago
Toshio Kuratomi edab8d338d Expand tilde after expanding vars 9 years ago
Peter Sprygada 72ce1e8f14 bugfix eos shared module handling config replace
fixes an issue with doing a config replace using eapi where the configuration
wasn't being replaced.
9 years ago
Peter Sprygada b97c8ce8e7 bugfix netcfg return config as str
fixes issue where netcfg would return out of order configuration
9 years ago
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
9 years ago
Matt Davis 6a3670b1f0 Merge pull request #15281 from jpic/fix_plugin_configuration
Regression fix: proper plugin configuration was reset
9 years ago
James Cammarata 0f2b1244d2 Make sure VariableManager has a view of HostVars
Fixes #15261
9 years ago
jpic da175d0a57 Bugfix: proper plugin configuration was reset
Before this patch, if config was ['/some/path'] then it would enter the
else block and config would be set to [].

The regression this patch fixes was introduced by 700db154.
9 years ago
Peter Sprygada cca084c89d enhancement to ios shared module connection
this enhancement will cause the module to connect to the remote ios device
the first time a command wants to run instead of building a connection
immediately
9 years ago
Peter Sprygada c2fac6c808 enhancement to iosxr shared module to lazy connect to device
this update will only connect to the remote device when the first request
is made to run a command instead of building the connection immediately
9 years ago
Toshio Kuratomi 315cfe2f63 Update module refs 9 years ago
Peter Sprygada 39a576697d feature to localize prompt search login to iosxr shared module
this localizes the cli prompt search logic to the iosxr shared module
instead of using the common regexp list in shell.py
9 years ago
Peter Sprygada 73c3f35112 fixes ansible/ansible-modules-core#3304 9 years ago
Toshio Kuratomi c75b5ba85f Use to_bytes and to_str instead of str as str is unsafe. 9 years ago
Dag Wieers 055aae55f7 Implement own CSVRecoder and CSVReader from documentation
As detailed in the python manual:
https://docs.python.org/2/library/csv.html
9 years ago
Dag Wieers ac75069ee0 Support different encoding types in csvfile lookup plugin
This fixes #15266.
9 years ago
Peter Sprygada 17f4db19ea adds additional details in exception handling in shell shared module 9 years ago
Peter Sprygada f5bcd38380 adds additional details in exception handling to ios shared module 9 years ago
Peter Sprygada 008395eda2 bugfix for nxos shared module to not immediately send \n
this fixes a bug in nxos shared module to not immediately send a \n when
the connection is made.  this commit also localizes the prompt handling
to the nxos module
9 years ago
Peter Sprygada 4e497b10b0 bugfix in netcfg to handle multilevel commands
this fixes a bug where netcfg would not properly find a statement that was
more than one level deep
9 years ago
James Cammarata d358a22542 Modification to 347b282 to prevent running the lookup with empty terms
Fixes #15258
9 years ago
Chris Houseknecht 2dd687acdd Merge pull request #15256 from alikins/galaxy_roles_path_fix_15255
Fix galaxy roles_path cli usage. (#15255)
9 years ago
Peter Sprygada c0230e6f12 refactors netcfg to pull common functions into shared library
The network config and template modules share a set of common functions that
have been pulled into the netcfg shared module.  This is backwards compatible
with the current implemention in the modules.
9 years ago
Peter Sprygada 437beb001b adds commands key to fail message in eos shared module
The commands the lists the set of commands it tried to configure when
using eapi as a transport
9 years ago
Adrian Likins 05b46091e4 Fix galaxy roles_path cli usage.
If we specify a roles_path from the cli, use a
optparse action callback to make sure the roles_path
is set to a path list.

Fixes #15255
9 years ago
Toshio Kuratomi dbd17322bf Update extras submodule ref for lxc_container fix 9 years ago
nitzmahone 700db15452 fix unconfigured plugin path case
We tried to expand paths for None- ensure we're not passing [None] in that case, but [] instead.
9 years ago
Brian Coca dbc5cc9d7a fix issue with plugin load path inconsistency
now assures it is always a list of paths and not just assumes it
this avoids issues of parsing a 'string path' and picking up '/' as
a valid path for plugin loader
9 years ago
Brian Coca 0bd6f3a5e8 correctly adds searchpath as list 9 years ago
Toshio Kuratomi 4ccea9905b Fix async for old style modules and don't send an args file for new-style modules 9 years ago
Toshio Kuratomi d9ecff9d4f Update submodule refs 9 years ago
Brian Coca 4d4c364ba8 updated module subrefs 9 years ago
Brian Coca 1e06a9f48d verifies required is a boolean 9 years ago
Brian Coca 39bc3e624a show callback exception on debug 9 years ago
Brian Coca 3b667e48ff Merge pull request #15242 from dagwieers/silence-diff-output
On change in diff-mode we don't need to see file content in task output
9 years ago
Dag Wieers d46af7cda3 On change in diff-mode we don't need to see file content in task output
I was surprised to see complete file content in the (JSON) task output when
in diff-mode. Since we see the diff anyhow, there's no need to send everything
on screen.
9 years ago
Dag Wieers 0d4f627654 Add the method_name to the catchall warning when using callback plugins
Without this you have no clue to where the exception is occuring.
9 years ago
Toshio Kuratomi 837f3dd24d Update submodule refs 9 years ago
Toshio Kuratomi f29b8e461b Merge pull request #15151 from mattclay/accelerate-unicode
Add to_bytes to file paths for accelerate plugin.
9 years ago
Matt Davis 3f70d7a70d Merge pull request #15144 from mattclay/winrm-test
Add winrm tests and fix exposed unicode errors.
9 years ago
James Cammarata 0656d1466a Adds two variables to facts when a task fails and a rescue block starts
`ansible_failed_task`:
   Contains the task data, essentially a serialized view of the Task() object.
`ansible_failed_result`:
   Contains the result of the task failure, which is identical in function
   to registering the result. Doing so automatically like this saves the user
   from having to register every result in a block and then trying to figure
   out which result had the failure

Similar to the way try/except/finally work, these variables will not be
available in the `always` portion of a block unless there is a corresponding
`rescue` first.

Fixes #12341
9 years ago