(#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.
This commit is contained in:
Nan Liu 2012-05-07 15:27:53 -07:00
parent 5d013aab09
commit 666a05dea1
4 changed files with 20 additions and 0 deletions

View file

@ -9,4 +9,9 @@ define apt::builddep() {
command => "/usr/bin/apt-get -y --force-yes build-dep ${name}", command => "/usr/bin/apt-get -y --force-yes build-dep ${name}",
notify => Exec['apt_update'], notify => Exec['apt_update'],
} }
# Need anchor to provide containment for dependencies.
anchor { "apt::builddep::${name}":
require => Class['apt::update'],
}
} }

View file

@ -94,4 +94,9 @@ class apt(
notify => Exec['apt_update'], notify => Exec['apt_update'],
} }
} }
# Need anchor to provide containment for dependencies.
anchor { "apt::update":
require => Class['apt::update'],
}
} }

View file

@ -35,5 +35,10 @@ define apt::ppa(
ensure => file, ensure => file,
require => Exec["add-apt-repository-${name}"]; require => Exec["add-apt-repository-${name}"];
} }
# Need anchor to provide containment for dependencies.
anchor { "apt::ppa::${name}":
require => Class['apt::update'],
}
} }

View file

@ -61,4 +61,9 @@ define apt::source(
before => File["${name}.list"], before => File["${name}.list"],
} }
} }
# Need anchor to provide containment for dependencies.
anchor { "apt::source::${name}":
require => Class['apt::update'],
}
} }