Commit Graph

77 Commits (0a85e64b4a95dbbd11e0ee605adc509a0234800e)

Author SHA1 Message Date
Matt Clay 49692e98eb Fix python 3 issues with apt* modules. (#4848)
- Use range instead of xrange.
- Use python3-apt package for python 3.
- Eliminate unsupported for/else/raise usage.
- Use list on dict.items when modifying dict.
- Update requirements documentation.

Also made non-intrustive style fixes (adding blank lines).
2016-12-08 11:25:05 -05:00
Matt Clay e8f70f25df Python 3 fixes for apt_* modules. (#4754) 2016-12-08 11:25:03 -05:00
Erik Nadel 4619513d9e apt remove now recognizes the force parameter (#3756) 2016-12-08 11:24:39 -05:00
René Moser b7265d7b28 apt: fix deb=file with --diff does not show diff on upgrades (#3826) 2016-12-08 11:24:33 -05:00
René Moser a85d9930c5 apt: fix KeyError for deb=file (#3816)
Fix KeyError: 'prepared' while installing dependencies using deb=<file>.deb
This error shows up when --diff was not passed by and the deb files has dependencies not yet installed.
Closes #3752.
2016-12-08 11:24:33 -05:00
Michael Scherer b8175f70ce Convert packaging/* to py3/py2.4 syntax (#3702) 2016-12-08 11:24:30 -05:00
René Moser 326f7166c0 apt: fix always changed when using deb file on Debian 8 (#3541)
Extends d74e82a3f1e3293ffb70c172e5bb2b6e1ff6dbcc with also support
downgrade.
2016-12-08 11:24:26 -05:00
Pomin Wu d997c79487 Fixed #3577 (#3578)
Initialize `upgradable` before use.
2016-12-08 11:24:26 -05:00
Toshio Kuratomi 5f0dc2b90f Some beginning python3 porting for modules which have unittests 2016-12-08 11:24:24 -05:00
Toshio Kuratomi 9e9b6a24f4 Fix apt module needing another format character 2016-12-08 11:24:19 -05:00
NielsH 1b94aa2d43 Resolve idempotency issue with virtual apt package (#3449)
Virtual packages were always marked as upgradable which caused the changed-state even though nothing changed.
2016-12-08 11:24:18 -05:00
Tobias Wolf fb5a91d9d1 Add diff to apt.py (#2944)
for install, remove, deb_install, and upgrade.

Since apt has very commonly familiar output, just use the normal output
from apt-get or aptitude -- trimmed to the interesting parts -- to show
to the user if she specified --diff on the CLI.

Uses the recent support for the `diff['prepared]` key.

Fixes ansible/ansible#10239
2016-12-08 11:24:18 -05:00
Oleg Senin 7ceaafbbd2 Correct misspell (#3454) 2016-12-08 11:24:18 -05:00
Hugh Saunders 92ebeffd6c Retry apt cache updates 2016-12-08 11:24:14 -05:00
Rene Moser 775521e5cb apt: doc: fix missing version_added
see #2023
2016-12-08 11:24:13 -05:00
Chris Lamb c012358d57 os/apt.py: Add support for passing --allow-unauthenticated
This is useful for packages that bootstrap their own apt-key setup - only
the initial installation will require overriding. Notable examples are the
Dropbox and Google Chrome packages.

(Setting force=yes is far too strong: I only want to bypass
authentication!)

Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
2016-12-08 11:24:13 -05:00
Toshio Kuratomi b70d691832 Fix indent in documentation 2016-12-08 11:24:13 -05:00
Roland Sommer 0c1cf5ee1c honour 'only_upgrade' flag for 'build_dep' case in 'apt' module 2016-12-08 11:24:13 -05:00
Roland Sommer c96d5245f5 add 'only_upgrade' switch to apt module 2016-12-08 11:24:11 -05:00
Matt Martz ad9c487391 Set version_added to 2.1 for autoremove. Fixes #3200 2016-12-08 11:24:10 -05:00
Matt Clay 53b0fd65ee Split shell command to avoid use_unsafe_shell.
This mirrors a nearly identical change made to apt_repository.py.

Also removes the use of apt-get --force-yes as it can be dangerous
and should not be necessary (apt_repository.py does not use it).

Repeating the explanation from the apt_respository change below:

Since use_unsafe_shell is suspicious from a security point
of view (or it wouldn't be unsafe), the less we have, the less
code we have to thoroughly inspect for a security audit.

In this case, the '&&' can be replaced by doing 2 calls to run_command.
2016-12-08 11:24:09 -05:00
Jonathan Mainguy 44bde46097 Add ability to download deb from url
if :// in deb, will try to download from url.
2016-12-08 11:24:09 -05:00
Brian Coca 2ed38b79cb expanded info on fail on check + missing apt-python
it now explains that apt module will auto install
2016-12-08 11:24:05 -05:00
Matt Clay 4288150270 Do not install python-apt in check mode. 2016-12-08 11:24:04 -05:00
Toshio Kuratomi 03fc2c0c79 use new method of setting locale and other environment variables
The old method left settings in the environment.  The new method takes
care of clearing them after use.  In this module, the old method was
also setting the environment too late to affect all the command line
tools which lead to a bug.

Fixes https://github.com/ansible/ansible/issues/14264
2016-12-08 11:24:03 -05:00
Charles Paul 3e841c04d2 adding autoremove to apt 2016-12-08 11:24:03 -05:00
Arata Notsu a9f23ac54f apt: export env vars before run dpkg
Without this change, some trouble may occur when "deb" parameter
is used as env vars controlling dpkg are not set. For example,
installing a package that requires user input will never end since
DEBIAN_FRONTEND=noninteractive is not set.

So export env vars in APT_ENV_VARS before run dpkg, like in cases
using apt-get/aptitude.
2016-12-08 11:23:56 -05:00
Charles Ferguson ac1e4bf6e0 Update the documentation of the 'apt' action for the 'name'.
The package name has two aliases, 'package' and 'pkg'. Add them to the
documentation.
2016-12-08 11:23:49 -05:00
Toshio Kuratomi 7ae4bdadfc Fixes for bcoca's review of #1916 2016-12-08 11:23:46 -05:00
Harlan Lieberman-Berg a32e5932e9 Give include_recommends a useless default to make the parser happy. 2016-12-08 11:23:45 -05:00
Harlan Lieberman-Berg f9c435ebd5 Add missing brace. 2016-12-08 11:23:45 -05:00
Harlan Lieberman-Berg 1ff12b66fb Change install_recommended in apt to a trinary.
Conditions are now "yes", "no", and "default", with the latter falling
back to the OS default.
2016-12-08 11:23:45 -05:00
Harlan Lieberman-Berg 8ef4715cf6 Change behavior of apt.py around installing recommended packages.
Closes #1189.

This will cause the settings in Ansible to override the system settings.
That will have no effect except on systems that have an out-of-Ansible
configuration that disables automatic installation of recommended
packages.  Previously, ansible would use the OS default whenever
install_recommends wasn't part of the playbook.  This change will cause
the Ansible default configuration setting of installing recommended
packages to override the configuration files set on the OS for things
installed through ansible, even when there is no install_recommends
specified in the playbook.  Because the OS default matches the Ansible
default, this shouldn't have wide impact.
2016-12-08 11:23:45 -05:00
Patrick Galbraith 223c689ec0 Fix to issue 12912. Supply 'force' to install of python-apt. 2016-12-08 11:23:44 -05:00
Marius Gedminas 270c2e8bbd apt: check for "0 upgraded" to be at the beginning of the line
Fixes #1678.
2016-12-08 11:23:33 -05:00
Brian Coca 9ad712018c deal with more failures when apt module fails to instantiate pkg fixes #1499 2016-12-08 11:23:32 -05:00
Brian Coca e7dc05df11 updated upgrade to a more sensible default as the previous was prone to confusion fixes #1667 2016-12-08 11:23:17 -05:00
Matt Martz a0f5ae8726 Replaced tabbed indentation with spaces for apt module 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
Semyon Deviatkin 732b26ab23 Fix issue #1230
When virtual package providing only one package, look up status of target package
2016-12-08 11:23:00 -05:00
Brian Coca 831e1d8739 added updated cache time to apt, also started documenting return values 2016-12-08 11:22:58 -05:00
Toshio Kuratomi dd02483b26 Explain why the apt module does not do implicit regex matches on package name since this is different than the apt-get command line tool.
Fixes #1258
2016-12-08 11:22:58 -05:00
bugchecker b7b6367ad5 prevent using undefined variable 2016-12-08 11:22:54 -05:00
Tim Rupp db6c2bac75 Add missing import of apt.debfile
In cases when the python-apt package is not installed, ansible will
attempt to install it. After this attempt, it tries to import the
needed apt modules, but forgets to import the apt.debfile module.

The result is that playbooks that use the dpkg argument on a machine
that does not initially have the python-apt package available will
fail with the following error

AttributeError: 'module' object has no attribute 'debfile'

This patch adds the appropriate import to the apt module to ensure
that necessary libraries are available in cases when the dpkg argument
is being used on a system that does not initially have the python-apt
package installed
2016-12-08 11:22:50 -05:00
Brian Coca 4124f8c381 now module fails gracefully instead of stacktrace when trying to install missing deb file 2016-12-08 11:22:44 -05:00
Henry Finucane 464c502f95 dpkg does not take a --force-yes option 2016-12-08 11:22:42 -05:00
Conrado Buhrer 09082e6e7f fixed: namespace clash #710 2016-12-08 11:22:40 -05:00
Conrado Buhrer abde33c615 fixed: erroneous logic 2016-12-08 11:22:40 -05:00
Conrado Buhrer a6315043ef fixed: missing check for upgrade flag 2016-12-08 11:22:40 -05:00
Conrado Buhrer 807b168590 fixed: removed build-deb from required_one_of 2016-12-08 11:22:40 -05:00