Skip to content

Commit

Permalink
add $manage_packages to control package install
Browse files Browse the repository at this point in the history
  • Loading branch information
Gerard Hickey authored and mmoll committed Aug 3, 2015
1 parent 38e5b9a commit 0fa8a92
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 16 deletions.
8 changes: 5 additions & 3 deletions manifests/agent/install.pp
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Install the puppet client installation
class puppet::agent::install {
package { $puppet::client_package:
ensure => $::puppet::version,
provider => $::puppet::package_provider,
if $::puppet::manage_packages == true or $::puppet::manage_packages == 'agent' {
package { $puppet::client_package:
ensure => $::puppet::version,
provider => $::puppet::package_provider,
}
}
}
12 changes: 11 additions & 1 deletion manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
#
# $sharedir:: Override the system data directory.
#
# $manage_packages:: Should this module install packages or not.
# Can also install only server packages with value
# of 'server' or only agent packages with 'agent'.
# Defaults to true
#
# $package_provider:: The provider used to install the agent.
# Defaults to chocolatey on Windows
# Defaults to undef elsewhere
Expand Down Expand Up @@ -383,6 +388,7 @@
$rundir = $puppet::params::rundir,
$ssldir = $puppet::params::ssldir,
$sharedir = $puppet::params::sharedir,
$manage_packages = $puppet::params::manage_packages,
$package_provider = $puppet::params::package_provider,
$port = $puppet::params::port,
$listen = $puppet::params::listen,
Expand Down Expand Up @@ -518,7 +524,7 @@
if $server_puppetdb_host {
validate_string($server_puppetdb_host)
}

if $server_http {
validate_array($server_http_allow)
}
Expand All @@ -542,6 +548,10 @@
validate_re($server_environment_timeout, '^(unlimited|0|[0-9]+[smh]{1})$')
}

if $manage_packages != true and $manage_packages != false {
validate_re($manage_packages, '^(server|agent)$')
}

include ::puppet::config
Class['puppet::config'] -> Class['puppet']

Expand Down
1 change: 1 addition & 0 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
}
}

$manage_packages = true
$package_provider = $::osfamily ? {
'windows' => 'chocolatey',
default => undef,
Expand Down
26 changes: 14 additions & 12 deletions manifests/server/install.pp
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
# Install the puppet server
class puppet::server::install {

$server_package_default = $::puppet::server_implementation ? {
'master' => $::osfamily ? {
'Debian' => ['puppetmaster-common','puppetmaster'],
/^(FreeBSD|DragonFly)$/ => [],
default => ['puppet-server'],
},
'puppetserver' => 'puppetserver',
}
$server_package = pick($::puppet::server_package, $server_package_default)
$server_version = pick($::puppet::server_version, $::puppet::version)
if $::puppet::manage_packages == true or $::puppet::manage_packages == 'server' {
$server_package_default = $::puppet::server_implementation ? {
'master' => $::osfamily ? {
'Debian' => ['puppetmaster-common','puppetmaster'],
/^(FreeBSD|DragonFly)$/ => [],
default => ['puppet-server'],
},
'puppetserver' => 'puppetserver',
}
$server_package = pick($::puppet::server_package, $server_package_default)
$server_version = pick($::puppet::server_version, $::puppet::version)

package { $server_package:
ensure => $server_version,
package { $server_package:
ensure => $server_version,
}
}

if $puppet::server_git_repo {
Expand Down
50 changes: 50 additions & 0 deletions spec/classes/puppet_agent_install_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,54 @@

end

describe "when manage_packages => false" do
let :pre_condition do
"class { 'puppet': manage_packages => false }"
end

let :facts do {
:osfamily => 'RedHat',
:concat_basedir => '/foo/bar',
:operatingsystemrelease => '6.6',
:puppetversion => Puppet.version,
} end

it 'should not contain Package[puppet]' do
should_not contain_package('puppet')
end
end

describe "when manage_packages => 'agent'" do
let :pre_condition do
"class { 'puppet': manage_packages => 'agent' }"
end

let :facts do {
:osfamily => 'RedHat',
:concat_basedir => '/foo/bar',
:operatingsystemrelease => '6.6',
:puppetversion => Puppet.version,
} end

it 'should contain Package[puppet]' do
should contain_package('puppet')
end
end

describe "when manage_packages => 'server'" do
let :pre_condition do
"class { 'puppet': manage_packages => 'server' }"
end

let :facts do {
:osfamily => 'RedHat',
:concat_basedir => '/foo/bar',
:operatingsystemrelease => '6.6',
:puppetversion => Puppet.version,
} end

it 'should not contain Package[puppet]' do
should_not contain_package('puppet')
end
end
end
35 changes: 35 additions & 0 deletions spec/classes/puppet_server_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,39 @@
it { should raise_error(Puppet::Error, /"golang" does not match/) }
end

describe "when manage_packages => false" do
let :pre_condition do
"class { 'puppet': server => true, manage_packages => false,
server_implementation => 'master' }"
end

it { should compile.with_all_deps }
it 'should not contain Package[puppet-server]' do
should_not contain_package('puppet-server')
end
end

describe "when manage_packages => 'agent'" do
let :pre_condition do
"class { 'puppet': server => true, manage_packages => 'agent',
server_implementation => 'master' }"
end

it { should compile.with_all_deps }
it 'should not contain Package[puppet-server]' do
should_not contain_package('puppet-server')
end
end

describe "when manage_packages => 'server'" do
let :pre_condition do
"class { 'puppet': server => true, manage_packages => 'server',
server_implementation => 'master' }"
end

it { should compile.with_all_deps }
it 'should contain Package[puppet-server]' do
should contain_package('puppet-server')
end
end
end

0 comments on commit 0fa8a92

Please sign in to comment.