Commit Graph

520 Commits (313e7ba55e7464f46862e9c178460d7a479e1bfa)

Author SHA1 Message Date
fluxcess 6290a7c595 added description (#42187)
Added description to one of the really basic code examples

+label: docsite_pr
2018-07-02 10:10:27 -04:00
Sam Doran fb55038d75 Add warning when using an empty regexp in lineinfile (#42013)
* Revert "Account for empty string regexp in lineinfile (#41451)"

This reverts commit 4b5b4a760c.

* Use context managers for interacting with files

* Store line and regexp parameters in a variable

* Add warning when regexp is an empty string

* Remove '=' from error messages

* Update warning message and add changelog

* Add tests

* Improve warning message

Offer an equivalent regexp that won't trigger the warning.
Update tests to match new warning.

* Add porting guide entry for lineinfile change
2018-06-29 17:15:43 -07:00
Sloane Hertel 22a6927dbd Fix file module with check_mode - Fixes #42111 (#42115)
* Fix file module check_mode
2018-06-29 11:19:34 -07:00
Troy Murray 15ce7c5bab change OS X to macOS (#41294)
* change OS X to macOS

<!--- Your description here -->

+label: docsite_pr

* Update all Mac OS X references to be macOS

* Drop extra Mac
2018-06-26 14:09:23 -04:00
Sam Doran 4b5b4a760c
Account for empty string regexp in lineinfile (#41451)
* Use context managers for interacting with files

* Account for empty string as regexp

Rather than explicitly testing for None, also test for an empty string which will evaluate to False. An empty string regexp matches every line, which ends up replacing the incorrect line.

* Store line parameter in a variable

* Add tests
2018-06-25 17:57:05 -04:00
Sam Doran eaae1318f8
Skip if insertbefore BOF until later (#41767)
If a line match is found in the file and no regexp is specified, insertbefore would improperly try to add a line if set to BOF.

Add tests for this scenario.
2018-06-25 16:24:41 -04:00
Sijis Aviles ba3db90e3a Fix: wildcard excludes in unarchive with tar archives (#40935)
* fix: exclude using wildcards for tar archives

Fixes #37842, #22947

* fix: Remove quote() as it munges the exclude format

* test: Refactor to use single archive structure

A common structure archived by different methods should simplify some of
the feature tests.

* test: Use common archive layout to validate exclude feature

* test: Use the same exclude checks for zip/tar archives
2018-06-22 08:28:14 -07:00
Toshio Kuratomi 8bd245a6a2 Fix file state=touch not returning diff information
Fixes #41755
2018-06-20 14:51:27 -07:00
Evgeni Golov e601caf873 lineinfile: add regex as an alias for regexp (#20454)
the param is called regexp, but a lot of people spell it regex
add an alias to help them
2018-06-20 12:54:33 -04:00
Toshio Kuratomi 5c614a59a6 Temporarily revert c119d54
There were bugs in this that needed to be resolved.  No time to get the
fix reviewed sufficiently for 2.6.0.

We'll get this into 2.7.0 and try to get this into 2.6.1 as well.

Will need the work done in https://github.com/ansible/ansible/pull/36218
when it does get merged.
2018-06-15 13:00:54 -07:00
Brian Coca 414aae70b1 corrected version 2018-06-13 15:07:40 -04:00
plumbeo 9b0883c70d Add nomask option to the acl module (#39810)
* Add nomask option to the acl module

* acl: allow to choose if and when to recalculate the effective right masks of the files
2018-06-13 15:08:00 -04:00
Arie Bregman 1c3a117f83 doc: add name to tasks in ini_file module examples (#38888)
One of Ansible best practices is "Always Name Tasks".

This should include tasks in examples as well so people can learn
what is the right way to use it.
2018-05-30 02:02:48 +02:00
Aleks bc2430694c Add a note for multible changes in one file (#37090)
As mentioned in this answer https://stackoverflow.com/a/41549694/6778826 we was able to solve a bad behaviour of `blockinfile` module.
We must change two parts in one file which we have done in two tasks. Every run have rewriten the first block with the second block in the wrong position. **After** we have set the `marker` in the second task to another value was the `blockinfile` module able to insert both parts in the right position in the same file.
2018-05-25 12:49:46 -05:00
Adam Mizerski 749e67fdf8 update docs of template module (#40312)
default value of 'trim_blocks' is 'yes'

+label: docsite_pr
2018-05-24 22:48:12 -05:00
siran b43a1a9f9f Update lineinfile.py (#38444)
`line` is a parameter. just making it explicit.
2018-05-24 23:22:18 -04:00
Sijis Aviles 529ef6446e fix: Ensure zip excluded files are not checked (#40120)
* fix: Ensure zip excluded files are not checked

Fixes #26279

* test: Verify unarchive excludes behaves as expected

* fix: Typos and whitespaces
2018-05-24 15:14:15 -05:00
Bartek Brzeziński 571d971039 Fix #38745 - set user/group on temp file (#38748) 2018-05-23 15:45:43 -05:00
Brian Coca 4cc4d63289 relocated flatpak 2018-05-23 10:06:44 -04:00
Alexander Bethke 52426b9c9d Add flatpak module (#40286)
* Adding flatpak module

Includes contributions by dagwieers

* Incorporates feedback by dagwieers

* Improves and aligns documentation to conventions

* Makes matching for url more robust
2018-05-22 15:08:07 -05:00
Matt Martz ea176427b4 Group logic detecting user, ensure rsync_opts is a list if omitted. Fixes #40483 2018-05-22 11:00:54 -04:00
Toshio Kuratomi 0442efd33a Move rewriting of path earlier in the argument handling as other things depend on the path 2018-05-17 15:24:56 -07:00
Toshio Kuratomi 021f33e063 original basename minus src 2018-05-17 15:24:56 -07:00
Toshio Kuratomi 20b9ca6e7c Rename original_basename parameter in various file-related modules
original_basename is a private internal parameter so name it
_original_basename to reflect that it is internal.
2018-05-17 15:24:56 -07:00
Toshio Kuratomi cd4d0069ba Reorganize ensure_directory to make things clearer
* value of file_args['path'] is now more clear
* We already have b_path so reuser that
* Add comments
2018-05-17 15:24:56 -07:00
Toshio Kuratomi 7d2ec56a99 Correct bug reporting the diff when state=touch as absent 2018-05-17 15:24:56 -07:00
Sijis Aviles 0f16b26080 docs: Suggest get_url or uri for file checksum validation (#40087)
Fixes #13665
2018-05-17 11:52:33 -04:00
Toshio Kuratomi 6227c2ac75
More file refactoring (#40114)
* Set src in the state functions rather than the toplevel

A good API should only require passing one version of a piece of data
around so do that for src

* Move the rewriting of path into additional_parameter_handling

When the path is a directory we can rewrite the path to be a file inside
of the directory

* Emit a warning when src is used with a state where it should be ignored
2018-05-16 10:41:11 -07:00
Toshio Kuratomi ca4147f2cc Fixes #34893 (#40166)
Fixes several bugs exposed in #34893
* Fixes relative path handling in copy so that it splits directories and
  reconstructs the correct file path
* Return failed in the proper circumstances
2018-05-16 11:09:32 -05:00
Dag Wieers 3cdd5da247
xml: Fix validate-modules issue (#40121) 2018-05-15 02:29:48 +02:00
Nikita Chepanov 9514a618b7 Add copy module support for filesystems without chmod (#40099)
* only relevant to remote_src=True
* separate file content copying from file stats copying
* raise exception on mode='preserve', ignore otherwise

Fixes: #19731
Signed-off-by: Nikita Chepanov <nchepanov@bloomberg.net>
2018-05-14 13:17:38 -07:00
markusbloch a199c9b04f add state parameter to patch module (#33692)
* add state parameter to patch module

* add "version_added" to state parameter docu

* fix state parameter call

* change version_added to 2.6
2018-05-12 04:58:12 -04:00
Toshio Kuratomi 03194880c1 Set prev_state in the state functions
This seems a little like duplicating code since all of the called
functions need it but prev_state isn't part of argument parsing so it
doesn't belong in the toplevel main() function.
2018-05-11 06:35:03 -07:00
Toshio Kuratomi 9be31fc79b Don't pass b_path into state functions; those transform to byte strings on their own
It feels like this repeats itself because it pulls the creation of
a byte string for path into every state function.  However, it actually
cleans the API by only passing a single parameter for a thing (the path)
instead of sending it in twice.
2018-05-11 06:35:03 -07:00
Toshio Kuratomi 160f2ace51 Switch from calling exit_json() to returning results
Well organized programs should only have a few successful exit points.

This commit moves all of the successful exit points for the file module
into the main() function.  Other functions return their results to the
main function which can then choose whether there is more procesing to
do before exit or not.
2018-05-11 06:35:03 -07:00
Toshio Kuratomi cac11f9b80 Port away from fail_json()
Use an exception to return failures rather than fail_json().  This way
we can easily catch the failures if the calling code decides it can deal
with it.  This has the side effect of making it easier to unittest this
code as we can catch the expected exceptions instead of having to catch
the interpreter exiting and then parse stdout for the expected data.
2018-05-11 06:35:03 -07:00
Toshio Kuratomi 4e2876be9f Initial refactor of the file module
* Separate the logic for each state into separate functions
* Start the process of separating out initialization (pre-processing of
  parameters that cannot be done via arg spec) from the logic to
  implement each state.
* Start the process of raising exceptions for errors and returning
  result values from each state implementing function   Goal is for all
  fail_json's to be consolidated into exception handlers at the toplevel
  and for there to be only one exit_json() at the toplevel.
2018-05-10 14:48:28 -07:00
Toshio Kuratomi 6b6c4914d2 Initial cleanup of file module
* Remove use of six.b as Python-2.6+ have byte literals.
* Make AnsibleModule a global object so we'll have access to it in all
  the functions we're going to break this up into.
* Rework the parameters so things that are in file_common_args are used
  from file_common_args or the reason for deviation is documented.
* Remove validate as a parameter: this should be taken care of by
  removing it from params before the copy and template action plugin
  invoke file.
* Rename diff_peek to _diff_peek as it is an internal parameter.
* add module_name execute_module call to assemble so that it is more greppable
2018-05-10 14:48:28 -07:00
Toshio Kuratomi 6b159fdb03 Fix for file module with recursive permission setting and broken symlinks
There was a traceback when setting permissions on a directory tree when
there were broken symlinks inside of the tree and follow=true.  chmod -R
ignores broken symlinks inside of the tree so we've fixed the file
module to do the same.

Fixes #39456
2018-05-03 17:54:34 -07:00
Toshio Kuratomi 4f664f8ff6
Fix for file module with symlinks to nonexistent target (#39635)
* Fix for file module with symlinks to nonexistent target

When creating a symlink to a nonexistent target, creating the symlink
would work but subsequent runs of the task would fail because it was
trying to operate on the target instead of the symlink.

Fixes #39558
2018-05-03 17:50:43 -07:00
Dag Wieers 6a08b16c37 Ensure remove files work when file was already removed
If a file disappears when you are removing it, this will ensure it
doesn't fail and continues as expected.
2018-04-30 09:10:09 -07:00
Toshio Kuratomi 83c1cba511
Fixes for mode=preserve (#39343)
* Fixes for mode=preserve

* Document mode=preserve for template and copy
* Make mode=preserve work with remote_src for copy
* Make mode=preserve work for template
* Integration tests for copy & template mode=preserve

Fixes #39279

* Changed mode option in win_copy to hidden option as it doesn't reflect copy mode
2018-04-26 07:14:37 -07:00
Martin Krizek 2e6a917f9d
template: minor docs fixes (#39283) 2018-04-25 11:51:57 +02:00
John R Barker 7c4b91844d
More validate module fixes (#39097)
* Fix type bool DOCUMENTATION issues
2018-04-24 18:05:50 +01:00
Toshio Kuratomi ce796bc34d Clarify the behaviour of file's src parameter with relative paths
Fixes #21401

Also sdd some more tests to validate file state=link creates a symlink
which points to the file we intended.
2018-04-20 14:12:27 -07:00
Toshio Kuratomi f332151f59 Fix copy to only follow symlinks for files in the non-recursive case
Revert "**Temporary**"

This reverts commit 28b86b1148.

We don't need this now that copy has been fixed
2018-04-20 10:04:24 -07:00
Sudheer Satyanarayana 785c660432 Clarify recursive
If recursive is set to yes, the module changes the attributes of the directory recursively even though state: directory is not set.
2018-04-19 12:08:36 -07:00
pcahyna a81c6668eb File module: correct description of "state" (#36327)
* File module: correct description of "state"

It was probably intended to say "intermediate subdirectories will be created" and not "immediate subdirectories will be created".
2018-04-19 12:04:48 -07:00
Adam Dobrawy af9d6aadf0 [file] Update description of state (#38451)
* [file] Update description of state
2018-04-19 11:52:43 -07:00
Daniel Andrei Mincă 89d6c36584 Optimize file handling in the find module (#38192)
* Optimize file handling

Use the best practice of opening and doing operations on an opened file

Signed-off-by: Daniel Andrei Minca <mandrei17@gmail.com>

* Fix docstring to Sphinx type

- update the docstrings to Sphinx type, as suggested by Toshio
- Move the pattern object assignment outside the context manager, as
  suggested by Matt

Signed-off-by: Daniel Andrei Minca <mandrei17@gmail.com>
2018-04-10 09:01:44 -07:00