You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Dag Wieers 983cdd00bc 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.
9 years ago
.github Update the issue and pull-request templates in sync with ansible/ansible 9 years ago
cloud rebase for #2477, ready_for_review (#2581) 9 years ago
commands Added some documentation for the shell return values 9 years ago
database Give encoding examples (#3436) 9 years ago
files Making unarchive idempotent (#3307) 9 years ago
inventory Add missing GPLv3 License header 10 years ago
network ops_template.py: Taking care of the JSON src variable (#3313) 9 years ago
packaging Resolve idempotency issue with virtual apt package (#3449) 9 years ago
source_control make git updates respect depth (#3254) 9 years ago
system Fix mount's handling of passno 9 years ago
test/unit/cloud/openstack add some unit tests for the os_server module 9 years ago
utilities Allow async to not need an args file since new-style modules have args embedded 9 years ago
web_infrastructure Set the locales to avoid issue with screenscrapping 9 years ago
windows fix win_user type checking 9 years ago
.gitignore Add basic top level files. 10 years ago
.travis.yml Disable travis docs checks 10 years ago
CONTRIBUTING.md point to local issue temmplate 9 years ago
COPYING Add basic top level files. 10 years ago
README.md updated to keep same info as in extras repo 10 years ago
VERSION Version bump for new beta 2.0.0-0.5.beta3 9 years ago
__init__.py package files 10 years ago
test-docs.sh Add testing of docs to the core repo 10 years ago
test-requirements.txt add some unit tests for the os_server module 9 years ago

README.md

ansible-modules-core

This repo contains Ansible's most popular modules that are shipped with Ansible.

New module submissions for modules that do not yet exist should be submitted to ansible-modules-extras, rather than this repo.

Take care to submit tickets to the appropriate repo where modules are contained. The docs.ansible.com website indicates this at the bottom of each module documentation page.

Reporting bugs

Take care to submit tickets to the appropriate repo where modules are contained. The repo is mentioned at the bottom of module documentation page at docs.ansible.com.

Testing modules

Ansible module development guide contains the latest info about that.

License

As with Ansible, modules distributed with Ansible are GPLv3 licensed. User generated modules not part of this project can be of any license.

Installation

There should be no need to install this repo separately as it should be included in any Ansible install using the official documented methods.