Commit Graph

222 Commits (e375b4c61c60d3aae27c4ef6ce7e58d8afb53312)

Author SHA1 Message Date
Dag Wieers 356d9a272a Replace ansible_hostname with inventory_hostname (#3559)
This way these examples can be re-used using the ansible command (and don't require facts gathering).
2016-12-08 11:24:25 -05:00
Michael Scherer 001ceb8dc6 Remove old test on SELinux (#3510)
since all is done in modules_utils/basic.py, no need to make
the same test here, especially since that's unused later
2016-12-08 11:24:20 -05:00
Dag Wieers a26188e55d Making unarchive idempotent (#3307)
* WIP: Making unarchive idempotent

Currently unarchive is not idempotent and has many rough edges and bugs.
The current release is a workable improvement on many fronts:

- zip support is now idempotent (but gtar lacks check-mode)
- New option `exclude` to exclude specific paths/files
- New option `keep_newer` to exclude newer files on target
- New option `extra_opts` to influence unzip/gtar (like synchronize module)

The following items are still ongoing:

- Implement CRC32 support for .zip files
- Re-implement the zip support using native zipfile module
- Re-implement the gtar support using native tarfile/gzip/bz2 modules (lzma external)
- Implement check-mode (works in gzip, but fails using gtar)
- Implement diff-mode (discuss an appropriate output model, like synchronize module)

The re-implementation of unzip/gtar support using native python modules will not only simplify the codebase, additional functionality can be implemented correctly and identically, which is currently not possible. (Other archives could be implemented using native modules equally, incl. options)

* Assorted fixes to zip support (during quality checks)

- Support both rw---- and rwx--- permstr
- Better file type support (more qa needed)
- Symlink support
- Include fix from #3229

* Implement zip diff-mode (itemized change) and avoid changes permissions every time (!)

This commit implements:
- rsync-compatible itemized-change output in diff-mode (using zip)
- no longer changing permissions unconditionally (when idempotent)

* Small fixes to itemized change output

* Fixes to user/group ownership changes

- The implementation of user/group ownership is a bit more complex for idempotency
- We report when a ZIP file incorrectly tags a directory as a file/link
- We only offer diff output when there is a change

* Fix the handling of includes and excludes for unzip

* Remove test output from output (confuses easily)

* Logic and performance improvements to ownership handling, and umask fix

* Handle special files (type '?')

* Make exceptions compatible with python 2.4

* Implement CRC32 support

* Revert some unintended/unknown changes ?

* Taking over maintenance as offered by current maintainer

* Fix support for white-spaces in filenames

* Remove/rename incorrect regex

* Ensure that fat executables end up with execute permission

* Remove check_result from output when unchanged

* When unarchiving as a user, or when owner/group/mode is supplied --diff is insufficient

Only way to be sure is to check request with what is on disk (as we do for zip).
Leave this up to set_fs_attributes_if_different() instead of inducing a (false) change

* By default, don't send confusing check_results in verbose output

This fixes #74.
2016-12-08 11:24:18 -05:00
yarick123 87fe4a2f0c ini_file: added option 'noextraspaces' to turn off inserting extra spaces around '=' symbol
* ini_file: added option 'noextraspaces' to turn off inserting extra spaces around '=' symbol

* ini_file: noextraspaces, python 2.4 compatibility

* ini_file: noextraspaces - yes/no => true/false

* ini_file: noextraspaces - added 'version_added' option

* ini_file: noextraspaces => no_extra_spaces
2016-12-08 11:24:18 -05:00
Mengdi Gao 165f48717a Improve doc accuracy of template module 2016-12-08 11:24:17 -05:00
peter.jang f7fb5e31c2 added rsync protocol support (#1999)
* added rsync protocol support

* correction for example document(add example for push on delegate)

* use startswith method for safety
2016-12-08 11:24:16 -05:00
Bence Nagy 0fd89cfd44 Add prefixing and suffixing fuctionality to assemble 2016-12-08 11:24:14 -05:00
Brian Coca 90650256ef fixed exit json 2016-12-08 11:24:11 -05:00
Matt Martz e4a88eeebe Fix synchronize docs to indicate the correct default for use_ssh_args 2016-12-08 11:24:11 -05:00
Brian Coca 9084e31979 fixes to assemble
now uses atomic move to avoid data corruption
correclty cleans up temp files in every case
returns backup_file info if needed
validate validate before temp file gets created
backup AFTER validate
2016-12-08 11:24:10 -05:00
Dag Wieers 20b7757032 Ensure that a download failure is properly raised before the read fails
Without this change, a download failure may bail out with the message:

    "Failure downloading http://foo/bar, 'NoneType' object has no attribute 'read'"

whereas with this fix, you'd get a proper error like:

    "Failure downloading http://foo/bar, Request failed: <urlopen error [Errno 113] No route to host>"

or one of the many other possible download errors that can occur.
2016-12-08 11:24:10 -05:00
Bert Van Vreckem 4a10eeb196 Also show stdout when validation fails. This fixes #2498 2016-12-08 11:24:09 -05:00
Toshio Kuratomi 390dbe5090 Change one param to be of type path 2016-12-08 11:24:08 -05:00
Toshio Kuratomi ecafdeeaa5 Set some module parameters to type=path 2016-12-08 11:24:08 -05:00
Toshio Kuratomi cea1125d02 Correct dest_port to be of type int 2016-12-08 11:24:08 -05:00
Toshio Kuratomi 249b9511a5 Set name to type path so that tilde and env vars are expanded 2016-12-08 11:24:08 -05:00
Brian Coca a546775172 fixed typo, now correctly check isdir
fixes #3089
2016-12-08 11:24:07 -05:00
Brian Coca 69b0e39220 added missing checksum alias 2016-12-08 11:24:07 -05:00
Brian Coca 4ec0ccd5ac fixed option name mismatch, added aliases
also removed empty aliases
2016-12-08 11:24:06 -05:00
Brian Coca b357f4dd72 added follow to specific modules that support it
was removed from common file docs
2016-12-08 11:24:06 -05:00
Jose Moreira cc173b445e Fixed module doc typos 2016-12-08 11:24:06 -05:00
Brian Coca bbfb957bc1 recursive copy is not available(yet) on remote_src 2016-12-08 11:24:06 -05:00
Guruprasad 1b642fcf75 Fix typo in the copy module error message
Fix the typos in the error message shown on trying to use remote_src=yes for copying directories
2016-12-08 11:24:06 -05:00
Brian Coca 23c07ccf2c cleaner error on recursive remote copy
TODO: add recursive copy support when remote_src=yes
probably need to make shared the logic in the action plugin.
2016-12-08 11:24:06 -05:00
Brian Coca 8d0d251003 removed 'overquoting' of example
fixes #3029
2016-12-08 11:24:05 -05:00
Tobias Wolf 1ecc8544f6 Add diff for both file contents and file attributes to lineinfile
Using the difflist feature added in ansible/ansible@c337293 we can add
two diffs to the `diff` dict returned as JSON: A `before` and `after` pair of
changed file contents and the diff of the file attributes.

n.b.: the difflist handling from the above commit is logically broken.
PR will follow.

Example output:

    TASK [change line and mode] ************************************************************
    changed: [localhost]
    --- before: /tmp/sshd_config (content)
    +++ after: /tmp/sshd_config (content)
    @@ -65,21 +65,21 @@
     X11DisplayOffset 10
     PrintMotd no
     PrintLastLog yes
     TCPKeepAlive yes
     #UseLogin no

     #MaxStartups 10:30:60
     #Banner /etc/issue.net

     # Allow client to pass locale environment variables
    -AcceptEnv LANG LC_*
    +AcceptEnv        LANG LC_* GF_ENV_*

     Subsystem sftp /usr/lib/openssh/sftp-server

     # Set this to 'yes' to enable PAM authentication, account processing,
     # and session processing. If this is enabled, PAM authentication will
     # be allowed through the ChallengeResponseAuthentication and
     # PasswordAuthentication.  Depending on your PAM configuration,
     # PAM authentication via ChallengeResponseAuthentication may bypass
     # the setting of "PermitRootLogin without-password".
     # If you just want the PAM account and session checks to run without

    --- before: /tmp/sshd_config (file attributes)
    +++ after: /tmp/sshd_config (file attributes)
    @@ -1,3 +1,3 @@
     {
    -    "mode": "0700"
    +    "mode": "0644"
     }
2016-12-08 11:24:02 -05:00
Toshio Kuratomi f6aa1ff9a4 Remove duplicate documentation fields 2016-12-08 11:24:01 -05:00
Toshio Kuratomi ceba43e701 Better error message when rsync nad ssh aren't present where synchronize is run
Fixes https://github.com/ansible/ansible/issues/9305
2016-12-08 11:24:01 -05:00
Tobias Wolf 25ccb98d49 Add custom or 'prepared' diff field to synchronize module
This PR depends on pull requeest ansible/ansible#14105

rsync has a custom diff output that cannot easily be expressed as
`/usr/bin/diff before after`
2016-12-08 11:24:01 -05:00
Toshio Kuratomi 457dfb3b4b Add an internal param instructing synchronize to replace localhost with the host that's being ssh'd from 2016-12-08 11:24:01 -05:00
Matt Martz 9e686c7294 Add note about precautions of using become with fetch. Addresses https://github.com/ansible/ansible/issues/14064 2016-12-08 11:24:01 -05:00
Toshio Kuratomi 5e4fe92676 Fix documentation build 2016-12-08 11:24:01 -05:00
Toshio Kuratomi 5f35d0d597 Document that synchronize in 2.0.0.x has broken sudo behaviour.
Part of the changes for #13825
2016-12-08 11:24:01 -05:00
Brian Coca 288a5c9a77 adds diff info for file info 2016-12-08 11:23:56 -05:00
Michael Scherer 83b45ae047 Fix doc inconsistency (#2630) 2016-12-08 11:23:55 -05:00
Brian Coca 63fd67f156 added mime option to stat module
it uses file magic to now return mime_type and charset of a file as
per output of `file -i /path`
2016-12-08 11:23:53 -05:00
Adam Fields 9c131ea619 added a reference to the template module for clarity 2016-12-08 11:23:52 -05:00
quoing 3ad67d93ea Fix: Default ACL parameters are not correctly handled 2016-12-08 11:23:51 -05:00
Brian Coca f0a3914f7b simplified lowercasing 2016-12-08 11:23:50 -05:00
quoing 3a91853e7e Add "default" entry option back (removed in e95bcae), update will translate entry to standard parameters so compatibility with BDS is kept 2016-12-08 11:23:50 -05:00
Ales Nosek df4109d946 Fix #2475 ini_file module: bracklets in key break idempotence
Escape the regex special characters in the option name.
2016-12-08 11:23:50 -05:00
krdlab fe0aa01ce8 Fix 'stat' module document 2016-12-08 11:23:50 -05:00
Dylan Martin 579e444243 improved error message when no handler found 2016-12-08 11:23:50 -05:00
Brian Coca 3025451b10 fixed typo EEXISTS is actually EEXIST
fixes #2585
2016-12-08 11:23:50 -05:00
Charles Ferguson 4c93b5dab6 Add documentation to 'file' AnsibleModule definition for internals.
The parameters 'diff_peek' and 'validate' are not expected to be used
by users. They are internal. To make it clear, this change adds the
comments 'Internal use only' to each of those definitions to make
it clear that they are actually used, just not by end-users.
2016-12-08 11:23:50 -05:00
Charles Ferguson e86ba78685 Update documentation for 'file' module to include 'diff_peek'.
The 'diff_peek' option isn't documented at all, and provides a
rudimentary check that the content isn't binary. Documentation is
added to explain the option.

The 'validate' option has a declaration, but isn't implemented.
Therefore it may as well be removed from the module.
2016-12-08 11:23:49 -05:00
Charles Paul 52d499d268 create non-existent ini file
fixing fail_json

more verbose fail msg
2016-12-08 11:23:48 -05:00
Maarten Claes e0b8b0d789 This fixes copy with the remote_src option
It was broken in 6e37f1dcef0 when the remote_src was added. Need to
pass the absolute path to copy2 instead of a tuple.
2016-12-08 11:23:48 -05:00
Brian Coca 139201ad83 fixed remote_src support, now actually copies and does not move 2016-12-08 11:23:48 -05:00
Timothy Appnel f2e83fa452 Added the checksum_algo alias to the stats module. 2016-12-08 11:23:47 -05:00
Ales Nosek 4e787f17cf Make the syntax work with Python 2.4 2016-12-08 11:23:47 -05:00
Ales Nosek bd03dd67ff ini_file should only change what was specified and nothing more #5860
See also:
http://alesnosek.com/blog/2015/08/03/improving-ansibles-ini-file-module/
2016-12-08 11:23:47 -05:00
Brian Coca f7f8df1773 since find doesn't make changes, support check mode and gather data for other tasks in check mode 2016-12-08 11:23:44 -05:00
Toshio Kuratomi a179d06a91 Simplify logic to handle options set to empty string
Fixes #2125
2016-12-08 11:23:44 -05:00
Brian Coca 14455f4acc final form, use_regex now controls if patterns is glob or regex - fixed cases in which stat fails (dangling symlink) - now properly reports name of skipped paths 2016-12-08 11:23:43 -05:00
Brian Coca 3e5dc1fd74 changed so regexes and shell globs work transparently 2016-12-08 11:23:43 -05:00
Ryan Sydnor 8a1c035fac Add capability for stat module to use more hash algorithms
Specifically, the stat module now has a checksum_algorithm parameter.
This lets the module utilize one of the hash algorithms available on the host
to return the checksum of the file.

This change is backwards compatible. The checksum_algorithm defaults to
sha1 and still returns its result to the stat.checksum property.
2016-12-08 11:23:43 -05:00
Brian Coca 7c0dc323a2 corrected docs for stat's lnk_source fixes #12850 2016-12-08 11:23:42 -05:00
Brian Coca baeb6d8dc0 fixed bug in spec 2016-12-08 11:23:42 -05:00
Brian Coca a964754484 added regex support to find, also added 'singular' aliasess to patterns and paths 2016-12-08 11:23:42 -05:00
Brian Coca d6f474761d documented new remote_src option 2016-12-08 11:23:41 -05:00
varnav a05df49998 Fixed confusion in the docs
As 'path' is actually alias for 'dest', this could be confusing.
2016-12-08 11:23:37 -05:00
Toshio Kuratomi 58573187f8 Change the example of rsync_opts to use a list instead of a string
Fixes #9889
2016-12-08 11:23:37 -05:00
James Cammarata 4a4674ca24 Fix syntax error in synchronize docstring 2016-12-08 11:23:36 -05:00
skylerbunny dabf94ab1f Explanation of privilege escalation in notes
An attempt to make clear how privilege escalation works with respect to the src/source host and dest/destination host. One existing note was incorporated into three new ones, iterating each.
2016-12-08 11:23:36 -05:00
Jérémie Astori 6695cc5c21 Fix physical walk on acl module for Linux
`-h` is for BSD [1] while `-P`/`--physical` is for Linux [2].
This commit fixes that option now that acl module is (temporarily)
only supported for Linux.
I will re-add `-h` when fixing BSD support.

[1]: http://www.freebsd.org/cgi/man.cgi?format=html&query=setfacl(1)
[2]: http://linuxcommand.org/man_pages/setfacl1.html
2016-12-08 11:23:33 -05:00
Jérémie Astori 186cc7cb17 Make sure entry is not sent when acl state=query 2016-12-08 11:23:33 -05:00
Jérémie Astori 3568f1cd78 Make sure permission-less entries are accepted when state=absent
Also, remove that try condition as, at that stage, no permissions with
other than 2 or 3 fields are sent to the function.
2016-12-08 11:23:33 -05:00
Jérémie Astori a93445c798 Remove support for `d[efault]:` in entry permissions
It is not documented in [the Ansible doc page][1] nor
[the BSD setfacl man entry][2] (which means it might not be compatible
with BSD) so removing it does not break the API.

On the other hand, it does not conform with POSIX 1003.1e DRAFT
STANDARD 17 according to the [Linux setfacl man entry][3] so safer to
remove.

Finally, the most important reason: in non POSIX 1003.e mode, only ACL
entries without the permissions field are accepted, so having an
optional field here is very much error-prone.

[1]: http://docs.ansible.com/ansible/acl_module.html
[2]: http://www.freebsd.org/cgi/man.cgi?format=html&query=setfacl(1)
[3]: http://linuxcommand.org/man_pages/setfacl1.html
2016-12-08 11:23:33 -05:00
Jérémie Astori 1b34f1a7ac Fix wrong expectation regarding entry format in acl module 2016-12-08 11:23:32 -05:00
Jérémie Astori 6c298e20c0 Fix wrong processing of lines returned by setfacl in test mode 2016-12-08 11:23:32 -05:00
Jérémie Astori 08e8f732c5 Fix minor whitespace issues 2016-12-08 11:23:32 -05:00
Matthias Frey 2ed50d5e5b assemble: add file validation support. 2016-12-08 11:23:31 -05:00
Brian Coca a1992ad890 updated encoding comment and expanded authors field 2016-12-08 11:23:31 -05:00
Jérémie Astori 288a9d8500 Set version number in recursive option description 2016-12-08 11:23:30 -05:00
Jérémie Astori 17170992c3 Ensure Python 2.4 compatibility and Linux-restricted support
- Make build_entry compatible with Python 2.4
- Re-add missing warning/comment that was forgotten while refactoring
- Replace `all()` with a good ol' for-loop Python 2.4 compatibility
- Make a condition check more explicit (when `state` is `query`)
- Make sure this module can only be run with on a Linux distribution
- Add a note about Linux-only support in the documentation
- Set the version in which recursive support was added, 2.0
2016-12-08 11:23:30 -05:00
Marius Gedminas 9ab2e9c740 Fix obvious copy-paste error in module docs 2016-12-08 11:23:30 -05:00
Toshio Kuratomi a10b0e6fff Modify the default for synchronize's dest_port again 2016-12-08 11:23:30 -05:00
Toshio Kuratomi 052320b452 Update docs to reflect precedence for synchronize's dest_port param 2016-12-08 11:23:29 -05:00
Toshio Kuratomi 9ba5a438a8 Allow mode as a synchronize parameter (handled in action plugin) 2016-12-08 11:23:29 -05:00
Markus Juenemann 47065c2a43 Removed check whether destination directory is writable from files/unarchive.py. This check will prevent extraction of an archive if the archive does not actually write to the destination directory but only writes to any writable sub-directories of it. The underlying tar command will report errors should it try to write to read-only directories. 2016-12-08 11:23:29 -05:00
Jérémie Astori edf531efd7 Add recursive support for ACL module (fix #5053, fix #5550, fix #7276) 2016-12-08 11:23:28 -05:00
Toshio Kuratomi a01a800b65 Fi the local_rsync_path parameter used by the action plugin 2016-12-08 11:23:26 -05:00
James Cammarata ba9ba7d0f5 In copy, set the mode before running th validation
Because some programs that do validation (like visudo) may require
the permissions to be more restricted.

Fixes ansible/ansible#11385
2016-12-08 11:23:26 -05:00
Brian Coca 56354731ce fixed fragment docs 2016-12-08 11:23:26 -05:00
Mike Putnam 9623cd570c Add missing GPLv3 License header
Fixes #1643
2016-12-08 11:23:25 -05:00
Jeff Widman 70b3290a3b Move validate command into doc fragment and fix a few typos 2016-12-08 11:23:24 -05:00
Isaac Simmons 07ccd3c86b Handle ini file properties that contain interpolation errors in the initial values 2016-12-08 11:23:23 -05:00
Patrik Lundin 88881415e9 synchronize: add flag for verifying target host.
Add the possibility to verify the target host using a "verify_host"
flag. It is disabled by default to not change the module behaviour.
2016-12-08 11:23:22 -05:00
Brian Coca e4dd0d98d4 now captures any exceptions when trying to create directories 2016-12-08 11:23:21 -05:00
Brian Coca 60d160a2e9 Also document in example that unarchive download was added in 2.0 2016-12-08 11:23:20 -05:00
Mitchell Ludwig b664603a4d Improved stat documentation 2016-12-08 11:23:20 -05:00
Brian Coca f8f4a7dcdf added ignore hidden to assemble 2016-12-08 11:23:18 -05:00
Matthew Gilliard 17a40aa259 Handle race condition in directory creation.
If we try to make a directory, but someone else creates the directory
at the same time as us, we don't need to raise that error to the user.
They asked for the directory to exist, and now it does. This fixes
the race condition which was causing that error to be raised, and
closes #1648.
2016-12-08 11:23:16 -05:00
verm666 6acfa5fcee unarchive: fix @bcoca's remarks, issue #1575 2016-12-08 11:23:16 -05:00
verm666 b898cb656b unarchive: fix work with 0 bytes archives
This change is in response to issue #1575
2016-12-08 11:23:15 -05:00
Vladimir Martsul db646757c1 Add "force" description
Add "force" option description
2016-12-08 11:23:15 -05:00
gimoh fd69c5687b Do not insert extra newline if line already contains it
When using YAML multi-line strings, e.g.:

- lineinfile:
    dest: /tmp/foo
    line: >
      foo
      bar

the line already ends with a newline.  If an extra newline is appended unconditionally it will lead to inserting an extra newline on each run.
2016-12-08 11:23:13 -05:00
Toshio Kuratomi 870446dd6b Update version_added to 2.0 for the partial option 2016-12-08 11:23:12 -05:00
Juan Picca 81ea358b09 synchronize module: add partial option 2016-12-08 11:23:12 -05:00