Commit graph

74 commits

Author SHA1 Message Date
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
Conrado Buhrer
3165b39d21 changed: state=build-dep; refactored into install() 2016-12-08 11:22:39 -05:00
Conrado Buhrer
442663a13a added: build-dep to apt module #349
Original code provided by @nathanhruby
2016-12-08 11:22:39 -05:00
Brian Coca
65d3b167e6 now captures cache fetch failures 2016-12-08 11:22:38 -05:00