Commit Graph

555 Commits (2162d7d4de6507dd5711fd15ccb67f60d032ec4b)

Author SHA1 Message Date
Christopher Torgalson 7138742bcc Clarifies File module docs re: absent state (#28748)
- The passage beginning "Note that file will not fail..." was slightly
  unclear about the fact that it referred to the behavior of the module
  when `state` is set to `absent`.
- Fixes #23203
2017-08-30 16:00:30 +02:00
Dag Wieers 9b31ca8d16 Small cleanup in return values (#28693) 2017-08-27 00:25:20 +02:00
Dag Wieers 357119f3b7 xml module: Improve documentation (#28667)
Missing bits and pieces, clarifications and examples.

This fixes #27951
This fixes #28119
This fixes cmprescott/ansible-xml#59
2017-08-25 23:53:38 +02:00
Dag Wieers 11c9756d9c xml module: Make user interface much more restricted (#28657)
So the xml module has a lot of parameters that combined together do
specific things. however it does not really describe which parameters
are required together, or which ones are required.

This PR fixes that situation and makes it impossible to provide
confussing parameters combinations.

Also, `pretty_print` was used as a flag to modify the output, but also
as an action to reformat the file (without other change). This is
problematic the way it was designed. This fixes that too.

This fixes #28194
2017-08-25 15:01:24 +02:00
Nicolas Porcel ba420c47cd synchronize: Use private_key and ssh_user with delegate_to (Fixes #16215) (#21686) 2017-08-24 21:09:15 -04:00
Dag Wieers 2634ef955a xml module: Better change detection, improved tests (#28460)
This PR includes:

- Improvements to change-detection by comparing 2 objectified XML trees
- Implement better integration tests by comparing 2 files using copy
2017-08-25 02:07:58 +02:00
Dag Wieers 7a182fc43e xml module: Add backup to pretty_print too (#28604) 2017-08-24 22:14:17 +02:00
Dag Wieers 967fbcb662 xml module: Add backup support (#28595)
This fixes #27949
2017-08-24 15:20:59 +02:00
Dag Wieers d8429a69c5 xml module: Parse and evaluate xpath on input (#28591)
* xml module: Parse and evaluate xpath on input

This fixes cmprescott/ansible-xml#68

* Update error string
2017-08-24 14:09:26 +02:00
Dag Wieers 26d75144b2 xml module: Implement diff mode (#28592)
This fixes #27952
2017-08-24 14:05:13 +02:00
Rastislav Barlik f0a6f1637b Update xattr.py (#28458)
Fix wrong default value in documentation
2017-08-22 11:45:41 -04:00
nrwahl2 535ede4d15 Fixes #28444: Renamed function print_match to match_print due to variable name conflict (#28445)
* Fixes #28444: Renamed print_match function to match_print due to name conflict

* Rename `match_print` to `do_print_match`

I think this is less confusing.
2017-08-20 05:28:30 +02:00
Dag Wieers b9cee65756 Original author wishes not to be notified by ansibot (#28447)
And moving maintainers to BOTMETA.yml as well.
2017-08-20 03:56:31 +02:00
David Kretch beed59f303 Fix trailing space in ec2_vol example, fix 'the the' typos (#28440)
* Fix 'the the' typos, fix 'pahting' filename typo

* Change 'the the' typos to a single 'the'.
* Change `playbook_pahting.rst` to `playbook_pathing.rst`.

* Delete trailing space in ec2_vol example

Delete the trailing space in `instance: "{{ item.id }} "`, which makes the
example fail when run because it looks for instance "i-xxxx ".
2017-08-19 23:00:51 +02:00
Guillaume Coré ccdea1c3b8 archive: allow ZIP64 by default (#24200)
allowZip64 is True by default since python 3.4,
see https://docs.python.org/3/library/zipfile.html#zipfile-objects

With python 2.7, when the file or folder to zip is >2G,
zipfile raises LargeZipFile.

This commit set allowZip64 to true.

Fixes #24125
2017-08-18 14:55:40 -04:00
Abhijeet Kasurde a572de626c Pep8 fixes for acl module (#24666)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-08-18 14:31:16 -04:00
Mehran Kholdi ecfa7f696d Enforce `state='file'` in `copy` module
This was causing wrong behaviour when `prev_state` was `hard`-link,
since the `file` module tried to apply the same `state` on the new
file, causing unexpected errors.

Particularly, both `overlay` and `devicemapper` storage drivers in
docker use hardlinks to share files between layers. This causes
most ansible playbooks to fail when working with files from layers
below.
2017-08-17 18:16:17 -07:00
Toshio Kuratomi f203ca7907 Update metadata to 1.1 2017-08-15 23:12:08 -07:00
Dag Wieers f345ba5c38 More maintainers is a good thing, right ? 2017-08-14 23:50:21 +02:00
Evan Kaufman 767be93f77 Replace - Clarified regex docs (#26727)
* Clarified docs regarding multiline mode and negated character sets

Refs #26712

* Escaped newline
2017-08-14 14:25:08 -07:00
Pierre-Louis Bonicoli e52096e78a copy: grammar fix 2017-08-13 08:22:22 -07:00
Pierre-Louis Bonicoli ed8279cce0 copy: fix YAML documentation format 2017-08-13 08:22:22 -07:00
Pierre-Louis Bonicoli 1f5c908370 copy: state behavior when dest is a nonexisting path 2017-08-13 08:22:22 -07:00
Pierre-Louis Bonicoli 16f2e47559 copy: use formatting options 2017-08-13 08:22:22 -07:00
Pierre-Louis Bonicoli 28eb9466c7 copy: document behavior related to dest creation 2017-08-13 08:22:22 -07:00
Marko Stanković 6e7cf7377b xml: Add example with namespaces and clarify note (#28113)
* xml: Add example with namespaces and clarify note

* Correct the line length
2017-08-13 05:04:35 +02:00
T. Miller 93e1caccb7 ini_file: Match tabs before options (#28102) 2017-08-12 09:17:25 +02:00
Toshio Kuratomi 039383d90f Fix symbolic mode usage in unarchive with zip files
Fixes #21090
2017-08-11 19:01:41 -07:00
Toshio Kuratomi a3132e5dd6 Optimize template (#28044)
* Optimize template

* In fixing template to handle diff correctly #24477, I introduced more
  round trips to the remote end which slowed things down  The new code now
  uses one fewer round trips than the old code.
* Reimplement a large part of template by calling the copy action plugin
  instead of doing it in template's code.  This reduces the code in
  template and gives us one place to fix bugs and optimize.
* Add a follow parameter to template that mirrors the follow parameters
  for file and copy.
* Fix copy's diff handling (probably broken in my rewrite for in 2.4
  development)
* Adjusted when copy creates tmp dirs to rduce round trips in copy and
  template.

Fixes #27956
2017-08-11 17:50:49 -07:00
chriskarel 991918e9d2 Fix idempotency for Unix permissions in zip files. (#24580)
* Fix idempotency for Unix permissions in zip files.

This fix prevents the unarchive module from reporting 'changed' when a zipfile contains items with Unix permissions that differ from the system default.

* Update zip unarchive tests.

Additional tests for the unarchive module with zip files:
- Test file in zip archive with non-default permissions
- Test file added to zip archive with Windows permissions

* Additional fix for mixed win/unix archives.

  Turns out my original fix fails under some mixed archives, as setting the umask to zero can be applied to those files.  This creates a per-file umask variable, so a mix of permission types don't cause problems.

* CI Checks

CI checks for archives with:
* non default Unix permissions
* Windows permissions


* Workaround for BSD differences.

Using Zipinfo due to lack of support in BSD unzip.
Permissions handling is also different in BSD -- always applies UMASK to file permissions.

* Added checks for creating directories and SSH keys for existing users.
2017-08-11 12:36:46 -07:00
giovannisciortino 49209bfcc5 blockinfile: add --diff support in check mode (#27997) 2017-08-11 07:58:45 +02:00
Dag Wieers 8451d945aa Add new maintainer 2017-08-10 17:11:55 +02:00
Luke Armstrong fd18ade465 Documentation - modules/files/unarchive (#27998)
Last example is incorrect and will not run without throwing an error.
2017-08-10 10:32:08 -04:00
Dag Wieers 6874ba23ff New module: Support manipulating XML files (#25323)
* Import original unmodified upstream version

This is another attempt to get the xml module upstream.
https://github.com/cmprescott/ansible-xml/

This is the original file from upstream,
without commit 1e7a3f6b6e2bc01aa9cebfd80ac5cd4555032774

* Add additional changes required for upstreaming

This PR includes the following changes:

- Clean up of DOCUMENTATION
- Rename "ensure" parameter to "state" parameter (kept alias)
- Added EXAMPLES
- Remove explicit type-case using str() for formatting
- Clean up AnsibleModule parameter handling
- Retained Python 2.4 compatibility
- PEP8 compliancy
- Various fixes as suggested by abadger during first review

This fixes cmprescott/ansible-xml#108

* Added original integration tests

There is some room for improvement wrt. idempotency and check-mode
testing.

* Some tests depend on lxml v3.0alpha1 or higher

We are now expecting lxml v2.3.0 or higher.
We skips tests if lxml is too old.

Plus small fix.

* Relicense to GPLv3+ header

All past contributors have agreed to relicense this module to GPLv2+, and GPLv3 specifically.

See: https://github.com/cmprescott/ansible-xml/issues/113

This fixes cmprescott/ansible-xml#73

* Fix small typo in integration tests

* Python 3 support

This PR also includes:
- Python 3 support
- Documentation fixes
- Check-mode fixes and improvements
- Bugfix in check-mode support
- Always return xmlstring, even if there's no change
- Check for lxml 2.3.0 or newer

* Add return values

* Various fixes after review
2017-08-08 20:21:03 -07:00
Andreas Olsson ccc68f7157 Don't do additional path expand in file module
Since the module's path parameter is of the AnsibleModule type path
it's already being expanded. Hence no need to have the
set_fs_attributes_if_different method do its own expand.

This additional expand is an actual problem when the file module runs
recursively, as real existing file names can be mistakenly expanded to
something completely wrong and non-existing.

Fixes #25005
Fixes #25639
2017-08-08 09:05:06 -07:00
Dag Wieers 25e67d804c iso_extract: Reimplement using 7zip (not requiring root) (#24937)
* Reimplement iso_extract using 7zip (not requiring root)

So one of the drawbacks of the original implementation is that it required root for mounting/unmount the ISO image.
This is now no longer needed as we use 7zip for extracting files from the ISO.

* Fall back to using mount/umount if 7zip not found

As discussed with others.

Also improved integration tests.
2017-08-04 14:38:42 -04:00
Toshio Kuratomi fbf6cb8fff Add boilerplate to fetch.py
This completes the modules/files directory so we can now check it for
regressions.
2017-08-03 13:15:12 -07:00
Abhijeet Kasurde bf54a0c3e5 Fix missing import and boilerplate
Added fix for missing imports and boilerplate in files modules,
also, removed get_exception calls to match 2.6> exception handling.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-08-03 08:39:15 -07:00
Pete Travis 7a35b95609 provide usable examples for sudo validation 2017-08-03 11:04:07 -04:00
Ryan Sabatini f65f3570a8 Add Ability to Exlude Paths from Archive
Archive.py allows you to pass a glob path of files to archive.
This allows end users to glob a dir, and exlude a list of dirs
from the archive which are not necessary.
2017-07-31 11:46:16 -07:00
Dag Wieers be1c517f4d Add example of templating inline using copy module (#19752)
* Add example of templating inline using copy module

The **copy** module documentation implies that `content:` only works
for 'simple values' and for complex stuff you need the **template**
module, but that is an understatement. You can use **copy** to template
anything you desire.

So I changed the wording, added an example, and also added a note
to the template module that the **copy** module could be used for
'inline templating'.

This fixes #19741.
2017-07-22 22:12:31 -07:00
Toshio Kuratomi 3a2afc7825 Allow copy to writable files in unwritable dirs (#23509)
unsafe_writes currently allows updating a file that can be updated but
not removed (for instance, when docker mounted).  This change also
allows unsafe_writes to write to writable files in unwritable dirs. For
instance, if a system has made a single file inside of /etc/ writable to
a specific normal user.

Fixes #14961
2017-07-20 12:41:57 -07:00
Toshio Kuratomi f86ce0975d Add a directory walker to copy
* We need a directory walker that can handle symlinks, empty directories,
  and some other odd needs.  This commit contains a directory walker that
  can do all that.  The walker returns information about the files in the
  directories that we can then use to implement different strategies for
  copying the files to the remote machines.
* Add local_follow parameter to copy that follows local symlinks (follow
  is for remote symlinks)
* Refactor the copying of files out of run into its own method
* Add new integration tests for copy

Fixes #24949
Fixes #21513
2017-07-20 08:01:29 -07:00
Toshio Kuratomi 84fb9f032d Fix symlink handling (#26877)
* Fix symlink handling

On symlinks, make lnk_source return the absolute path of the target of the symlink.
Add a new return field lnk_target that returns the actual, unexpanded path to the target of the symlink.
2017-07-17 12:06:35 -07:00
Abhijeet Kasurde 156b29b26b Fix for check_mode in archive (#26788)
Fix adds check_mode fix for archive module. Also,
adds unit tests for archive module

Fixes: #26750

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-07-14 09:06:17 -04:00
James Cammarata 95a0fe37da UserKnownHostsFile=/dev/null when verify_host: false
This is a new fix to replace #20361 due to the synchronize module changing
sufficiently to make that commit no longer merge cleanly.

Fixes #20361
Related to #20311
2017-07-05 09:42:04 -05:00
Phillip Thurston a2f38de173 Corrected the examples in find module to make sure the commands are accurate to what is being described. 2017-06-28 18:17:22 -04:00
Brian Coca 44bef1dc6b corrected supported_by key 2017-06-28 15:12:42 -04:00
Dag Wieers 7d7051fc54 Mutually reference Windows and non-Windows modules (#25482)
* Mutually reference Windows and non-Windows modules

To make it easier for Windows or non-Windows users to find the relevant
module information, we are mutually referencing both variants in their
documentation.

We are also adding a special note if a module works on both Windows and
non-Windows targets.

* Mutually reference Windows and non-Windows modules

To make it easier for Windows or non-Windows users to find the relevant
module information, we are mutually referencing both variants in their
documentation.

We are also adding a special note if a module works on both Windows and
non-Windows targets.

* Replace 'look at' with 'use', as requested

ci_complete
2017-06-26 16:26:53 +01:00
GennadySpb 26fec4f107 Fix type for 'attributes' field 2017-06-22 15:41:05 -04:00
Andrew Makousky f2abc4cf43 Improve documentation of 'remote_src' in the file copy module. (#23946)
Now that remote-to-remote copies are supported in the copy module,
the module documentation has been updated to indicate this in the
synopsis and examples to make the capability obvious for someone
skimming the documentation.
2017-06-18 08:38:17 +01:00
Abhijeet Kasurde 7521be73c1 Add missing import for get_exception
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-06-12 13:18:54 -04:00
Abhijeet Kasurde b89cb95609 Fix spelling mistakes (comments only) (#25564)
Original Author : klemens <ka7@github.com>

Taking over previous PR as per
https://github.com/ansible/ansible/pull/23644#issuecomment-307334525

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-06-12 07:55:19 +01:00
Evan Kaufman 3d1701b959 Fixed subsection replacement with before/after patterns
* using a _named_ capture in our assembled pattern, since before/after could potentially contain their own parenthesized captures
* ensuring we only replace against the named capture in question
* removing some duplication in the regexp replacement, that was introduced in ansible/ansible#22535
* fixed edge case of before/after not matching file content to replace

Fixes ansible/ansible#24840
2017-06-07 01:45:34 -07:00
Toshio Kuratomi 6e473a432b Document the encoding parameter for the replace module
Add encoding parameter for replace to changelog
2017-06-05 19:39:56 -07:00
Evan Kaufman 49fe53266f Replace - workaround for non-utf8 text (#24861)
* Workaround for non-utf8 text exceptions
* Added encoding param, using to convert from bytes to text and back

Fixes ansible/ansible#24521
2017-06-05 19:35:18 -07:00
Dag Wieers 8cbed3c534 unarchive: PEP8, imports, cosmetics (#24654)
- Make PEP8 compliant
- Ensure imports are specific
- Few cosmetic changes (sort lists, casing, punctuation)
2017-06-02 16:22:52 +01:00
Dag Wieers 2f33c1a1a1 find: PEP8, imports, cosmetics (#24646)
- Make PEP8 compliant
- Ensure imports are specific
- Few cosmetic changes (sort lists, casing, punctuation)
2017-06-02 08:43:40 +01:00
Dag Wieers 91ee93ce13 patch: PEP8, imports, cosmetics (#24649)
- Make PEP8 compliant
- Ensure imports are specific
- Few cosmetic changes (sort lists, casing, punctuation)
2017-06-02 08:42:40 +01:00
Dag Wieers 09ba70f7c4 stat: PEP8, imports, cosmetics (#24653)
- Make PEP8 compliant
- Ensure imports are specific
- Few cosmetic changes (sort lists, casing, punctuation)
2017-05-30 18:31:56 +01:00
Brendan Almonte 8d8cfb5fcd Read directory_mode as 'raw' type
Reads the directory_mode param as 'raw' type to mirror the same behavior as mode.
This'll cause non-quoted values to be represented as an int, rather than a str.

Covered by 'assert recursive copied directories mode' test.

Fixes #24202
2017-05-23 11:33:19 -07:00
Matt Martz 4ac135c1b5 Fix logic surrounding copy and remote_src, remote_src is preferred, make copy action plugin only. Fixes #23591 (#24732) 2017-05-22 17:19:56 -07:00
pdasilva f8e47e2204 Changed assemble_from_fragments to use os.path.join (#24909)
Fixes #19437
2017-05-22 15:38:11 -07:00
Dylan Silva bba4549b43 Downgraded more modules from Curated to Community (#24751) 2017-05-18 08:28:41 -07:00
Matt Martz 63f8e6b68a Fix version_added for new option in template introduced in #21846 (#24307) 2017-05-04 14:53:00 -05:00
Toshio Kuratomi a0dfa8616a Make fetch default to fail on errors
Fixes #23501
2017-05-03 09:37:31 -07:00
Toshio Kuratomi 36d7c0c403 Fix places where path needs to be bytes on python3
These were discovered on python3 with fetch code that fails on errors.  Probably could be
provoked with particular sets of arguments to stat as well.
2017-05-03 09:37:31 -07:00
Erwin Lang b729b35e32 synchronize: Fix (delegated) local rsync
Makes delegated local rsync work even if ansible_host or ansible_ssh_host is set.
Makes local rsync work when no ssh is installed.
2017-04-27 09:33:26 -07:00
Andrea Tartaglia d1517f997a fixed RETURN docs for modules (#24011)
* fixed RETURN docs for remaining modules

* updated proxymysql_mysql_users 'sample' to yaml dict

* fixed whitespace errors
2017-04-26 15:56:13 +01:00
Sloane Hertel 00ebd0c89d make lineinfile docs clearer and make module pep8 (#23857) 2017-04-23 09:19:22 +02:00
Matt Parkes f0f20d8a1c ini_file 'create' parameter default value should be True
Updated create default value to True to match documentation (and common sense).
2017-04-13 11:08:21 -04:00
Ritesh Khadgaray 40d888922b stat: better documentation
- md5 fails if the file is not a regular file ( symlink, dir,..)
2017-04-11 12:19:07 -04:00
Hao Wang 3b5dd4e0a0 file module doesn't create hard link to given target directory 2017-04-10 12:20:46 -04:00
Karl Bergström c7860d4d4b Open unarchive file in binary mode
Recent Python3 versions require open() to specify binary mode if the data is anything other than text.

Python3: Use int() instead of long() in unarchive

Changes long() to int() for CRC values in the unarchive module. Affects unarchiving of zip files. Since CRC values in zipfile are 32 bits the behaviour should be unchanged even in Python 2.
2017-04-07 15:05:25 -07:00
Paul Montero 1963e506ec Open file in binary mode for python3 2017-04-07 14:47:28 -07:00
Erwin Lang 3efb11e225 synchronize: Exclude ssh_args from quoting
Makes it possible again to pass more than one argument via ssh_args to the synchronize module.
2017-03-30 19:40:27 -07:00
Brian Coca 7b197d823e let user control "auto-de-vault" (#22739)
* added option to toggle off autodevaulting

* fixes per feedbazck
2017-03-24 15:39:25 -04:00
Erwin Lang f7c9f44aab synchronize: Convert cmd to list and fix handling of the copy_links argument (#22573)
* synchronize: Convert cmd to list and fix handling of the copy_links argument

Converting cmd from str to list stops the pain of argument quoting/escaping.

* synchronize: Update imports according to #pullrequestreview-28758614
2017-03-24 09:22:45 -07:00
Toshio Kuratomi 65d9feea4f Revert "Quote ssh_args"
This reverts commit a9c3a452f0.
2017-03-24 09:18:35 -07:00
Toshio Kuratomi a9c3a452f0 Quote ssh_args
Fixes #22111
2017-03-24 09:17:34 -07:00
Dag Wieers ac43a1bbbc Windows: Use the correct newline sequence for the platform (#21846)
This change to the template action plugin make template use the
platform's native newline_sequence for Jinja.

We also added the option `newline_sequence` to change the newline
sequence using by Jinja if you need to use another newline sequence than
the platform default.

This was previously discussed in
https://github.com/ansible/ansible/issues/16255#issuecomment-278289414

And also relates to issue #21128
2017-03-23 19:47:10 -07:00
Matt Martz 3164e8b561 E501 fixes (#22879) 2017-03-22 20:50:28 -05:00
Brian Coca 455aff8436 ported fix from ansible-core #5639
From 3d09c94faeaa52075055f23744d8b52581c59bb2 Mon Sep 17 00:00:00 2001
Evan Kaufman <evan@digitalflophouse.com>
2017-03-21 16:03:00 -04:00
Brian Coca c6dedea1a6 corrected docs 2017-03-16 17:36:03 -04:00
Jens Carl cd39ff9996 Add parameters to limit replace to certain section of the file
Add parameters 'after' and 'before' to limit the replacement/remove of
lines to a certain section of the file.
2017-03-16 17:34:56 -04:00
Toshio Kuratomi eb1214baad New metadata 1.0 (#22587)
Changes to the metadata format were approved here:
https://github.com/ansible/proposals/issues/54
* Update documentation to the new metadata format
* Changes to metadata-tool to account for new metadata
  * Add GPL license header
  * Add upgrade subcommand to upgrade metadata version
  * Change default metadata to the new format
  * Fix exclusion of non-modules from the metadata report
* Fix ansible-doc for new module metadata
* Exclude metadata version from ansible-doc output
* Fix website docs generation for the new metadata
* Update metadata schema in valiate-modules test
* Update the metadata in all modules to the new version
2017-03-14 09:07:22 -07:00
John R Barker e5b990a55a Fix invalid fields in module DOCUMENATION (#22297)
* fix module doc fields

* More module docs corrections

* More module docs corrections

* More module docs corrections

* More module docs corrections

* correct aliases

* Review comments

* Must quote ':'

* More authors

* Use suboptions:

* restore type: bool

* type should be in the same place

* More tidyups

* authors

* Use suboptions

* revert

* remove duplicate author

* More issues post rebase
2017-03-09 16:20:25 +00:00
Toshio Kuratomi 1ea3313c90 Document synchronize limitations around become and connections (#22373)
* Document synchronize limitations around become and connections
2017-03-07 10:22:24 -08:00
Marius Gedminas 15c7288ab9 Show diff when file: state=link changes the symlink target (#22243)
* Show diff when file: state=link changes the symlink target

* Integration test for symlink target change

* Also check soft link idempotency
2017-03-06 11:29:20 -05:00
Dag Wieers 237411613d Ensure that filenames from archives are not expanded
This fixes #21795
2017-03-02 11:48:24 -08:00
Benjamin Jolivot 22d657d3c7 Fix #22130 (ini_file crash when destination file don't exists or is e… (#22132)
* Fix #22130 (ini_file crash when destination file don't exists or is empty)
2017-03-01 08:20:51 -08:00
Dag Wieers 65ee3a6f19 iso_extract: new module to extract files from ISO images (#21957)
This is the original iso_extract module from the ansible-provisioning project.
We are upstreaming all our modules, and this PR is part of that process.
2017-03-01 13:33:32 +00:00
Tim Rupp 888c8614fb Removes expanduser calls
The usage of type='path' includes the expanduser call itself. This
patch removes its duplicate usage. Related to #12263
2017-02-27 09:22:48 -05:00
Matt Clay 4554e8d769 Remove unnecessary shebangs and execute bits. 2017-02-22 18:13:46 -08:00
Evgeni Golov d3d1aa2dca synchronize: quote private_key (#21570)
otherwise rsync will fail when trying to access a key with spaces:

fatal: [default]: FAILED! => {"changed": false, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -i /home/user/Some Folder/.vagrant/machines/default/libvirt/private_key -S none -o StrictHostKeyChecking=no -o Port=22' --out-format='<<CHANGED>>%i %n%L' \"/etc/issue\" \"vagrant@192.168.121.10:/tmp/issue2\"", "failed": true, "msg": "Warning: Identity file /home/user/Some not accessible: No such file or directory.\nssh: Could not resolve hostname folder/.vagrant/machines/default/libvirt/private_key: No address associated with hostname\r\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: unexplained error (code 255) at io.c(226) [sender=3.1.2]\n", "rc": 255}
2017-02-17 14:18:41 +01:00
Matt Martz 7c00346714 Validate EXAMPLES as YAML 2017-02-15 13:01:43 -08:00
John R Barker 86e2feffc1 archive docs formatting (#21454) 2017-02-15 11:24:05 +00:00
Tim Rupp f8cbfad5e6 Removes usage of expanduser due to type 'path'
Removes the usage of the expanduser function because it is
being performed automatically by the type 'path' of the
path option.
2017-02-13 17:24:24 -05:00
Tim Rupp c4d3bf3207 Adds path type and remove expanduser
Related to #12263, this patch removes the usage of expanduser
in favor of the path 'type' for the module options of src and
dest
2017-02-13 12:05:40 -05:00
Tim Rupp 1fb53e6aaf Remove expanduser usage because of path type
With the addition of the 'path' type, the usage of expanduser
is redundant. This patch  removes that extra usage.
2017-02-13 12:05:08 -05:00
Dag Wieers f824b2ce8d Avoid having module documentation links to itself (#21329)
* Avoid having module documentation links to itself

A lot of modules use M(own_module) in their documentation causing a link
in the documentation to itself.

* Make note more clear now
2017-02-13 14:02:34 +00:00
Tim Bielawa 1b1d58eb7e Fix incorrect wording in the 'find' module 'paths' parameter 2017-02-10 16:30:31 -05:00
Dag Wieers 953ca38b67 Fix typo in example (#21227) 2017-02-09 16:40:07 -08:00
Tuomas-Matti Soikkeli 829f3bd019 Fix default value for remote_src (#21136)
Default value is clearly False, fixed it to correct value.
2017-02-09 00:25:27 -08:00
Craig Francis 3e003b10fa Reminder that lookup(‘file’) can be used (#20649)
* Reminder that lookup(‘file’) can be used

Sometimes the block of text does not easily fit into a playbook, so this acts as a reminder (or a prompt for anyone who hasn't used this before) that the content could be stored in an separate file.

I've also included `backup: yes` as I think this is a good example of where a backup might be needed.

* Correct the not so "smart quotes"

* Update blockinfile.py

Replace – with an an ASCII -
2017-02-07 13:57:49 +00:00
Brian Coca 770fb03157 minor fixes to template docs 2017-02-06 13:05:18 -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
Matt Clay cb76200c7d PEP 8 E111 & E114 cleanup. (#20838) 2017-01-30 15:01:47 -08:00
Matt Clay 10d9318de7 PEP 8 indent cleanup. (#20800)
* PEP 8 E121 cleanup.

* PEP 8 E126 cleanup.

* PEP 8 E122 cleanup.
2017-01-29 07:28:53 +00:00
Matt Clay 1c6bb4add9 Remove duplicate import. 2017-01-28 12:45:45 -08:00
Matt Clay e2c0b375d3 PEP 8 cleanup. (#20790)
* PEP 8 E115 cleanup.
* PEP 8 E131 cleanup.
2017-01-28 01:39:40 -08:00
Matt Clay d0d1158c5e PEP 8 cleanup. (#20789)
* PEP 8 E703 cleanup.
* PEP 8 E701 cleanup.
* PEP 8 E711 cleanup.
* PEP 8 W191 and E101 cleanup.
2017-01-28 00:12:11 -08:00
Matt Clay d913f69ba1 PEP 8 W291 whitespace cleanup. 2017-01-27 17:08:02 -08: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
Dag Wieers a657572240 Removing an non-existing directory complains (#19014)
The following playbook:

```yaml
- hosts: localhost
  tasks:
  - file:
      path: /tmp/non-existing-foo-bar
      state: absent
      recurse: yes
```

causes this error:

```
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "recurse option requires state to be 'directory'", "path": "/tmp/non-existing-foo-bar", "state": "absent"}
```

The included fix ensures that when recurse is added, we no longer assume
it is a file, but accept that it is a directory.
2017-01-27 14:58:31 -08:00
Matt Clay 63b1e0c277 Fix infrequent PEP 8 issues. 2017-01-27 14:06:21 -08:00
Mark Mielke b4a1542670 Reduce the system calls performed by the "file" module
when using "state: link", and particularly when using
"force: yes".

Symbolic link resolution can be expensive. In our case,
the symbolic links are legacy links to automounts, and
the "file" task was causing all of the legacy links to
be traversed and mounted on every host every time the
task executed, even when the links were correct and there
was nothing to do.

This change avoids the system calls that perform the
symbolic link resolution by taking advantage of the short
circuit behaviur of the boolean "and" operator. The code
behaviour is unchanged except that it no longer performs
unnecessary system calls.

As it turns out, this change is not sufficient to fully
solve the symbolic link resolution problem, as the "file"
module still performs a stat() at the end of execution to
provide the caller with information about the file.
However, this change is very simple, it will eliminate
unnecessary system calls in a number of use cases, and it
gets the "file" module closer to the desired end result.
2017-01-24 12:31:25 -08:00
HyungCheol Kim fc04164505 Correct typos. (#20490) 2017-01-20 08:03:49 -05:00
Fabio Alessandro Locati a0abaf5409 files/patch: improve examples (#20463) 2017-01-19 17:13:09 +00:00
Brian Coca ba97a34bb3 minor doc fix 2017-01-17 10:16:32 -05:00
peay 222e1c97be Fixes #19883: Handle INI files without ending newline (#20016) 2017-01-17 10:16:25 -05:00
sirkubax 12628ed7e5 fix https://github.com/ansible/ansible/issues/20183 (#20217)
* fix https://github.com/ansible/ansible/issues/20183

* make it nicer
2017-01-16 21:05:54 -05:00
Dag Wieers bd793b85bf Fix typo in my example (#20293)
I noticed I was missing the -f flag to make this work correctly.
2017-01-16 14:12:34 +00:00
Dag Wieers 1ad55ec9de Consistent path attribute for file-related modules
Not all file-related modules consistently use "path" as the attribute to specify a single filename, some use "dest", others use "name". Most do have aliases for either "name" or "destfile".

This change makes "path" the default attribute for (single) file-related modules, but also adds "dest" and "name" as aliases, so that people can use a consistent way of attributing paths, but also to ensure backward compatibility with existing playbooks.

NOTE: The reason for changing this, is that it makes Ansible needlessly harder to use if you have to remember that e.g. the xattr module requires the name attribute, the lineinfile module requires a dest attribute, and the stat module requires a path attribute.
2017-01-13 15:49:42 -05:00
Toshio Kuratomi 08d6990e67 Fix code-blocks to use correct syntax highlighting 2017-01-08 09:18:45 -08:00
Brian Coca 4672058b1f updated unarchive docs for url handling 2017-01-06 16:21:55 -05:00
Brian Coca 08e0f6ada5 allow modules to set custom stats (#18946)
can be per run or per host, also aggregate or not
set_stats action plugin as reference implementation
added doc stub
display stats in calblack
made custom stats showing configurable
2017-01-05 16:38:36 -05:00
Michael Herold a532dd915a Adds description for ini_file "section: null" 2016-12-19 21:10:30 -05:00
Dag Wieers 2f90091f0a Add an important example for SSHd
Sudoers is a great example to show how you can prevent shutting yourself
out. But SSHd is at least as important to avoid syntax errors causing a
lot of grieve. So I think it deserves a spot in this list :-)
2016-12-15 20:42:51 -05:00
Carlos E. Garcia 0b8011436d minor spelling changes 2016-12-13 13:51:13 -05:00
Evan Kaufman aaf13e07fe Handle byte/string conversion on read/write with text module_utils (#19188)
Fixes ansible/ansible-modules-core#5840, moved from ansible/ansible-modules-core#5847
2016-12-11 09:00:01 +01:00
Fabio Alessandro Locati e788f13956 Remove unused quotes - files/unarchive.py (#19155) 2016-12-10 09:27:35 -05:00
Matt Clay c709b22e5c Fix differences with devel. 2016-12-08 11:35:21 -05:00
Fabio Alessandro Locati f5da520bbb Consistency in space between parenthesys (#18796) 2016-12-08 11:35:20 -05:00
James Cammarata 011ea55a8f Relocating extras into lib/ansible/modules/ after merge 2016-12-08 11:35:18 -05:00
James Cammarata 8afa090417 Resolving differences in core modules post-merge 2016-12-08 11:25:36 -05:00
Toshio Kuratomi 7319104552 Refreshed metadata for core modules 2016-12-08 11:25:35 -05:00
Fabio Alessandro Locati 2e34bad425 Call main in conditional way - files (#5828) 2016-12-08 11:25:35 -05:00
Fabio Alessandro Locati a5a15acd55 Native YAML - files/file.py (#5799)
* Native YAML - files/file.py

* Rollaback part of the change as for request
2016-12-08 11:25:35 -05:00
Brian Coca 2ba5967673 fix yaml format, clarify docs 2016-12-08 11:25:32 -05:00
Brian Coca b278fafec8 updated desc 2016-12-08 11:25:32 -05:00
Orion Poplawski ade7b47f28 Be able to find all contents of a directory (#3711) 2016-12-08 11:25:32 -05:00
jctanner 10f0d3ca95 Set b_src to abspath of b_path so that symlinks work again. (#5678)
Fixes #5653
2016-12-08 11:25:32 -05:00
David Wittman 85f6c26dff Add 'link' file_type to find_module
- Adds the 'link' file_type for finding symbolic or hard links
 - Use `os.lstat` instead of `os.stat` to prevent the following
   of links when statting the file.
2016-12-08 11:25:31 -05:00
Sam Doran 895179929c Examples syntax batch6 (#5623)
* Change example syntax on os_auth module

* Change example syntax on os_client_config module

* Change example syntax on os_image_facts module

* Change example syntax on os_networks_facts module

* Change example syntax on os_nova_flavor module

* Change example syntax on os_object module

* Change example syntax on os_server module

* Change example syntax on os_subnet_facts module

* Change example syntax on rax_files module

* Change example syntax on rax_files_objects module

* Change example syntax on mysql_db module

* Change example syntax on file module

* Change example syntax on uri module

* Change example syntax on cl_bond module

* Change example syntax on cl_bridge module

* Change example syntax on cl_img_install module

* Change example syntax on cl_interface module

* Change example syntax on cl_license module

* Change example syntax on cl_ports module

* Remove trailing colon
2016-12-08 11:25:31 -05:00
Sam Doran 385d34a3d7 Change example syntax on xattr module 2016-12-08 11:25:30 -05:00
Sam Doran c5921612d1 Change example syntax on unarchive module 2016-12-08 11:25:29 -05:00
Sam Doran f71134cb98 Change example syntax on template module 2016-12-08 11:25:29 -05:00
Sam Doran a1b945a23e > Change example syntax on synchronize module 2016-12-08 11:25:29 -05:00
Sam Doran 065749ee2a Change example syntax on stat module 2016-12-08 11:25:29 -05:00
Sam Doran d3e7d4f469 Change example syntax on replace module 2016-12-08 11:25:29 -05:00
Sam Doran 25f6f36a92 Change examples syntax on lineinfile module 2016-12-08 11:25:29 -05:00
Sam Doran 1923666b22 Change examples syntax on ini_file module 2016-12-08 11:25:29 -05:00
Sam Doran ba76df1af1 Change examples syntax on find module 2016-12-08 11:25:29 -05:00
Sam Doran 0c46813871 Change examples syntax on file module 2016-12-08 11:25:29 -05:00
Sam Doran 6ea87c583b Change examples syntax on fetch module 2016-12-08 11:25:29 -05:00
Sam Doran 532c77849a Change examples syntax on copy module 2016-12-08 11:25:29 -05:00
Sam Doran 8f097580ec Change examples syntax on assemble module 2016-12-08 11:25:28 -05:00
Sam Doran c694fe6ca4 Change examples syntax on acl module 2016-12-08 11:25:28 -05:00
Brian Coca 847cc0a1ec Revert "stat: doc: add version for new returns" 2016-12-08 11:25:28 -05:00
Brian Coca 50c9a276d7 added file flags/attributes to stat (#5358)
depends on http://github.com/ansible/ansible/issue/18213
also documented return version of fields added in 2.2
added get_mime to keep consistency
changed default mime behaviour
2016-12-08 11:25:28 -05:00
Gyorgy Szombathelyi 33ef72b584 Ini_file: fix regression with the create option
The new create option with the default value 'no' changes the
behavior from the previous Ansible releases. Change the default to
'yes' to create missing ini files by default.

Fixes: #5488
2016-12-08 11:25:28 -05:00
René Moser c8da9b012b stat: doc: add version for new returns (#5594) 2016-12-08 11:25:28 -05:00
Michael Herold e5cc4a45d3 Removes outdated "requirement" and outdated "note" (#5332)
- 7f59773460d79b3dae34c375ba68caea1bfc09a8 no longer uses `ConfigParser`
- 1d4c0abe2902d91b2895452feedcf72bf3dd9e20 removed the `import` statement
2016-12-08 11:25:26 -05:00
zuiurs eeecc3adcc fix the behavior that the dest is directory
This fixes the behavior that the dest is directory,
when we set the "force: no" argument.
To be join the dest and the src's basename,
before checking the "force" argument.
2016-12-08 11:25:25 -05:00
bencomp d25ba6a30a Make find return sample a YAML dict
In the description of the find module return value, the sample dict
has its key=value strings converted to key=value: None in the
web documentation. This commit updates the sample output to a 'real'
dict.

Minor additional edit in the description: "return list *of* files".
2016-12-08 11:25:24 -05:00
Evan Kaufman 42079bcc59 Exposed backup file path, simplified result args (#5364)
Fixes #245
2016-12-08 11:25:24 -05:00
Timothy Appnel 5a17277bd3 clarifies synchronize module on use of --delayed-updates 2016-12-08 11:25:24 -05:00
Luca Berruti 2bbbf58156 ini_file: return more infos on changes. 2016-12-08 11:25:23 -05:00
Luca Berruti 6d8b140f46 ini_file: diff support. 2016-12-08 11:25:23 -05:00
Luca Berruti 73401182c1 ini_file: add create= option. 2016-12-08 11:25:23 -05:00
Luca Berruti 1a22dde1ac ini_file: fixes #1788, fails --check when file doesn't exist. 2016-12-08 11:25:23 -05:00
Brian Coca fccaf883da refactor stat
make format function 'format only'
added platform dependant info, when it is available
avoid rechecking same info
added comments to each info gathering section

(cherry picked from commit a79acf73d7eb79b76d808ff8a1d6c505dfd9ec82)
2016-12-08 11:25:23 -05:00
Charles Zaffery 4c830400f8 Remove line when 'state: absent' with 'option:' instead of commenting 2016-12-08 11:25:23 -05:00
Michael Scherer 3f43879db8 Cleanup imports of xattr
Since the module use re and os, we need to import them.
And rather than importing '*', we should limit to the
only object/function needed, so we can more easily refactor
later.
2016-12-08 11:25:21 -05:00
Michael Scherer a567942405 Fix unarchive on python3
Since handler.files_in_archive is a list of files coming from
various executables output, that's a bytes list, and we use it
with dest who is a str. So we need to convert that to native
type.
2016-12-08 11:25:20 -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
Toshio Kuratomi 007b5f4c32 Fix assemble module for python3 2016-12-08 11:25:18 -05:00
Matt Clay 25d829c8f2 Detect tar type (bsd, gnu) and only use gnu tar. (#4352)
* Detect tar type (bsd, gnu) and only use gnu tar.

* Revert return code checking for TgzArchive.
2016-12-08 11:25:14 -05:00
Andrew Gaffney 460b0e1ab6 Match existing INI file entry with leading whitespace (fixes #4997) (#4998) 2016-12-08 11:25:13 -05:00
JesseEmond 6ddbc63b1d Unarchive stop passing file mode to tar command (#4179)
Fixes #4063.

Tar does not use this parameter on extraction (-x) or diff (-d)(the
only two cases where it is passed in unarchive). It only uses it on
creation:
https://www.gnu.org/software/tar/manual/html_section/tar_33.html

Providing `unarchive` with a file mode of `0755` (octal) makes it pass
the argument `--mode 493` (493 = 0755 in decimal) to `tar`, which then
fails while verifying it (because it contains an invalid octal char
'9'). Not passing the parameter to tar solves the issue.
2016-12-08 11:25:12 -05:00
nichivo c4f43eb965 Insert missing option line before blank lines (#4747) 2016-12-08 11:25:10 -05:00
Brian Maddy 7ca911d345 typo in stat.executable (was stat.excutable) (#4886)
I didn't actually run this because it's so simple, but it seems correct.
2016-12-08 11:25:09 -05:00
Dag Wieers 433dfd0c5b Don't add included files as arguments on the command line (#4626)
This means we will have to unarchive the complete archive if a single change is found.
Unfortunately we cannot fix this for `unzip`, the only hope is a pure-python reimplementation.

This fixes problems reported in the comments of #3810
2016-12-08 11:25:04 -05:00
Dag Wieers 976d876e55 Ensure unicode characters in zip-compressed filenames work correctly (#4702)
* Ensure unicode characters in zip-compressed filenames work correctly

Another corner-case we are fixing hoping it doesn't break anything else.

This fixes:
- The correct encoding of unicode paths internally (so the filenames we scrape from the output and is returned by zipfile match)
- Disable LANG=C for the unzip command (because it breaks the unicode output, unlike on gtar)

* Fix for python3 and other suggestions from @abadger
2016-12-08 11:25:03 -05:00
Brian Coca a42cb96b75 added backup_file to module returns (#4723)
fixes #14502
also cleaned up some unused stuff and fixed imports
2016-12-08 11:25:02 -05:00
Dag Wieers 5995097e61 Support DOS file attributes (e.g. archive-bit or hidden-bit) (#4705)
This fixes #4554
2016-12-08 11:25:02 -05:00
Evan Kaufman 77f5472a53 Declare empty diff dict ahead of time (#4646)
Fixes #4634
2016-12-08 11:24:59 -05:00
Toshio Kuratomi 69ec272982 Python3 fixes to copy, file, and stat so that the connection integration tests can be run (#4632)
* Python3 fixes to copy, file, and stat so that the connection integration tests can be run

* Forgot to audit the helper functions as well.

* Fix dest to refledt b_dest (found by @mattclay)
2016-12-08 11:24:59 -05:00
Toshio Kuratomi 45846127c5 to_text, to_bytes, and to_native now have surrogate_or_strict error handler (#4630)
On python3, we want to use the surrogateescape error handler if
available for filesystem paths and the like.  On python2, have to use
strict in these circumstances.  Use the new error strategy for to_text,
to_bytes, and to_native that allows this.
2016-12-08 11:24:57 -05:00
Evan Kaufman 254df9bcca Implemented file content diff for replace module (#4479) 2016-12-08 11:24:54 -05:00
James Pharaoh 06f5f2e26d fix error in documentation for stat checksum (#4582) 2016-12-08 11:24:54 -05:00
Gennady Trafimenkov 7ea7564bf4 Clarify what checksum algorithm is used by copy modules (#4198) 2016-12-08 11:24:54 -05:00
Toshio Kuratomi c4988262b5 Fixes for lineinfile (#4553)
Lineinfile deals heavily with Unic text files.  Makes some sense to deal
with it all as byte strings.  So there is a lot of work done here to
show that we're dealing with byte strings throughout.
2016-12-08 11:24:53 -05:00
Dag Wieers 32e3cc7778 Fix multiple issues with unzip and gtar support (#4131)
* Improve the correct handling of gtar and unzip options

Add the option --show-transformed-names when extra_opts is being used
Ignore bogus warnings related to empty filenames
Properly quote _and_ escape filenames for unzip command
Rewrite gtar options and provide run_command with array, not string

This fixes #2480 and #4109.

* Make check-mode work for zip-files

Check-mode was disabled for zip-files since gtar did not support it.
This change enables check-mode support for zip-files, but does skip the task when used with gtar.
(Best of both worlds)

Also remove unused compress_mode variable.

This replaces PR #4401, the changes overlap somewhat so I merged them
2016-12-08 11:24:53 -05:00
Michael Scherer 441205feed Add acl freebsd (#3656)
* FreeBSD do not support --omit-header and --absolute-names

* The option for following symlink wth getfacl is different on FreeBSD

* ZFS on Freebsd use nfsv4 acls, who use a slightly different syntax

* FreeBSD do not have a --test flag, so always return 'True'

* FreeBSD do not have the --omit-headers options, so we have to filter by ourself

* Mark Freebsd as working for the acl module
2016-12-08 11:24:52 -05:00
Toshio Kuratomi 07e79ac683 Refactor stat.py so that it would be more friendly for unittests. (#4462)
* Refactor stat.py so that it would be more friendly for unittests.

* PEP8ify since we're moving most of the lines in the file and there's no open PRs
2016-12-08 11:24:51 -05:00
Chris Short 8ffe5c3c54 find.py: Editing contains description to say regex (#4452)
find module contains argument appears to accept regex; correcting description accordingly
2016-12-08 11:24:51 -05:00
Lucas Costa Beyeler 6aeea1fe7e Fix #4202: Can't unarchive remote files (#4244)
When you try to remote unarchive files with the option copy=no the code always fail, as evidenced in issue #4202. That happens because the conditional to check "if remote_src=no or copy=yes" will always be true since the default value of them is remote_src=no and copy=yes.
My modification is only to change the condition from or to and, that way only if both the vars stay with the default value will be true, otherwise you can unarchive remote files.
2016-12-08 11:24:49 -05:00
Dag Wieers fe273a4e09 Improve the documentation (#4385)
Improvements to make it more clear that pure compressed files (.gz, .bz2 and .xz) files are not supported.

This improves on #3241.
2016-12-08 11:24:49 -05:00