Skip to content

Commit

Permalink
Merge 35c7fc4 into 329603f
Browse files Browse the repository at this point in the history
  • Loading branch information
alvagante committed Feb 12, 2019
2 parents 329603f + 35c7fc4 commit 322504e
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 25 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,8 @@
# CHANGELOG

# 2.3.4
* Added repo_exec_environment argument to tp::install

# 2.3.3
* Updated README

Expand Down
22 changes: 16 additions & 6 deletions manifests/install.pp
Expand Up @@ -48,6 +48,11 @@
# }
# }
#
# @example Installation of repo packages via proxy
# tp::install { 'puppet':
# repo_exec_environment => [ 'http_proxy=http://proxy.domain:8080','https_proxy=http://proxy.domain:8080'],
# }
#
# @param ensure Manage application status.
# Valid values are present, absent or the package version number.
#
Expand All @@ -73,6 +78,10 @@
# @param repo Name of the repository to use. Multiple different repositories may
# be used, if they are defined in Tiny Puppet data.
#
# @repo_exec_environment Array to use for the environment argument of exec types
# used inside tp::repo define. Used if $auto_repo is true. Can be useful when trying
# to use tp::repo from behing a proxy
#
# @param auto_conf Boolean to enable automatic configuration of the application.
# If true and there's a valid value for $settings['config_file_template']
# then the relevant template is added via tp::conf based on the default
Expand Down Expand Up @@ -114,7 +123,7 @@
Boolean $auto_prereq = false,

Variant[Undef,String] $repo = undef,

Array $repo_exec_environment = [],
Boolean $manage_package = true,
Boolean $manage_service = true,

Expand Down Expand Up @@ -185,11 +194,12 @@
default => true,
}
tp::repo { $app:
enabled => $repo_enabled,
before => Package[$settings[package_name]],
data_module => $data_module,
repo => $repo,
settings_hash => $settings_hash,
enabled => $repo_enabled,
before => Package[$settings[package_name]],
data_module => $data_module,
repo => $repo,
settings_hash => $settings_hash,
exec_environment => $repo_exec_environment,
}
}

Expand Down
44 changes: 26 additions & 18 deletions manifests/repo.pp
Expand Up @@ -29,6 +29,8 @@

Variant[Undef,String[1]] $zypper_repofile_url = undef,

Array $exec_environment = [],

Boolean $debug = false,
Stdlib::Absolutepath $debug_dir = '/tmp',
Stdlib::Absolutepath $download_dir = '/var/tmp',
Expand Down Expand Up @@ -78,10 +80,11 @@
'Debian': {
$repo_package_path = "${download_dir}/${settings[repo_package_name]}"
exec { "Download ${title} release package":
command => "wget -O ${repo_package_path} '${settings[repo_package_url]}'",
before => Package[$settings[repo_package_name]],
creates => $repo_package_path,
path => '/bin:/sbin:/usr/bin:/usr/sbin',
command => "wget -O ${repo_package_path} '${settings[repo_package_url]}'",
before => Package[$settings[repo_package_name]],
creates => $repo_package_path,
path => '/bin:/sbin:/usr/bin:/usr/sbin',
environment => $exec_environment,
}
$package_params = {
source => $repo_package_path,
Expand Down Expand Up @@ -115,10 +118,11 @@
}
if !defined(Exec["zypper_addrepo_${title}"]) {
exec { "zypper_addrepo_${title}":
command => $zypper_command,
unless => $zypper_unless,
notify => Exec['zypper refresh'],
path => '/bin:/sbin:/usr/bin:/usr/sbin',
command => $zypper_command,
unless => $zypper_unless,
notify => Exec['zypper refresh'],
path => '/bin:/sbin:/usr/bin:/usr/sbin',
environment => $exec_environment,
}
}
if !defined(Exec['zypper refresh']) {
Expand All @@ -127,6 +131,7 @@
path => '/bin:/sbin:/usr/bin:/usr/sbin',
logoutput => false,
refreshonly => true,
environment => $exec_environment,
}
}
}
Expand Down Expand Up @@ -155,6 +160,7 @@
path => '/bin:/sbin:/usr/bin:/usr/sbin',
logoutput => false,
refreshonly => true,
environment => $exec_environment,
}
}

Expand Down Expand Up @@ -184,11 +190,12 @@
and !empty($settings[key])
and !empty($settings[key_url]) {
exec { "tp_aptkey_add_${settings[key]}":
command => "wget -O - ${settings[key_url]} | apt-key add -",
unless => "apt-key list | grep -q \"${settings[key]}\"",
path => '/bin:/sbin:/usr/bin:/usr/sbin',
before => File["${aptrepo_title}.list"],
user => 'root',
command => "wget -O - ${settings[key_url]} | apt-key add -",
unless => "apt-key list | grep -q \"${settings[key]}\"",
path => '/bin:/sbin:/usr/bin:/usr/sbin',
before => File["${aptrepo_title}.list"],
user => 'root',
environment => $exec_environment,
}
}

Expand All @@ -197,11 +204,12 @@
and !empty($settings[apt_key_fingerprint])
and !empty($settings[apt_key_server]) {
exec { "tp_aptkey_adv_${settings[key]}":
command => "apt-key adv --keyserver ${settings[apt_key_server]} --recv ${settings[apt_key_fingerprint]}",
unless => "apt-key list | grep -q \"${settings[key]}\"",
path => '/bin:/sbin:/usr/bin:/usr/sbin',
before => File["${aptrepo_title}.list"],
user => 'root',
command => "apt-key adv --keyserver ${settings[apt_key_server]} --recv ${settings[apt_key_fingerprint]}",
unless => "apt-key list | grep -q \"${settings[key]}\"",
path => '/bin:/sbin:/usr/bin:/usr/sbin',
before => File["${aptrepo_title}.list"],
user => 'root',
environment => $exec_environment,
}
}

Expand Down
2 changes: 1 addition & 1 deletion metadata.json
@@ -1,6 +1,6 @@
{
"name": "example42-tp",
"version": "2.3.3",
"version": "2.3.4",
"summary": "Tiny Puppet",
"license": "Apache-2.0",
"author": "Example42 Gmbh",
Expand Down
9 changes: 9 additions & 0 deletions spec/defines/tp_install_spec.rb
Expand Up @@ -147,6 +147,15 @@
} end
it { is_expected.to contain_file("tp_install_debug_#{app}").with('ensure' => 'present', 'path' => "/var/tmp/tp_install_debug_#{app}") }
end
context 'with repo_exec_environment set' do
let(:params) do {
'repo_exec_environment' => ['proxy_http=http://proxy.domain:8080','https_proxy=http://proxy.domain:8080'],
} end
if has_repo
it { is_expected.to contain_tp__repo(app).with(repo_params.merge( { 'exec_environment' => ['proxy_http=http://proxy.domain:8080','https_proxy=http://proxy.domain:8080'] } ) ) }
# it { is_expected.to contain_tp__repo(app).with('exec_environment' => ['proxy_http=http://proxy.domain:8080','https_proxy=http://proxy.domain:8080']) }
end
end
end
end
end
Expand Down
15 changes: 15 additions & 0 deletions spec/defines/tp_repo_spec.rb
Expand Up @@ -73,6 +73,21 @@
} end
it { is_expected.to contain_file("tp_repo_debug_#{app}").with('ensure' => 'present', 'path' => "/var/tmp/tp_repo_debug_#{app}") }
end

context 'with exec_environment set' do
let(:params) do {
'exec_environment' => ['http_proxy=http://proxy.domain:8080','https_proxy=http://proxy.domain:8080'],
} end
if appdata['repo_package_url'] and appdata['repo_package_name'] and os == 'ubuntu-16.04-x86_64'
it { is_expected.to contain_exec("Download #{app} release package").with('environment' => ['http_proxy=http://proxy.domain:8080','https_proxy=http://proxy.domain:8080']) }
end
if appdata['key'] or appdata['key_url'] and os == 'ubuntu-16.04-x86_64'
it { is_expected.to contain_exec("tp_aptkey_add_#{appdata['key']}").with('environment' => ['http_proxy=http://proxy.domain:8080','https_proxy=http://proxy.domain:8080']) }
end
if appdata['key'] and appdata['apt_key_fingerprint'] and appdata['apt_key_server'] and os == 'ubuntu-16.04-x86_64'
it { is_expected.to contain_exec("tp_aptkey_adv_#{appdata['key']}").with('environment' => ['http_proxy=http://proxy.domain:8080','https_proxy=http://proxy.domain:8080']) }
end
end
end
end
end
Expand Down

0 comments on commit 322504e

Please sign in to comment.