Commit graph

212 commits

Author SHA1 Message Date
Zach Leslie
d28de44266 move pin out to a template 2012-05-21 14:49:30 -07:00
Zach Leslie
2d19d8664e Add functionality to support apt pinning to more than just the release.
Write the pin preference filename as ${name} rather than ${release}, so
that we can pin more than one thing.

Change apt::source so that when pin is set, that it pins to the origin
rather than the release.
2012-05-21 14:19:18 -07:00
Zach Leslie
989b95a12d Fixup name issue with apt::backports
The '.list' is not needed since the apt::source type handles this.
White space alignment.
2012-05-21 14:17:37 -07:00
Nan Liu
e3784987fc Fix dependency issues introduced with anchor.
apt::ppa and apt::builddep requires apt class. The anchor introduced for
containment of apt-get update causes a dependency loop. apt::ppa appears
to depend on apt class sources.d direcory. While apt::builddep have no
clear reason for a dependency on apt class. This change refactor both
define type, so they no longer cause a dependency loop.
2012-05-09 12:04:17 -07:00
Nan Liu
322f3b68e7 Fix style related issues in module. 2012-05-08 10:47:43 -07:00
Nan Liu
666a05dea1 (#11966) apt module containment for apt_update.
The update to separate Exec["apt-get update ${name}"] to single exec in
apt::update class resulted in apt-get update command to be dangled.
Previously if user specified Package['package_a'] <-
Apt::Resource['source_a'], the original refactor would no longer
guarantee apt-get update is executed before the package is installed.
This patch fixes the problem using the anchor resource and ensuring the
old behaviour is maintained and user can depend on apt-get update
command being invoked if they specify dependency on any apt::*
define resource type as well as the apt class.
2012-05-07 15:27:53 -07:00
Nan Liu
e8977deea1 (#14321) apt::pin resource support release.
apt::pin release should default to title, but should be able to
override. This update removes unnecessary "" around $name, and add spec
tests.

Conflicts:

	spec/defines/pin_spec.rb
2012-05-04 13:56:35 -07:00
albac
feee023b24 Update manifests/pin.pp 2012-05-04 13:55:15 -07:00
Thomas Broyer
0ffe484c7c Move Package['python-software-properties'] to apt:ppa
Also updates the apt-update in Apt::Ppa to use $apt::params::provider
instead of aptitude.
2012-05-04 13:46:08 -07:00
Nan Liu
f13f3cfac7 (#11966) Change apt update to apt_update.
Based on code review change exec from apt update to apt_update.
2012-05-04 13:35:25 -07:00
Nan Liu
82967a22fa (#11966) Update apt::ppa to use apt::update.
Change apt::ppa define type to also use the apt::update class to invoke
apt-get update once.
2012-05-04 13:35:25 -07:00
Nan Liu
3684f88372 (#11966) Only invoke apt-get update once.
Move apt-get update exec to a seperate class to minimize the number of
apt-get updates invoked by configuration changes.

* remove apt_update exec resource in apt class.
* remove apt-get-${name} in defines.
* apt::source notify Exec['apt update'].
* Remove dependency to Exec['apt_update'].
* fix rspec-puppet tests.

Conflicts:

	manifests/source.pp
2012-05-04 13:35:13 -07:00
Nan Liu
effb3f7ff3 (#14308) Add ensure=>absent for define resource.
Several apt::* define resource type does not support ensurable. This
update allows ensure=>absent to support the removal of these
configuration files.

* apt::conf
* apt::pin
* apt::source
2012-05-03 16:59:13 -07:00
Nan Liu
17b9ac3c7f Cleanup apt-module puppet-lint related issues. 2012-05-03 10:10:06 -07:00
Nan Liu
51a7596b03 Merge pull request #41 from tbroyer/install-proxy-first
Make sure we configure the proxy before doing apt-get update.
2012-05-02 17:31:57 -07:00
Nan Liu
4a788a60f9 Merge pull request #44 from relud/patch-1
(#14138) Modify apt::ppa's update-apt exec to use the ${apt::params::provider} parameter.
2012-05-02 17:29:31 -07:00
Nan Liu
42af4cdc74 Merge pull request #42 from ody/sync_with_pl_ops
Sync with pl ops
2012-05-02 17:27:12 -07:00
Nan Liu
d1e0e3ee37 (#14287) Fix apt::pin resource for rspec-puppet.
The shorthand syntax cause rspec-puppet failure for external modules
depending on the puppet-apt module. This patch uses the require
metaparameter to avoid this issue.
2012-05-02 16:00:27 -07:00
Daniel Thornton
a5ba24695f (#14138) Modify apt::ppa's update-apt exec to use the ${apt::params::provider} parameter rather than explicitly calling aptitude.
Previously the update-apt exec would always use /usr/bin/aptitude, which is not necessarily present. This change makes it use ${apt::params::provider} which defaults to /usr/bin/apt-get. This also adds some consistency so that ${apt::params::provider} is used everywhere.
2012-04-23 20:40:24 +00:00
Cody Herriges
644ed232a0 Tests to validate apt::{conf,backports}
This patch adds the appropriate spec tests to validate the changes
  introduced by e5f2dfe.  As a bonus it includes fixes to the manifests
  that were discovered while writing the tests.
2012-04-20 13:43:38 -07:00
Cody Herriges
e5f2dfe294 Adds apt::{conf,backports} and variable style.
With the addition of this patch two new defines will be added; one to
  manage APT configuration files (apt::conf) and one that abstracts out the
  requirements needed to turn on backport repositories (apt::backports).

  In addition, the patch takes the opportunity to clean up variable
  definitions so they follow a consistent pattern of setting local
  variables to the fully qualified value stored in the apt::params
  class.  Previously all variable used within a class directly addressed
  the apt::params namespace when ever the variable was used.  In the
  pattern they now adhere to we can more easily switch the namespace
  data lives in or externalize it even more using hiera.
2012-04-20 13:35:27 -07:00
Thomas Broyer
e656c65818 Make sure we configure the proxy before doing apt-get update. 2012-03-30 17:48:31 +02:00
Ken Barber
9c13872b5a (#13289) Fix some more style violations 2012-03-21 13:35:48 +00:00
Ken Barber
a758247f26 (#13289) Clean up style violations and fix corresponding tests 2012-03-21 13:21:11 +00:00
William Van Hevelingen
5148cbf5a6 (#13125) Apt keys should be case insensitive
Previously lowercase keys would be installed every
puppet run because apt-key list returns an uppercase
key. This commit makes the comparison case insensitive.
2012-03-15 00:06:27 -07:00
Reid Vandewiele
b9607a440d Convert apt::key to use anchors
Previously, apt::key used a noop exec hack to do exactly what anchors were
intended to be used for. This commit removes the exec hack and achieves the
same end using Anchor resources from the puppetlabs/stdlib module.
2012-03-07 14:20:34 -08:00
Reid Vandewiele
d4fec561f3 Modify apt::source release parameter test
This commit modifies the release parameter test in apt::source to work
correctly within puppet-rspec for edge-case resource definitions. Previously,
the test for the $release parameter was written as

`if ! $release { fail() }`

This commit updates the test to be written as

`if $release == undef { fail() }`

Additionally, the tests for correct behavior in the presence or absence of a
$release parameter have been beefed up.

The reason for making this change relates to examples such as the following
resource definition:

apt::source { "jenkins":
  location    => "http://pkg.jenkins-ci.org/debian",
  release     => "",
  repos       => "binary/",
  key         => "D50582E6",
  key_source  => "http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key",
  include_src => false,
}

Note that the $release parameter is given as the empty string. In practice,
this is perfectly valid and everything will work great. However, it seems that
the empty string gets interpreted by something in puppet-rspec as something
equivalent to "False", and thus when testing, the above resource definition
would fail with "Puppet::Error: lsbdistcodename fact not available: release
parameter required" even though the $release parameter has been explicitely
specified (as the empty string).

See also: https://github.com/rtyler/puppet-jenkins/issues/9
2012-03-07 10:10:46 -08:00
Ryan Coleman
76dbf992e0 Merge pull request #26 from pdxcat/ticket_12823_aptkey_defined_type
(#12823) Add apt::key defined type and modify apt::source to use it

Reviewed and tested by Ryan Coleman (ryan@puppetlabs.com)
2012-03-01 14:40:44 -08:00
Reid Vandewiele
8cdaf855a1 (#12823) Add apt::key defined type and modify apt::source to use it
Adding this defined type allows puppet to add keys to the apt keystore without
needing to add a corresponding source; it also adds the "key_source" parameter
for wget'ing keys from arbitrary URLs, and allows for keys to be explicity
removed.

apt::key allows a key to be ensured present multiple times to account for
apt::source resources that all reference the same key. However, this means
that it is possible for a given key to be defined multiple times with
differing source parameters. e.g.

apt::key { "Add key: 4BD6EC30 from Apt::Source bunny":
  key        => "4BD6EC30",
  key_server => "pgp.mit.edu",
}

apt::key { "Add key: 4BD6EC30 from Apt::Source rabbit":
  key        => "4BD6EC30",
  key_server => "keyserver.ubuntu.com",
}

The defined type will accept both definitions and will create multiple exec
resources. This was deemed preferable to the alternative (creating only one
exec resource) in that one broken definition won't hose an entire catalog. If
one definition fails to install the key because of a bad "key_server", the
next apt::key that uses the key will get it done.
2012-03-01 14:15:52 -08:00
William Van Hevelingen
7c0d10b392 (#12809) $release should use $lsbdistcodename and fall back to manual input
This commit changes $release to default to Facter's $lsbdistcodename
and fall back to a Parse Error if $release is not set and $lsbdistcodename
does not exist. Previously $release was hardcoded to karmic.

This commit also modifies apt::ppa to use $release and sets the
files to be ensured so that they are not purged when purge_sources_list_d
is set to true.
2012-03-01 11:15:02 -08:00
Ryan Coleman
b1eb28956e Merge pull request #23 from haus/python_properties
Check if python-software-properties is defined before attempting to define it.

Reviewed and tested by Ryan Coleman (ryan@puppetlabs.com)
2012-02-24 11:20:52 -08:00
Ryan Coleman
fab62e6de7 Merge pull request #22 from haus/unique_required_packages
Allow duplicate required_packages between sources

Reviewed and tested by Ryan Coleman (ryan@puppetlabs.com)
2012-02-24 11:12:39 -08:00
Ryan Coleman
7dc60ae5ea (#12522) Split purge option to spare sources.list
Prior to this commit, when using the purge option, unmanaged entries
in both /etc/apt/sources.list and sources.list.d would be purged.

This commit splits purge into purge_sources_list and purge_sources_list_d
which handle the purging of those items separately. Brief documentation on
each added to class documentation.
2012-02-24 09:27:28 -08:00
Peter Drake
a4af11f7bc Check if python-software-properties is defined before attempting to define it. 2012-02-23 21:27:48 -08:00
Matthaus Litteken
f3735d2ba2 Allow duplicate $required_packages
Previously, if more than one apt::source required the same packages to be
installed it would fail with a duplicate exec resource. This adds the name of
the source resource to the exec and gives the exec a name, moving it to a
command parameter for the exec.
2012-02-23 21:01:20 -08:00
Matthaus Litteken
8171d35470 Merge branch 'allow-same-key' 2012-02-23 20:54:10 -08:00
William Van Hevelingen
1160bcd6d1 (#12526) Add ability to reverse apt { disable_keys => true }
The setting `disable_keys => true` parameter in the apt module creates
/etc/apt/apt.conf.d/99unauth with the contents
"APT::Get::AllowUnauthenticated 1;". Changing `disable_keys`
does not remove this file. This patch makes it so that
`disable_keys => false` will remove /etc/apt/apt.conf.d/99unauth.
2012-02-23 14:37:04 -08:00
Christian G. Warden
c65774204d Allow the use of the same key in multiple sources
Allow the use of the same key in multiple sources by including the name
of the source in the declaration for the exec which adds the key.
2012-02-14 11:40:29 -08:00
William Van Hevelingen
8c279636f5 (#12522) Adding purge option to apt class
Adds a purge option to the apt class to remove repositories
that are not managed by apt::source
2012-02-14 10:51:56 -08:00
Dan Bode
50f3cca0c6 (#12529) Add parameter to support setting a proxy for apt
This commit adds two class parameter to apt that can be used to
specify a proxy to use with apt.

  - proxy_host
  - proxy_port
2012-02-08 15:06:53 -08:00
Matthaus Litteken
d522877cdd (#12094) Replace chained .with_* with a hash
The hash passing to the with method is cleaner and closer to puppet code, so
all of the with_$param have been replaced with with($hash). This also
includes two minor whitspace changes to unstable.pp and source.pp.
This also replaces the ternary switch on param_set with a hash merge,
which is cleaner and will support more use cases.
2012-02-08 09:24:43 -08:00
Matthaus Litteken
0fb5f78379 (#12094) Replace name with path in file resources
When the name is used with a file resource, it becomes difficult to test the
resource using rspec-puppet, as the name parameter gets aliased to path. So to
maintain consistency between tests and manifests, this replaces all name
parameters in file resources with the equivalent path parameter.
2012-01-23 13:25:52 -08:00
Dan Bode
f04eb5ab71 Merge pull request #4 from webfactory/pin_before_source
Suggested fix for #10449
2012-01-15 21:47:45 -08:00
Matthaus Litteken
f759bc039a (#11953) Apt::force passes $version to aptitude
Previously, even if $version were passed to apt::force, aptitude would just
install the default version of the package available. This updates the aptitude
call to use the version string if it exists. If no version is passed, or if it
is false, no version is added to the aptitude call.  This also updates the
rspec-puppet tests for the define, to reflect the changes to the exec.
2012-01-13 15:29:47 -08:00
Matthias Pigulla
2f5d317177 (#11413) Update dpkg query used by apt::force
This patch fixes the query used by apt::force to
determine rather or not the package is installed.

Previously, the expression was not specific enough and
could not lead to false positives in cases where a package
name is contained within another package name (puppet could be
incorrectly determined as being installed if puppet-common is
installed)

This commit resolves that by improving the query expression.
2012-01-13 11:59:24 -08:00
Matthias Pigulla
1be745705c Fix (#10451) - apt::ppa fails to "apt-get update" when new PPA source is added 2011-11-02 15:40:10 +01:00
Matthias Pigulla
864302a091 Set the pin priority before adding the source (Fix #10449) 2011-11-02 10:28:38 +01:00
Robert Navarro
1de4e0a294 Refactored as per mlitteken
* 1af9a13c40 (commitcomment-539287)
2011-08-24 22:52:42 -04:00
Robert Navarro
1af9a13c40 Added some crazy bash madness to check if the ppa is installed already. Otherwise the manifest tries to add it on every run! 2011-08-18 02:37:54 -03:00
Spencer Krum
52ca73e964 (#8720) Replace Apt::Ppa with Apt::Builddep
Probably a copy & paste error

Reviewed-by: Matthaus Litteken <matthaus@puppetlabs.com>
Signed-off-by: Spencer Krum <spencer@puppetlabs.com>
2011-08-02 15:12:34 -07:00
Monty Taylor
5c05fa0f91 added builddep command. 2011-07-24 18:19:22 -04:00
Dan Bode
a11af502cd added the ability to specify the content of a key
Allows us to pass key_content when we specify a source.
2011-06-03 08:14:56 -07:00
Dan Bode
77d2b0dd05 reformatted whitespace to match recommended style
of 2 space indentation.
2011-05-30 10:25:11 -07:00
Dan Bode
18f614b89b reformatted apt::ppa according to recommended
style.

removed require apt in favor of marking a
dependency.

converted release define into a class since
the resources are singletons.
2011-05-30 10:25:11 -07:00
Dan Bode
d8a1e4ee9d Created a params class to hold global data.
- Removes coupling between global data and
  resources from apt class.
- Makes it easier to organize things into stages.
2011-05-30 10:24:58 -07:00
Dan Bode
636ae8541d Added two params for apt class
both of these params facilitate options that 
ease the management of apt repos in dev
environments

1. disable_keys - allows repos without properly
signed keys
2. always_apt_update - refreshes via apt update
every time that puppet runs.
2011-05-29 18:43:01 -07:00
Scott McLeod
ed2d19e2f3 Support ability to add more than one PPA 2011-04-17 21:43:33 -04:00
Ben Godfrey
420d537ac1 Add call to apt-update after add-apt-repository in apt::ppa 2011-03-11 18:14:31 +00:00
Ben Godfrey
945be77019 Add package definition for python-software-properties 2011-03-11 17:10:25 +00:00
Ben Godfrey
71fc425176 Abs paths for all commands 2011-03-11 17:02:50 +00:00
Jeff Wallace
45bc6b1962 Merge branch 'master' of github.com:evolvingweb/puppet-apt 2011-03-11 16:42:04 +00:00
Jeff Wallace
f848bac607 First commit 2010-04-27 16:38:28 -04:00