Commit Graph

47 Commits (de2096e3d01af9aba45cccc02391c390ca2fc330)

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
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
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
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
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
Hao Wang 3b5dd4e0a0 file module doesn't create hard link to given target directory 2017-04-10 12:20:46 -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
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 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
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
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
Matt Clay c709b22e5c Fix differences with devel. 2016-12-08 11:35:21 -05:00
Toshio Kuratomi 7319104552 Refreshed metadata for core modules 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
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
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 0c46813871 Change examples syntax on file module 2016-12-08 11:25:29 -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
David Chwalisz f979928ecc file module: add clarification on state=absent re files that do not exist. 2016-12-08 11:24:46 -05:00
Michael Scherer f7b29ba8fd Convert the whole files/ directory to py3 syntax (#3685) 2016-12-08 11:24:29 -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
Brian Coca a546775172 fixed typo, now correctly check isdir
fixes #3089
2016-12-08 11:24:07 -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
Brian Coca 288a5c9a77 adds diff info for file info 2016-12-08 11:23:56 -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
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
Brian Coca e4dd0d98d4 now captures any exceptions when trying to create directories 2016-12-08 11:23:21 -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
Greg DeKoenigsberg eb881d7d5d Proper author info for all remaining modules 2016-12-08 11:23:07 -05:00
Tristan Fisher 75ef963922 removes bool type from validate. 2016-12-08 11:23:03 -05:00
Tristan Fisher 0180be25c4 standardizes bools in argument_spec 2016-12-08 11:23:03 -05:00
Greg Taylor 79dd0466b5 Adding directory creation example to file module. 2016-12-08 11:23:00 -05:00
Brian Coca b4775234c9 minor docfix 2016-12-08 11:23:00 -05:00
James Bowes 0d3aed3e1f Fix C() formatting typo in file module 2016-12-08 11:22:48 -05:00
Brian Coca d6305bc938 fixed file module to use realpath when following links, readlink could be relative and fail in corner cases as per #852 2016-12-08 11:22:45 -05:00
Toshio Kuratomi af6c625cc2 When recursing subdirectories, honor the follow parameter for setting file attributes.
One half of the fix for
https://github.com/ansible/ansible-modules-core/issues/778
The other half is in basic.py
2016-12-08 11:22:42 -05:00
Rahul Mehrotra fe08f52d92 Fixed Documentation issue concerning file mode when specified using numberical value 2016-12-08 11:22:42 -05:00
Brian Coca a3de4db57d fix for allowing permissions on hard links and soft links + follow=yes 2016-12-08 11:22:37 -05:00
Brian Coca 9eb77bdb4f fix for when state=directory, follow=yes and target is symlink to directory 2016-12-08 11:22:37 -05:00
Jesse Buchanan 06a58dcad7 Files module: Allow touch on hardlinks 2016-12-08 11:22:36 -05:00
sysadmin75 7fbb422ae7 Fixes #9518 - "file state=directory" silently skips if it's currently a file 2016-12-08 11:22:33 -05:00
Toshio Kuratomi f7fafa8c16 Cannot readlink() on a hard link 2016-12-08 11:22:27 -05:00
Toshio Kuratomi bcc058249c Use original_basename to set the dest path even if src is not set 2016-12-08 11:22:24 -05:00
Michael DeHaan 213e518165 file extensions! 2016-12-08 11:22:22 -05:00