summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Partlow <jpartlow@glatisant.org>2014-09-19 16:28:43 -0700
committerJosh Partlow <jpartlow@glatisant.org>2014-09-19 16:28:43 -0700
commit9e5b0f41165b6651af8d2dd0684ac4df8467e2ca (patch)
treea85433efd65fe76cfe99d859a02867cfd30ae22d
parent25ecd641be536300aaacfedfb03d2d6c0fc3d01e (diff)
parent5a49f76f484dfc6cd436480ae86dcb1848e9695b (diff)
downloadpuppet-9e5b0f41165b6651af8d2dd0684ac4df8467e2ca.tar.gz
Merge pull request #3109 from johnduarte/pmt_directory_env_support
(PUP-3248) Fix PMT tests for directory environment
-rw-r--r--acceptance/lib/puppet/acceptance/module_utils.rb70
-rw-r--r--acceptance/tests/modules/install/already_installed.rb10
-rw-r--r--acceptance/tests/modules/install/already_installed_elsewhere.rb13
-rw-r--r--acceptance/tests/modules/install/already_installed_with_local_changes.rb10
-rw-r--r--acceptance/tests/modules/install/basic_install.rb4
-rw-r--r--acceptance/tests/modules/install/force_ignores_dependencies.rb8
-rw-r--r--acceptance/tests/modules/install/ignoring_dependencies.rb4
-rw-r--r--acceptance/tests/modules/install/nonexistent_directory.rb11
-rw-r--r--acceptance/tests/modules/install/nonexistent_module.rb4
-rw-r--r--acceptance/tests/modules/install/with_cycles.rb38
-rw-r--r--acceptance/tests/modules/install/with_dependencies.rb4
-rw-r--r--acceptance/tests/modules/install/with_environment.rb14
-rw-r--r--acceptance/tests/modules/install/with_existing_module_directory.rb26
-rw-r--r--acceptance/tests/modules/install/with_modulepath.rb4
-rw-r--r--acceptance/tests/modules/install/with_necessary_upgrade.rb6
-rw-r--r--acceptance/tests/modules/install/with_no_dependencies.rb2
-rw-r--r--acceptance/tests/modules/install/with_unnecessary_upgrade.rb6
-rw-r--r--acceptance/tests/modules/install/with_unsatisfied_constraints.rb10
-rw-r--r--acceptance/tests/modules/install/with_version.rb8
-rw-r--r--acceptance/tests/modules/list/with_environment.rb10
-rw-r--r--acceptance/tests/modules/uninstall/with_environment.rb20
-rw-r--r--acceptance/tests/modules/uninstall/with_multiple_modules_installed.rb4
-rw-r--r--acceptance/tests/modules/upgrade/in_a_secondary_directory.rb12
-rw-r--r--acceptance/tests/modules/upgrade/introducing_new_dependencies.rb22
-rw-r--r--acceptance/tests/modules/upgrade/not_upgradable.rb28
-rw-r--r--acceptance/tests/modules/upgrade/to_a_specific_version.rb21
-rw-r--r--acceptance/tests/modules/upgrade/to_installed_version.rb25
-rw-r--r--acceptance/tests/modules/upgrade/with_constraints_on_it.rb21
-rw-r--r--acceptance/tests/modules/upgrade/with_constraints_on_its_dependencies.rb29
-rw-r--r--acceptance/tests/modules/upgrade/with_environment.rb10
-rw-r--r--acceptance/tests/modules/upgrade/with_local_changes.rb35
-rw-r--r--acceptance/tests/modules/upgrade/with_scattered_dependencies.rb2
-rw-r--r--acceptance/tests/modules/upgrade/with_update_available.rb27
33 files changed, 290 insertions, 228 deletions
diff --git a/acceptance/lib/puppet/acceptance/module_utils.rb b/acceptance/lib/puppet/acceptance/module_utils.rb
index ac67998a8..5b6124998 100644
--- a/acceptance/lib/puppet/acceptance/module_utils.rb
+++ b/acceptance/lib/puppet/acceptance/module_utils.rb
@@ -2,6 +2,39 @@ module Puppet
module Acceptance
module ModuleUtils
+ # Return an array of module paths for a given host.
+ #
+ # Example return value:
+ #
+ # [
+ # "/etc/puppetlabs/puppet/environments/production/modules",
+ # "/etc/puppetlabs/puppet/modules",
+ # "/opt/puppet/share/puppet/modules",
+ # ]
+ #
+ # @param host [String] hostname
+ # @return [Array] paths for found modulepath
+ def get_modulepaths_for_host (host)
+ separator = ':'
+ if host['platform'] =~ /windows/
+ separator = ';'
+ end
+ environment = on(host, puppet("config print environment")).stdout.chomp
+ on(host, puppet("config print modulepath --environment #{environment}")).stdout.chomp.split(separator)
+ end
+
+ # Return a string of the default (first) path in modulepath for a given host.
+ #
+ # Example return value:
+ #
+ # "/etc/puppetlabs/puppet/environments/production/modules"
+ #
+ # @param host [String] hostname
+ # @return [String] first path for found modulepath
+ def get_default_modulepath_for_host (host)
+ get_modulepaths_for_host(host)[0]
+ end
+
# Return an array of paths to installed modules for a given host.
#
# Example return value:
@@ -77,7 +110,7 @@ module Puppet
ending_hash.each do |host, mod_array|
mod_array.each do |mod|
if ! beginning_hash[host].include? mod
- on host, "rm -rf #{mod}"
+ on host, "rm -rf '#{mod}'"
end
end
end
@@ -139,11 +172,21 @@ module Puppet
# Assert that a module is installed on disk.
#
# @param host [HOST] the host object to make the remote call on
- # @param moduledir [String] the path where the module should be
# @param module_name [String] the name portion of a module name
- def assert_module_installed_on_disk ( host, moduledir, module_name )
- # module directory should exist
- on host, %Q{[ -d "#{moduledir}/#{module_name}" ]}
+ # @param optional moduledir [String, Array] the path where the module should be, will
+ # iterate over components of the modulepath by default.
+ def assert_module_installed_on_disk (host, module_name, moduledir=nil)
+ moduledir ||= get_modulepaths_for_host(host)
+ modulepath = moduledir.is_a?(Array) ? moduledir : [moduledir]
+ moduledir= nil
+
+ modulepath.each do |i|
+ # module directory should exist
+ if on(host, %Q{[ -d "#{i}/#{module_name}" ]}, :acceptable_exit_codes => (0..255)).exit_code == 0
+ moduledir = i
+ end
+ end
+ fail_test('module directory not found') unless moduledir
owner = ''
group = ''
@@ -172,10 +215,18 @@ module Puppet
# Assert that a module is not installed on disk.
#
# @param host [HOST] the host object to make the remote call on
- # @param moduledir [String] the path where the module should be
# @param module_name [String] the name portion of a module name
- def assert_module_not_installed_on_disk ( host, moduledir, module_name )
- on host, %Q{[ ! -d "#{moduledir}/#{module_name}" ]}
+ # @param optional moduledir [String, Array] the path where the module should be, will
+ # iterate over components of the modulepath by default.
+ def assert_module_not_installed_on_disk (host, module_name, moduledir=nil)
+ moduledir ||= get_modulepaths_for_host(host)
+ modulepath = moduledir.is_a?(Array) ? moduledir : [moduledir]
+ moduledir= nil
+
+ modulepath.each do |i|
+ # module directory should not exist
+ on host, %Q{[ ! -d "#{i}/#{module_name}" ]}
+ end
end
# Create a simple legacy and directory environment at :path_to_environments.
@@ -216,6 +267,9 @@ module Puppet
}
}
+ # remove environmentpath entry from config
+ on master, "sed '/environmentpath/d' #{puppet_conf} > #{path_to_environments}/tmp && mv #{path_to_environments}/tmp #{puppet_conf}"
+
on master, puppet("config", "set",
"modulepath", "#{legacy_env}/modules",
"--section", "legacyenv",
diff --git a/acceptance/tests/modules/install/already_installed.rb b/acceptance/tests/modules/install/already_installed.rb
index 203d34ed2..496448154 100644
--- a/acceptance/tests/modules/install/already_installed.rb
+++ b/acceptance/tests/modules/install/already_installed.rb
@@ -17,12 +17,12 @@ step "Setup" do
end
step "Check that module is not installed" do
- on master, %Q{[ ! -d "#{master['distmoduledir']}/#{module_name}" ]}
+ assert_module_not_installed_on_disk(master, module_name)
end
step "Install module" do
on master, puppet("module install #{module_reference}")
- assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+ assert_module_installed_on_disk(master, module_name)
end
step "Try to install a module that is already installed" do
@@ -30,7 +30,7 @@ step "Try to install a module that is already installed" do
assert_match(/#{module_reference}.*is already installed/, stdout,
"Error that module was already installed was not displayed")
end
- assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+ assert_module_installed_on_disk(master, module_name)
end
step "Try to install a specific version of a module that is already installed" do
@@ -40,12 +40,12 @@ step "Try to install a specific version of a module that is already installed" d
assert_match(/#{module_reference}.*is already installed/, stderr,
"Error that module was already installed was not displayed")
end
- assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+ assert_module_installed_on_disk(master, module_name)
end
step "Install a module that is already installed (with --force)" do
on master, puppet("module install #{module_reference} --force") do
assert_module_installed_ui(stdout, module_author, module_name)
end
- assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+ assert_module_installed_on_disk(master, module_name)
end
diff --git a/acceptance/tests/modules/install/already_installed_elsewhere.rb b/acceptance/tests/modules/install/already_installed_elsewhere.rb
index cc7a58dbc..6170dd2b0 100644
--- a/acceptance/tests/modules/install/already_installed_elsewhere.rb
+++ b/acceptance/tests/modules/install/already_installed_elsewhere.rb
@@ -19,7 +19,6 @@ stub_forge_on(master)
apply_manifest_on master, <<-PP
file {
[
- '#{master['distmoduledir']}',
'#{master['sitemoduledir']}',
'#{master['sitemoduledir']}/#{module_name}',
]: ensure => directory;
@@ -35,12 +34,14 @@ file {
}
PP
+default_moduledir = get_default_modulepath_for_host(master)
+
step "Try to install a module that is already installed"
-on master, puppet("module install #{module_author}-#{module_name}"), :acceptable_exit_codes => [0] do
+on master, puppet("module install #{module_author}-#{module_name}") do
assert_match(/#{module_reference}.*is already installed/, stdout,
"Error that module was already installed was not displayed")
end
-assert_module_not_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_not_installed_on_disk(master, module_name, default_moduledir)
step "Try to install a specific version of a module that is already installed"
on master, puppet("module install #{module_author}-#{module_name} --version 1.x"), :acceptable_exit_codes => [1] do
@@ -49,16 +50,16 @@ on master, puppet("module install #{module_author}-#{module_name} --version 1.x"
assert_match(/#{module_author}-#{module_name}.*is already installed/, stderr,
"Error that module was already installed was not displayed")
end
-assert_module_not_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_not_installed_on_disk(master, module_name, default_moduledir)
step "Install a specifc module version that is already installed (with --force)"
on master, puppet("module install #{module_author}-#{module_name} --force --version 0.0.1") do
assert_module_installed_ui(stdout, module_author, module_name, '0.0.1', '==')
end
-assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_installed_on_disk(master, module_name, default_moduledir)
step "Install a module that is already installed (with --force)"
on master, puppet("module install #{module_author}-#{module_name} --force") do
assert_module_installed_ui(stdout, module_author, module_name)
end
-assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_installed_on_disk(master, module_name, default_moduledir)
diff --git a/acceptance/tests/modules/install/already_installed_with_local_changes.rb b/acceptance/tests/modules/install/already_installed_with_local_changes.rb
index f173a110e..b043898b8 100644
--- a/acceptance/tests/modules/install/already_installed_with_local_changes.rb
+++ b/acceptance/tests/modules/install/already_installed_with_local_changes.rb
@@ -5,7 +5,6 @@ extend Puppet::Acceptance::ModuleUtils
module_author = "pmtacceptance"
module_name = "nginx"
module_reference = "#{module_author}-#{module_name}"
-module_path = "#{master['distmoduledir']}/#{module_name}"
module_dependencies = []
orig_installed_modules = get_installed_modules_for_hosts hosts
@@ -18,15 +17,16 @@ step 'Setup' do
end
step "Check that module is not installed" do
- on master, %Q{[ ! -d "#{module_path}" ]}
+ assert_module_not_installed_on_disk(master, module_name)
end
step "Install module" do
on master, puppet("module install #{module_reference}")
- assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+ assert_module_installed_on_disk(master, module_name)
end
step "Make local changes in installed module" do
+ module_path = "#{get_default_modulepath_for_host(master)}/#{module_name}"
on master, "echo 'changed' >> #{module_path}/README"
end
@@ -39,13 +39,13 @@ step "Try to install a specific version of a module that is already installed" d
assert_match(/changes made locally/, stderr,
"Error that module has local changes was not displayed")
end
- assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+ assert_module_installed_on_disk(master, module_name)
end
step "Install a module that is already installed (with --force)" do
on master, puppet("module install #{module_reference} --force") do
assert_module_installed_ui(stdout, module_author, module_name)
end
- assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+ assert_module_installed_on_disk(master, module_name)
#validate checksum
end
diff --git a/acceptance/tests/modules/install/basic_install.rb b/acceptance/tests/modules/install/basic_install.rb
index 98d2aa4c5..719a2724b 100644
--- a/acceptance/tests/modules/install/basic_install.rb
+++ b/acceptance/tests/modules/install/basic_install.rb
@@ -15,11 +15,9 @@ agents.each do |agent|
step 'setup'
stub_forge_on(agent)
- distmoduledir = on(agent, puppet("agent", "--configprint", "confdir")).stdout.chomp + "/modules"
-
step "install module '#{module_author}-#{module_name}'"
on(agent, puppet("module install #{module_author}-#{module_name}")) do
assert_module_installed_ui(stdout, module_author, module_name)
end
- assert_module_installed_on_disk(agent, distmoduledir, module_name)
+ assert_module_installed_on_disk(agent, module_name)
end
diff --git a/acceptance/tests/modules/install/force_ignores_dependencies.rb b/acceptance/tests/modules/install/force_ignores_dependencies.rb
index 2ea57f1d8..f83d19b15 100644
--- a/acceptance/tests/modules/install/force_ignores_dependencies.rb
+++ b/acceptance/tests/modules/install/force_ignores_dependencies.rb
@@ -20,16 +20,16 @@ on master, puppet("module install #{module_author}-#{module_name}"), :acceptable
assert_match(/No version of '#{module_author}-#{module_name}' can satisfy all dependencies/, stderr,
"Error that module dependencies could not be met was not displayed")
end
-assert_module_not_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_not_installed_on_disk(master, module_name)
module_dependencies.each do |dependency|
- assert_module_not_installed_on_disk(master, master['distmoduledir'], dependency)
+ assert_module_not_installed_on_disk(master, dependency)
end
step "Install an unsatisfiable module with force"
on master, puppet("module install #{module_author}-#{module_name} --force") do
assert_module_installed_ui(stdout, module_author, module_name)
end
-assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_installed_on_disk(master, module_name)
module_dependencies.each do |dependency|
- assert_module_not_installed_on_disk(master, master['distmoduledir'], dependency)
+ assert_module_not_installed_on_disk(master, dependency)
end
diff --git a/acceptance/tests/modules/install/ignoring_dependencies.rb b/acceptance/tests/modules/install/ignoring_dependencies.rb
index b4603f485..aa1a0082a 100644
--- a/acceptance/tests/modules/install/ignoring_dependencies.rb
+++ b/acceptance/tests/modules/install/ignoring_dependencies.rb
@@ -18,7 +18,7 @@ step "Install a module, but ignore dependencies"
on master, puppet("module install #{module_author}-#{module_name} --ignore-dependencies") do
assert_module_installed_ui(stdout, module_author, module_name)
end
-assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_installed_on_disk(master, module_name)
module_dependencies.each do |dependency|
- assert_module_not_installed_on_disk(master, master['distmoduledir'], dependency)
+ assert_module_not_installed_on_disk(master, dependency)
end
diff --git a/acceptance/tests/modules/install/nonexistent_directory.rb b/acceptance/tests/modules/install/nonexistent_directory.rb
index 0822f1dea..3ee753cb9 100644
--- a/acceptance/tests/modules/install/nonexistent_directory.rb
+++ b/acceptance/tests/modules/install/nonexistent_directory.rb
@@ -6,8 +6,11 @@ module_author = "pmtacceptance"
module_name = "nginx"
module_dependencies = []
+default_moduledir = get_default_modulepath_for_host(master)
+
orig_installed_modules = get_installed_modules_for_hosts hosts
teardown do
+ on master, "mv #{default_moduledir}-bak #{default_moduledir}", :acceptable_exit_codes => [0, 1]
rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
end
@@ -23,14 +26,12 @@ step "Try to install a module to a non-existent directory"
on master, puppet("module install #{module_author}-#{module_name} --target-dir /tmp/modules") do
assert_module_installed_ui(stdout, module_author, module_name)
end
-assert_module_installed_on_disk(master, '/tmp/modules', module_name)
+assert_module_installed_on_disk(master, module_name, '/tmp/modules')
step "Try to install a module to a non-existent implicit directory"
# This test relies on destroying the default module directory...
-on master, "mv #{master['distmoduledir']} #{master['distmoduledir']}-bak"
+on master, "mv #{default_moduledir} #{default_moduledir}-bak"
on master, puppet("module install #{module_author}-#{module_name}") do
assert_module_installed_ui(stdout, module_author, module_name)
end
-assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
-# Restore default module directory...
-on master, "mv #{master['distmoduledir']}-bak #{master['distmoduledir']}"
+assert_module_installed_on_disk(master, module_name, default_moduledir)
diff --git a/acceptance/tests/modules/install/nonexistent_module.rb b/acceptance/tests/modules/install/nonexistent_module.rb
index 736fb9b6a..19b63ef28 100644
--- a/acceptance/tests/modules/install/nonexistent_module.rb
+++ b/acceptance/tests/modules/install/nonexistent_module.rb
@@ -6,6 +6,8 @@ module_author = "pmtacceptance"
module_name = "nonexistent"
module_dependencies = []
+default_moduledir = get_default_modulepath_for_host(master)
+
orig_installed_modules = get_installed_modules_for_hosts hosts
teardown do
rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
@@ -36,7 +38,7 @@ on master, puppet("module --render-as json install #{module_author}-#{module_nam
assert_equal 'failure', json['result']
assert_equal "#{module_author}-#{module_name}", json['module_name']
assert_equal '>= 0.0.0', json['module_version']
- assert_equal master['distmoduledir'], json['install_dir']
+ assert_equal default_moduledir, json['install_dir']
assert_match oneline_expectation, json['error']['oneline']
assert_match multiline_expectation, json['error']['multiline']
end
diff --git a/acceptance/tests/modules/install/with_cycles.rb b/acceptance/tests/modules/install/with_cycles.rb
deleted file mode 100644
index f398397bf..000000000
--- a/acceptance/tests/modules/install/with_cycles.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-test_name "puppet module install (with cycles)"
-require 'puppet/acceptance/module_utils'
-extend Puppet::Acceptance::ModuleUtils
-
-module_author = "pmtacceptance"
-module_name = "php"
-module_dependencies = ["apache"]
-
-orig_installed_modules = get_installed_modules_for_hosts hosts
-teardown do
- rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
-end
-
-step 'Setup'
-
-stub_forge_on(master)
-
-# How does this test differ from a with_version test???
-step "Install a module with cycles"
-on master, puppet("module install #{module_author}-#{module_name} --version 0.0.1") do
- assert_equal <<-OUTPUT, stdout
-\e[mNotice: Preparing to install into #{master['distmoduledir']} ...\e[0m
-\e[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\e[0m
-\e[mNotice: Installing -- do not interrupt ...\e[0m
-#{master['distmoduledir']}
-└─┬ #{module_author}-#{module_name} (\e[0;36mv0.0.1\e[0m)
- └── #{module_author}-apache (\e[0;36mv0.0.1\e[0m)
- OUTPUT
-end
-
-# This isn't going to work
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do |res|
- assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
-├── #{module_author}-apache (\e[0;36mv0.0.1\e[0m)
-└── #{module_author}-#{module_name} (\e[0;36mv0.0.1\e[0m)
- OUTPUT
-end
diff --git a/acceptance/tests/modules/install/with_dependencies.rb b/acceptance/tests/modules/install/with_dependencies.rb
index 3e177ea3a..e89b3b7f8 100644
--- a/acceptance/tests/modules/install/with_dependencies.rb
+++ b/acceptance/tests/modules/install/with_dependencies.rb
@@ -22,7 +22,7 @@ on master, puppet("module install #{module_author}-#{module_name}") do
assert_module_installed_ui(stdout, module_author, dependency)
end
end
-assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_installed_on_disk(master, module_name)
module_dependencies.each do |dependency|
- assert_module_installed_on_disk(master, master['distmoduledir'], dependency)
+ assert_module_installed_on_disk(master, dependency)
end
diff --git a/acceptance/tests/modules/install/with_environment.rb b/acceptance/tests/modules/install/with_environment.rb
index 73257713a..fa608f230 100644
--- a/acceptance/tests/modules/install/with_environment.rb
+++ b/acceptance/tests/modules/install/with_environment.rb
@@ -2,6 +2,8 @@ test_name 'puppet module install (with environment)'
require 'puppet/acceptance/module_utils'
extend Puppet::Acceptance::ModuleUtils
+tmpdir = master.tmpdir('environmentpath')
+
module_author = "pmtacceptance"
module_name = "nginx"
@@ -14,7 +16,7 @@ step 'Setup'
stub_forge_on(master)
-puppet_conf = generate_base_legacy_and_directory_environments(master['puppetpath'])
+puppet_conf = generate_base_legacy_and_directory_environments(tmpdir)
check_module_install_in = lambda do |environment_path, module_install_args|
on master, "puppet module install #{module_author}-#{module_name} --config=#{puppet_conf} #{module_install_args}" do
@@ -22,23 +24,23 @@ check_module_install_in = lambda do |environment_path, module_install_args|
assert_match(/#{environment_path}/, stdout,
"Notice of non default install path was not displayed")
end
- assert_module_installed_on_disk(master, "#{environment_path}", module_name)
+ assert_module_installed_on_disk(master, module_name, environment_path)
end
step 'Install a module into a non default legacy environment' do
- check_module_install_in.call("#{master['puppetpath']}/legacyenv/modules",
+ check_module_install_in.call("#{tmpdir}/legacyenv/modules",
"--environment=legacyenv")
end
step 'Enable directory environments' do
on master, puppet("config", "set",
- "environmentpath", "#{master['puppetpath']}/environments",
+ "environmentpath", "#{tmpdir}/environments",
"--section", "main",
"--config", puppet_conf)
end
step 'Install a module into a non default directory environment' do
- check_module_install_in.call("#{master['puppetpath']}/environments/direnv/modules",
+ check_module_install_in.call("#{tmpdir}/environments/direnv/modules",
"--environment=direnv")
end
@@ -47,7 +49,7 @@ modulepath_dir = master.tmpdir("modulepath")
apply_manifest_on(master, <<-MANIFEST , :catch_failures => true)
file {
[
- '#{master['puppetpath']}/environments/production',
+ '#{tmpdir}/environments/production',
'#{modulepath_dir}',
]:
diff --git a/acceptance/tests/modules/install/with_existing_module_directory.rb b/acceptance/tests/modules/install/with_existing_module_directory.rb
index dad0212dd..0802a93fb 100644
--- a/acceptance/tests/modules/install/with_existing_module_directory.rb
+++ b/acceptance/tests/modules/install/with_existing_module_directory.rb
@@ -15,13 +15,15 @@ step 'Setup'
stub_forge_on(master)
+default_moduledir = get_default_modulepath_for_host(master)
+
apply_manifest_on master, <<-PP
file {
[
- '#{master['distmoduledir']}/#{module_name}',
- '#{master['distmoduledir']}/apache',
+ '#{default_moduledir}/#{module_name}',
+ '#{default_moduledir}/apache',
]: ensure => directory;
- '#{master['distmoduledir']}/#{module_name}/metadata.json':
+ '#{default_moduledir}/#{module_name}/metadata.json':
content => '{
"name": "not#{module_author}/#{module_name}",
"version": "0.0.3",
@@ -31,8 +33,8 @@ file {
"dependencies": []
}';
[
- '#{master['distmoduledir']}/#{module_name}/extra.json',
- '#{master['distmoduledir']}/apache/extra.json',
+ '#{default_moduledir}/#{module_name}/extra.json',
+ '#{default_moduledir}/apache/extra.json',
]: content => '';
}
PP
@@ -40,18 +42,18 @@ PP
step "Try to install a module with a name collision"
module_name = "nginx"
on master, puppet("module install #{module_author}-#{module_name}"), :acceptable_exit_codes => [1] do
- assert_match(/Installation would overwrite #{master['distmoduledir']}\/#{module_name}/, stderr,
+ assert_match(/Installation would overwrite #{default_moduledir}\/#{module_name}/, stderr,
"Error of module collision was not displayed")
end
-on master, "[ -f #{master['distmoduledir']}/#{module_name}/extra.json ]"
+on master, "[ -f #{default_moduledir}/#{module_name}/extra.json ]"
step "Try to install a module with a path collision"
module_name = "apache"
on master, puppet("module install #{module_author}-#{module_name}"), :acceptable_exit_codes => [1] do
- assert_match(/Installation would overwrite #{master['distmoduledir']}\/#{module_name}/, stderr,
+ assert_match(/Installation would overwrite #{default_moduledir}\/#{module_name}/, stderr,
"Error of module collision was not displayed")
end
-on master, "[ -f #{master['distmoduledir']}/#{module_name}/extra.json ]"
+on master, "[ -f #{default_moduledir}/#{module_name}/extra.json ]"
step "Try to install a module with a dependency that has collides"
module_name = "php"
@@ -59,18 +61,18 @@ on master, puppet("module install #{module_author}-#{module_name} --version 0.0.
assert_match(/Dependency .* would overwrite/, stderr,
"Error of dependency collision was not displayed")
end
-on master, "[ -f #{master['distmoduledir']}/apache/extra.json ]"
+on master, "[ -f #{default_moduledir}/apache/extra.json ]"
step "Install a module with a name collision by using --force"
module_name = "nginx"
on master, puppet("module install #{module_author}-#{module_name} --force"), :acceptable_exit_codes => [0] do
assert_module_installed_ui(stdout, module_author, module_name)
end
-on master, "[ ! -f #{master['distmoduledir']}/#{module_name}/extra.json ]"
+on master, "[ ! -f #{default_moduledir}/#{module_name}/extra.json ]"
step "Install an module with a name collision by using --force"
module_name = "apache"
on master, puppet("module install #{module_author}-#{module_name} --force"), :acceptable_exit_codes => [0] do
assert_module_installed_ui(stdout, module_author, module_name)
end
-on master, "[ ! -f #{master['distmoduledir']}/#{module_name}/extra.json ]"
+on master, "[ ! -f #{default_moduledir}/#{module_name}/extra.json ]"
diff --git a/acceptance/tests/modules/install/with_modulepath.rb b/acceptance/tests/modules/install/with_modulepath.rb
index 7c577795d..12c72e2ec 100644
--- a/acceptance/tests/modules/install/with_modulepath.rb
+++ b/acceptance/tests/modules/install/with_modulepath.rb
@@ -27,7 +27,7 @@ on master, "cd #{master['puppetpath']}/modules2 && puppet module install #{modul
assert_match(/#{master['puppetpath']}\/modules2/, stdout,
"Notice of non default install path was not displayed")
end
-assert_module_installed_on_disk(master, "#{master['puppetpath']}/modules2", module_name)
+assert_module_installed_on_disk(master, module_name, "#{master['puppetpath']}/modules2")
step "Install a module with absolute modulepath"
on master, "test -d #{master['puppetpath']}/modules2/#{module_name} && rm -rf #{master['puppetpath']}/modules2/#{module_name}"
@@ -36,4 +36,4 @@ on master, puppet("module install #{module_author}-#{module_name} --modulepath=#
assert_match(/#{master['puppetpath']}\/modules2/, stdout,
"Notice of non default install path was not displayed")
end
-assert_module_installed_on_disk(master, "#{master['puppetpath']}/modules2", module_name)
+assert_module_installed_on_disk(master, module_name, "#{master['puppetpath']}/modules2")
diff --git a/acceptance/tests/modules/install/with_necessary_upgrade.rb b/acceptance/tests/modules/install/with_necessary_upgrade.rb
index aa272f4d6..ff31aa19c 100644
--- a/acceptance/tests/modules/install/with_necessary_upgrade.rb
+++ b/acceptance/tests/modules/install/with_necessary_upgrade.rb
@@ -15,13 +15,15 @@ step 'Setup'
stub_forge_on(master)
+default_moduledir = get_default_modulepath_for_host(master)
+
step "Install an older module version"
module_version = '1.6.0'
on master, puppet("module install #{module_author}-#{module_name} --version #{module_version}") do
assert_match(/#{module_author}-#{module_name} \(.*v#{module_version}.*\)/, stdout,
"Notice of specific version installed was not displayed")
end
-on master, "grep \"version '#{module_version}'\" #{master['distmoduledir']}/#{module_name}/Modulefile"
+on master, "grep \"version '#{module_version}'\" #{default_moduledir}/#{module_name}/Modulefile"
step "Install a module that requires the older module dependency be upgraded"
@@ -29,6 +31,6 @@ on master, puppet("module install #{module_author}-apollo") do
assert_module_installed_ui(stdout, module_author, module_name, module_version, '>')
end
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_module_installed_ui(stdout, module_author, module_name, module_version, '>')
end
diff --git a/acceptance/tests/modules/install/with_no_dependencies.rb b/acceptance/tests/modules/install/with_no_dependencies.rb
index f2e73ddb5..b4c7f3e00 100644
--- a/acceptance/tests/modules/install/with_no_dependencies.rb
+++ b/acceptance/tests/modules/install/with_no_dependencies.rb
@@ -19,4 +19,4 @@ step "Install a module with no dependencies"
on master, puppet("module install #{module_author}-#{module_name}") do
assert_module_installed_ui(stdout, module_author, module_name)
end
-assert_module_installed_on_disk(master, master['distmoduledir'], module_name)
+assert_module_installed_on_disk(master, module_name)
diff --git a/acceptance/tests/modules/install/with_unnecessary_upgrade.rb b/acceptance/tests/modules/install/with_unnecessary_upgrade.rb
index c7513b3b7..76449f72c 100644
--- a/acceptance/tests/modules/install/with_unnecessary_upgrade.rb
+++ b/acceptance/tests/modules/install/with_unnecessary_upgrade.rb
@@ -13,6 +13,8 @@ end
step 'Setup'
+default_moduledir = get_default_modulepath_for_host(master)
+
stub_forge_on(master)
step "Install an older module version"
@@ -21,7 +23,7 @@ on master, puppet("module install #{module_author}-#{module_name} --version #{mo
assert_match(/#{module_author}-#{module_name} \(.*v#{module_version}.*\)/, stdout,
"Notice of specific version installed was not displayed")
end
-on master, "grep \"version '#{module_version}'\" #{master['distmoduledir']}/#{module_name}/Modulefile"
+on master, "grep \"version '#{module_version}'\" #{default_moduledir}/#{module_name}/Modulefile"
step "Install a module that depends on a dependency that could be upgraded, but already satisfies constraints"
@@ -30,7 +32,7 @@ on master, puppet("module install #{module_author}-#{module_name}") do
assert_module_installed_ui(stdout, module_author, module_name)
end
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
module_name = "java"
assert_module_installed_ui(stdout, module_author, module_name, module_version, '==')
end
diff --git a/acceptance/tests/modules/install/with_unsatisfied_constraints.rb b/acceptance/tests/modules/install/with_unsatisfied_constraints.rb
index 4e38d1436..456b93fe2 100644
--- a/acceptance/tests/modules/install/with_unsatisfied_constraints.rb
+++ b/acceptance/tests/modules/install/with_unsatisfied_constraints.rb
@@ -42,31 +42,31 @@ on master, puppet("module install #{module_author}-#{module_name}"), :acceptable
assert_match(/Use `puppet module install --ignore-dependencies/, stderr,
"Use --ignore-dependencies error was not displayed")
end
-on master, "[ ! -d #{master['distmoduledir']}/#{module_name} ]"
+assert_module_not_installed_on_disk(master, module_name)
# FIXME I don't understand what behaviour this looking for?
step "Install the module with an unsatisfiable dependency"
on master, puppet("module install #{module_author}-#{module_name} --ignore-dependencies") do
assert_module_installed_ui(stdout, module_author, module_name)
end
-on master, "[ -d #{master['distmoduledir']}/#{module_name} ]"
+assert_module_installed_on_disk(master, module_name)
step "Try to install a specific version of the unsatisfiable dependency"
on master, puppet("module install #{module_author}-stdlub --version 1.x"), :acceptable_exit_codes => [1] do
assert_match(/No version.* can satisfy all dependencies/, stderr,
"Unsatisfiable dependency was not displayed")
end
-on master, "[ ! -d #{master['distmoduledir']}/stdlub ]"
+assert_module_not_installed_on_disk(master, 'stdlub')
step "Try to install any version of the unsatisfiable dependency"
on master, puppet("module install #{module_author}-stdlub"), :acceptable_exit_codes => [1] do
assert_match(/No version.* can satisfy all dependencies/, stderr,
"Unsatisfiable dependency was not displayed")
end
-on master, "[ ! -d #{master['distmoduledir']}/stdlub ]"
+assert_module_not_installed_on_disk(master, 'stdlub')
step "Install the unsatisfiable dependency with --force"
on master, puppet("module install #{module_author}-stdlub --force") do
assert_module_installed_ui(stdout, module_author, 'stdlub')
end
-on master, "[ -d #{master['distmoduledir']}/stdlub ]"
+assert_module_installed_on_disk(master, 'stdlub')
diff --git a/acceptance/tests/modules/install/with_version.rb b/acceptance/tests/modules/install/with_version.rb
index dca9ff281..41c5fdb5b 100644
--- a/acceptance/tests/modules/install/with_version.rb
+++ b/acceptance/tests/modules/install/with_version.rb
@@ -16,16 +16,16 @@ agents.each do |agent|
step 'setup'
stub_forge_on(agent)
- distmoduledir = on(agent, puppet("agent", "--configprint", "confdir")).stdout.chomp + "/modules"
-
step " install module '#{module_author}-#{module_name}'"
+ opts ||= Hash.new
+ opts['ENV']=Command::DEFAULT_GIT_ENV
command = agent['platform'] =~ /windows/ ?
- Command.new("cmd.exe /c 'puppet module install --version \"<#{module_version}\" #{module_author}-#{module_name}'") :
+ Command.new("'puppet module install --version \"<#{module_version}\" #{module_author}-#{module_name}'", [], opts) :
puppet("module install --version \"<#{module_version}\" #{module_author}-#{module_name}")
on(agent, command) do
assert_module_installed_ui(stdout, module_author, module_name, module_version, '<')
end
- assert_module_installed_on_disk(agent, distmoduledir, module_name)
+ assert_module_installed_on_disk(agent, module_name)
end
diff --git a/acceptance/tests/modules/list/with_environment.rb b/acceptance/tests/modules/list/with_environment.rb
index bbbfed2fc..e57138150 100644
--- a/acceptance/tests/modules/list/with_environment.rb
+++ b/acceptance/tests/modules/list/with_environment.rb
@@ -2,11 +2,13 @@ test_name 'puppet module list (with environment)'
require 'puppet/acceptance/module_utils'
extend Puppet::Acceptance::ModuleUtils
+tmpdir = master.tmpdir('environmentpath')
+
step 'Setup'
stub_forge_on(master)
-puppet_conf = generate_base_legacy_and_directory_environments(master['puppetpath'])
+puppet_conf = generate_base_legacy_and_directory_environments(tmpdir)
install_test_module_in = lambda do |environment|
on master, puppet("module", "install",
@@ -27,17 +29,17 @@ end
step 'List modules in a non default legacy environment' do
install_test_module_in.call('legacyenv')
- check_module_list_in.call('legacyenv', "#{master['puppetpath']}/legacyenv/modules")
+ check_module_list_in.call('legacyenv', "#{tmpdir}/legacyenv/modules")
end
step 'Enable directory environments' do
on master, puppet("config", "set",
- "environmentpath", "#{master['puppetpath']}/environments",
+ "environmentpath", "#{tmpdir}/environments",
"--section", "main",
"--config", puppet_conf)
end
step 'List modules in a non default directory environment' do
install_test_module_in.call('direnv')
- check_module_list_in.call('direnv', "#{master['puppetpath']}/environments/direnv/modules")
+ check_module_list_in.call('direnv', "#{tmpdir}/environments/direnv/modules")
end
diff --git a/acceptance/tests/modules/uninstall/with_environment.rb b/acceptance/tests/modules/uninstall/with_environment.rb
index 58228014e..77a682f14 100644
--- a/acceptance/tests/modules/uninstall/with_environment.rb
+++ b/acceptance/tests/modules/uninstall/with_environment.rb
@@ -2,11 +2,13 @@ test_name 'puppet module uninstall (with environment)'
require 'puppet/acceptance/module_utils'
extend Puppet::Acceptance::ModuleUtils
+tmpdir = master.tmpdir('environmentpath')
+
step 'Setup'
stub_forge_on(master)
-puppet_conf = generate_base_legacy_and_directory_environments(master['puppetpath'])
+puppet_conf = generate_base_legacy_and_directory_environments(tmpdir)
crakorn_metadata = <<-EOS
{
@@ -23,18 +25,18 @@ EOS
apply_manifest_on master, %Q{
file {
[
- '#{master['puppetpath']}/legacyenv/modules/crakorn',
- '#{master['puppetpath']}/environments/direnv/modules',
- '#{master['puppetpath']}/environments/direnv/modules/crakorn',
+ '#{tmpdir}/legacyenv/modules/crakorn',
+ '#{tmpdir}/environments/direnv/modules',
+ '#{tmpdir}/environments/direnv/modules/crakorn',
]:
ensure => directory,
}
file {
- '#{master['puppetpath']}/legacyenv/modules/crakorn/metadata.json':
+ '#{tmpdir}/legacyenv/modules/crakorn/metadata.json':
content => '#{crakorn_metadata}',
}
file {
- '#{master['puppetpath']}/environments/direnv/modules/crakorn/metadata.json':
+ '#{tmpdir}/environments/direnv/modules/crakorn/metadata.json':
content => '#{crakorn_metadata}',
}
}
@@ -50,16 +52,16 @@ Removed 'jimmy-crakorn' (\e[0;36mv0.4.0\e[0m) from #{environment_path}
end
step 'Uninstall a module from a non default legacy environment' do
- check_module_uninstall_in.call('legacyenv', "#{master['puppetpath']}/legacyenv/modules")
+ check_module_uninstall_in.call('legacyenv', "#{tmpdir}/legacyenv/modules")
end
step 'Enable directory environments' do
on master, puppet("config", "set",
- "environmentpath", "#{master['puppetpath']}/environments",
+ "environmentpath", "#{tmpdir}/environments",
"--section", "main",
"--config", puppet_conf)
end
step 'Uninstall a module from a non default directory environment' do
- check_module_uninstall_in.call('direnv', "#{master['puppetpath']}/environments/direnv/modules")
+ check_module_uninstall_in.call('direnv', "#{tmpdir}/environments/direnv/modules")
end
diff --git a/acceptance/tests/modules/uninstall/with_multiple_modules_installed.rb b/acceptance/tests/modules/uninstall/with_multiple_modules_installed.rb
index 2223c9d42..5a56091c7 100644
--- a/acceptance/tests/modules/uninstall/with_multiple_modules_installed.rb
+++ b/acceptance/tests/modules/uninstall/with_multiple_modules_installed.rb
@@ -1,5 +1,9 @@
test_name "puppet module uninstall (with multiple modules installed)"
+if master.is_pe?
+ skip_test
+end
+
step 'Setup'
testdir = master.tmpdir('unistallmultiple')
diff --git a/acceptance/tests/modules/upgrade/in_a_secondary_directory.rb b/acceptance/tests/modules/upgrade/in_a_secondary_directory.rb
index 3b3a79c8a..3b08574b9 100644
--- a/acceptance/tests/modules/upgrade/in_a_secondary_directory.rb
+++ b/acceptance/tests/modules/upgrade/in_a_secondary_directory.rb
@@ -1,14 +1,16 @@
test_name "puppet module upgrade (in a secondary directory)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
stub_forge_on(master)
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/stdlib"
-end
-
on master, "mkdir -p #{master['distmoduledir']}"
on master, puppet("module install pmtacceptance-java --version 1.6.0 --target-dir #{master['distmoduledir']}")
on master, puppet("module list --modulepath #{master['distmoduledir']}") do
diff --git a/acceptance/tests/modules/upgrade/introducing_new_dependencies.rb b/acceptance/tests/modules/upgrade/introducing_new_dependencies.rb
index 47c3cfdc9..5f4e23d37 100644
--- a/acceptance/tests/modules/upgrade/introducing_new_dependencies.rb
+++ b/acceptance/tests/modules/upgrade/introducing_new_dependencies.rb
@@ -1,22 +1,24 @@
test_name "puppet module upgrade (introducing new dependencies)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
stub_forge_on(master)
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/postql"
- on master, "rm -rf #{master['distmoduledir']}/stdlub"
- on master, "rm -rf #{master['distmoduledir']}/geordi"
-end
+default_moduledir = get_default_modulepath_for_host(master)
on master, puppet("module install pmtacceptance-stdlub --version 1.0.0")
on master, puppet("module install pmtacceptance-java --version 1.7.0")
on master, puppet("module install pmtacceptance-postql --version 0.0.2")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── pmtacceptance-java (\e[0;36mv1.7.0\e[0m)
├── pmtacceptance-postql (\e[0;36mv0.0.2\e[0m)
└── pmtacceptance-stdlub (\e[0;36mv1.0.0\e[0m)
@@ -27,10 +29,10 @@ step "Upgrade a module to a version that introduces new dependencies"
on master, puppet("module upgrade pmtacceptance-postql") do
assert_equal <<-OUTPUT, stdout
\e[mNotice: Preparing to upgrade 'pmtacceptance-postql' ...\e[0m
-\e[mNotice: Found 'pmtacceptance-postql' (\e[0;36mv0.0.2\e[m) in #{master['distmoduledir']} ...\e[0m
+\e[mNotice: Found 'pmtacceptance-postql' (\e[0;36mv0.0.2\e[m) in #{default_moduledir} ...\e[0m
\e[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\e[0m
\e[mNotice: Upgrading -- do not interrupt ...\e[0m
-#{master['distmoduledir']}
+#{default_moduledir}
└─┬ pmtacceptance-postql (\e[0;36mv0.0.2 -> v1.0.0\e[0m)
└── pmtacceptance-geordi (\e[0;36mv0.0.1\e[0m)
OUTPUT
diff --git a/acceptance/tests/modules/upgrade/not_upgradable.rb b/acceptance/tests/modules/upgrade/not_upgradable.rb
index 679b05f6c..aa503b3d0 100644
--- a/acceptance/tests/modules/upgrade/not_upgradable.rb
+++ b/acceptance/tests/modules/upgrade/not_upgradable.rb
@@ -1,24 +1,26 @@
test_name "puppet module upgrade (not upgradable)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
stub_forge_on(master)
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/unicorns"
- on master, "rm -rf #{master['distmoduledir']}/stdlub"
- on master, "rm -rf #{master['distmoduledir']}/nginx"
-end
+default_moduledir = get_default_modulepath_for_host(master)
-on master, "mkdir -p #{master['distmoduledir']}"
+on master, "mkdir -p #{default_moduledir}"
apply_manifest_on master, <<-PP
file {
[
- '#{master['distmoduledir']}/nginx',
- '#{master['distmoduledir']}/unicorns',
+ '#{default_moduledir}/nginx',
+ '#{default_moduledir}/unicorns',
]: ensure => directory;
- '#{master['distmoduledir']}/unicorns/metadata.json':
+ '#{default_moduledir}/unicorns/metadata.json':
content => '{
"name": "notpmtacceptance/unicorns",
"version": "0.0.3",
@@ -31,9 +33,9 @@ apply_manifest_on master, <<-PP
PP
on master, puppet("module install pmtacceptance-java --version 1.6.0")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── nginx (\e[0;36m???\e[0m)
├── notpmtacceptance-unicorns (\e[0;36mv0.0.3\e[0m)
├── pmtacceptance-java (\e[0;36mv1.6.0\e[0m)
@@ -57,7 +59,7 @@ end
# on master, puppet("module upgrade nginx"), :acceptable_exit_codes => [1] do
# pattern = Regexp.new([
# %Q{.*Notice: Preparing to upgrade 'nginx' .*},
-# %Q{.*Notice: Found 'nginx' \\(.*\\?\\?\\?.*\\) in #{master['distmoduledir']} .*},
+# %Q{.*Notice: Found 'nginx' \\(.*\\?\\?\\?.*\\) in #{default_moduledir} .*},
# %Q{.*Notice: Downloading from https://forgeapi.puppetlabs.com .*},
# %Q{.*Error: Could not upgrade module 'nginx' \\(\\?\\?\\? -> latest\\)},
# %Q{ Module 'nginx' does not exist on https://forgeapi.puppetlabs.com.*},
diff --git a/acceptance/tests/modules/upgrade/to_a_specific_version.rb b/acceptance/tests/modules/upgrade/to_a_specific_version.rb
index 301e7dc98..f5af4713a 100644
--- a/acceptance/tests/modules/upgrade/to_a_specific_version.rb
+++ b/acceptance/tests/modules/upgrade/to_a_specific_version.rb
@@ -1,19 +1,22 @@
test_name "puppet module upgrade (to a specific version)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
stub_forge_on(master)
-on master, "mkdir -p #{master['distmoduledir']}"
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/stdlub"
-end
+default_moduledir = get_default_modulepath_for_host(master)
on master, puppet("module install pmtacceptance-java --version 1.6.0")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── pmtacceptance-java (\e[0;36mv1.6.0\e[0m)
└── pmtacceptance-stdlub (\e[0;36mv1.0.0\e[0m)
OUTPUT
@@ -23,10 +26,10 @@ step "Upgrade a module to a specific (greater) version"
on master, puppet("module upgrade pmtacceptance-java --version 1.7.0") do
assert_equal <<-OUTPUT, stdout
\e[mNotice: Preparing to upgrade 'pmtacceptance-java' ...\e[0m
-\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{master['distmoduledir']} ...\e[0m
+\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{default_moduledir} ...\e[0m
\e[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\e[0m
\e[mNotice: Upgrading -- do not interrupt ...\e[0m
-#{master['distmoduledir']}
+#{default_moduledir}
└── pmtacceptance-java (\e[0;36mv1.6.0 -> v1.7.0\e[0m)
OUTPUT
end
diff --git a/acceptance/tests/modules/upgrade/to_installed_version.rb b/acceptance/tests/modules/upgrade/to_installed_version.rb
index d64e2b1e6..02ff8b722 100644
--- a/acceptance/tests/modules/upgrade/to_installed_version.rb
+++ b/acceptance/tests/modules/upgrade/to_installed_version.rb
@@ -1,19 +1,22 @@
test_name "puppet module upgrade (to installed version)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
-on master, "mkdir -p #{master['distmoduledir']}"
stub_forge_on(master)
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/stdlub"
-end
+default_moduledir = get_default_modulepath_for_host(master)
on master, puppet("module install pmtacceptance-java --version 1.6.0")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── pmtacceptance-java (\e[0;36mv1.6.0\e[0m)
└── pmtacceptance-stdlub (\e[0;36mv1.0.0\e[0m)
OUTPUT
@@ -27,7 +30,7 @@ end
step "Upgrade a module to the current version with --force"
on master, puppet("module upgrade pmtacceptance-java --version 1.6.x --force") do
- assert_match(/#{master['distmoduledir']}/, stdout,
+ assert_match(/#{default_moduledir}/, stdout,
'Error that distmoduledir was not displayed')
assert_match(/\'pmtacceptance-java\' \(.*v1\.6\.0.*\)/, stdout,
@@ -38,10 +41,10 @@ step "Upgrade to the latest version"
on master, puppet("module upgrade pmtacceptance-java") do
assert_equal <<-OUTPUT, stdout
\e[mNotice: Preparing to upgrade 'pmtacceptance-java' ...\e[0m
-\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{master['distmoduledir']} ...\e[0m
+\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{default_moduledir} ...\e[0m
\e[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\e[0m
\e[mNotice: Upgrading -- do not interrupt ...\e[0m
-#{master['distmoduledir']}
+#{default_moduledir}
└── pmtacceptance-java (\e[0;36mv1.6.0 -> v1.7.1\e[0m)
OUTPUT
end
@@ -54,7 +57,7 @@ end
step "Upgrade a module to the latest version with --force"
on master, puppet("module upgrade pmtacceptance-java --force") do
- assert_match(/#{master['distmoduledir']}/, stdout,
+ assert_match(/#{default_moduledir}/, stdout,
'Error that distmoduledir was not displayed')
assert_match(/pmtacceptance-java \(.*v1\.7\.1.*\)/, stdout,
diff --git a/acceptance/tests/modules/upgrade/with_constraints_on_it.rb b/acceptance/tests/modules/upgrade/with_constraints_on_it.rb
index 4216b8322..32644faaa 100644
--- a/acceptance/tests/modules/upgrade/with_constraints_on_it.rb
+++ b/acceptance/tests/modules/upgrade/with_constraints_on_it.rb
@@ -1,20 +1,23 @@
test_name "puppet module upgrade (with constraints on it)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
stub_forge_on(master)
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/apollo"
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/stdlub"
-end
+default_moduledir = get_default_modulepath_for_host(master)
on master, puppet("module install pmtacceptance-java --version 1.7.0")
on master, puppet("module install pmtacceptance-apollo")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── pmtacceptance-apollo (\e[0;36mv0.0.1\e[0m)
├── pmtacceptance-java (\e[0;36mv1.7.0\e[0m)
└── pmtacceptance-stdlub (\e[0;36mv1.0.0\e[0m)
@@ -25,10 +28,10 @@ step "Upgrade a version-constrained module that has an upgrade"
on master, puppet("module upgrade pmtacceptance-java") do
assert_equal <<-OUTPUT, stdout
\e[mNotice: Preparing to upgrade 'pmtacceptance-java' ...\e[0m
-\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.7.0\e[m) in #{master['distmoduledir']} ...\e[0m
+\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.7.0\e[m) in #{default_moduledir} ...\e[0m
\e[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\e[0m
\e[mNotice: Upgrading -- do not interrupt ...\e[0m
-#{master['distmoduledir']}
+#{default_moduledir}
└── pmtacceptance-java (\e[0;36mv1.7.0 -> v1.7.1\e[0m)
OUTPUT
end
diff --git a/acceptance/tests/modules/upgrade/with_constraints_on_its_dependencies.rb b/acceptance/tests/modules/upgrade/with_constraints_on_its_dependencies.rb
index 07a517301..5fd1ec043 100644
--- a/acceptance/tests/modules/upgrade/with_constraints_on_its_dependencies.rb
+++ b/acceptance/tests/modules/upgrade/with_constraints_on_its_dependencies.rb
@@ -1,21 +1,24 @@
test_name "puppet module upgrade (with constraints on its dependencies)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
stub_forge_on(master)
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/unicorns"
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/stdlub"
-end
+default_moduledir = get_default_modulepath_for_host(master)
apply_manifest_on master, <<-PP
file {
[
- '#{master['distmoduledir']}/unicorns',
+ '#{default_moduledir}/unicorns',
]: ensure => directory;
- '#{master['distmoduledir']}/unicorns/metadata.json':
+ '#{default_moduledir}/unicorns/metadata.json':
content => '{
"name": "notpmtacceptance/unicorns",
"version": "0.0.3",
@@ -30,9 +33,9 @@ apply_manifest_on master, <<-PP
PP
on master, puppet("module install pmtacceptance-stdlub --version 0.0.2")
on master, puppet("module install pmtacceptance-java --version 1.6.0")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── notpmtacceptance-unicorns (\e[0;36mv0.0.3\e[0m)
├── pmtacceptance-java (\e[0;36mv1.6.0\e[0m)
└── pmtacceptance-stdlub (\e[0;36mv0.0.2\e[0m)
@@ -47,9 +50,9 @@ end
step "Relax constraints"
on master, puppet("module uninstall notpmtacceptance-unicorns")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── pmtacceptance-java (\e[0;36mv1.6.0\e[0m)
└── pmtacceptance-stdlub (\e[0;36mv0.0.2\e[0m)
OUTPUT
@@ -59,10 +62,10 @@ step "Upgrade a single module, ignoring its dependencies"
on master, puppet("module upgrade pmtacceptance-java --version 1.7.0 --ignore-dependencies") do
assert_equal <<-OUTPUT, stdout
\e[mNotice: Preparing to upgrade 'pmtacceptance-java' ...\e[0m
-\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{master['distmoduledir']} ...\e[0m
+\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{default_moduledir} ...\e[0m
\e[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\e[0m
\e[mNotice: Upgrading -- do not interrupt ...\e[0m
-#{master['distmoduledir']}
+#{default_moduledir}
└── pmtacceptance-java (\e[0;36mv1.6.0 -> v1.7.0\e[0m)
OUTPUT
end
diff --git a/acceptance/tests/modules/upgrade/with_environment.rb b/acceptance/tests/modules/upgrade/with_environment.rb
index 2e2a39cb1..3a4aa8c72 100644
--- a/acceptance/tests/modules/upgrade/with_environment.rb
+++ b/acceptance/tests/modules/upgrade/with_environment.rb
@@ -2,6 +2,8 @@ test_name "puppet module upgrade (with environment)"
require 'puppet/acceptance/module_utils'
extend Puppet::Acceptance::ModuleUtils
+tmpdir = master.tmpdir('environmentpath')
+
module_author = "pmtacceptance"
module_name = "java"
module_dependencies = ["stdlub"]
@@ -15,7 +17,7 @@ step 'Setup'
stub_forge_on(master)
-puppet_conf = generate_base_legacy_and_directory_environments(master['puppetpath'])
+puppet_conf = generate_base_legacy_and_directory_environments(tmpdir)
install_test_module_in = lambda do |environment|
on master, puppet("module install #{module_author}-#{module_name} --config=#{puppet_conf} --version 1.6.0 --environment=#{environment}") do
@@ -33,17 +35,17 @@ end
step "Upgrade a module that has a more recent version published in a legacy environment" do
install_test_module_in.call('legacyenv')
- check_module_upgrade_in.call('legacyenv', "#{master['puppetpath']}/legacyenv/modules")
+ check_module_upgrade_in.call('legacyenv', "#{tmpdir}/legacyenv/modules")
end
step 'Enable directory environments' do
on master, puppet("config", "set",
- "environmentpath", "#{master['puppetpath']}/environments",
+ "environmentpath", "#{tmpdir}/environments",
"--section", "main",
"--config", puppet_conf)
end
step "Upgrade a module that has a more recent version published in a directory environment" do
install_test_module_in.call('direnv')
- check_module_upgrade_in.call('direnv', "#{master['puppetpath']}/environments/direnv/modules")
+ check_module_upgrade_in.call('direnv', "#{tmpdir}/environments/direnv/modules")
end
diff --git a/acceptance/tests/modules/upgrade/with_local_changes.rb b/acceptance/tests/modules/upgrade/with_local_changes.rb
index 4163665a0..f4f930a00 100644
--- a/acceptance/tests/modules/upgrade/with_local_changes.rb
+++ b/acceptance/tests/modules/upgrade/with_local_changes.rb
@@ -1,27 +1,30 @@
test_name "puppet module upgrade (with local changes)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
stub_forge_on(master)
-on master, "mkdir -p #{master['distmoduledir']}"
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/stdlub"
-end
+default_moduledir = get_default_modulepath_for_host(master)
on master, puppet("module install pmtacceptance-java --version 1.6.0")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── pmtacceptance-java (\e[0;36mv1.6.0\e[0m)
└── pmtacceptance-stdlub (\e[0;36mv1.0.0\e[0m)
OUTPUT
end
apply_manifest_on master, <<-PP
file {
- '#{master['distmoduledir']}/java/README': content => "I CHANGE MY READMES";
- '#{master['distmoduledir']}/java/NEWFILE': content => "I don't exist.'";
+ '#{default_moduledir}/java/README': content => "I CHANGE MY READMES";
+ '#{default_moduledir}/java/NEWFILE': content => "I don't exist.'";
}
PP
@@ -29,26 +32,26 @@ step "Try to upgrade a module with local changes"
on master, puppet("module upgrade pmtacceptance-java"), :acceptable_exit_codes => [1] do
pattern = Regexp.new([
%Q{.*Notice: Preparing to upgrade 'pmtacceptance-java' ....*},
- %Q{.*Notice: Found 'pmtacceptance-java' \\(.*v1.6.0.*\\) in #{master['distmoduledir']} ....*},
+ %Q{.*Notice: Found 'pmtacceptance-java' \\(.*v1.6.0.*\\) in #{default_moduledir} ....*},
%Q{.*Error: Could not upgrade module 'pmtacceptance-java' \\(v1.6.0 -> latest\\)},
%Q{ Installed module has had changes made locally},
%Q{ Use `puppet module upgrade --ignore-changes` to upgrade this module anyway.*},
].join("\n"), Regexp::MULTILINE)
assert_match(pattern, result.output)
end
-on master, %{[[ "$(cat #{master['distmoduledir']}/java/README)" == "I CHANGE MY READMES" ]]}
-on master, "[ -f #{master['distmoduledir']}/java/NEWFILE ]"
+on master, %{[[ "$(cat #{default_moduledir}/java/README)" == "I CHANGE MY READMES" ]]}
+on master, "[ -f #{default_moduledir}/java/NEWFILE ]"
step "Upgrade a module with local changes with --force"
on master, puppet("module upgrade pmtacceptance-java --force") do
assert_equal <<-OUTPUT, stdout
\e[mNotice: Preparing to upgrade 'pmtacceptance-java' ...\e[0m
-\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{master['distmoduledir']} ...\e[0m
+\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{default_moduledir} ...\e[0m
\e[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\e[0m
\e[mNotice: Upgrading -- do not interrupt ...\e[0m
-#{master['distmoduledir']}
+#{default_moduledir}
└── pmtacceptance-java (\e[0;36mv1.6.0 -> v1.7.1\e[0m)
OUTPUT
end
-on master, %{[[ "$(cat #{master['distmoduledir']}/java/README)" != "I CHANGE MY READMES" ]]}
-on master, "[ ! -f #{master['distmoduledir']}/java/NEWFILE ]"
+on master, %{[[ "$(cat #{default_moduledir}/java/README)" != "I CHANGE MY READMES" ]]}
+on master, "[ ! -f #{default_moduledir}/java/NEWFILE ]"
diff --git a/acceptance/tests/modules/upgrade/with_scattered_dependencies.rb b/acceptance/tests/modules/upgrade/with_scattered_dependencies.rb
index 363721c60..158d544b5 100644
--- a/acceptance/tests/modules/upgrade/with_scattered_dependencies.rb
+++ b/acceptance/tests/modules/upgrade/with_scattered_dependencies.rb
@@ -1,5 +1,7 @@
test_name "puppet module upgrade (with scattered dependencies)"
+skip_test 'needs triage'
+
step 'Setup'
stub_forge_on(master)
diff --git a/acceptance/tests/modules/upgrade/with_update_available.rb b/acceptance/tests/modules/upgrade/with_update_available.rb
index fd99f267e..3dffd2a8b 100644
--- a/acceptance/tests/modules/upgrade/with_update_available.rb
+++ b/acceptance/tests/modules/upgrade/with_update_available.rb
@@ -1,19 +1,22 @@
test_name "puppet module upgrade (with update available)"
+require 'puppet/acceptance/module_utils'
+extend Puppet::Acceptance::ModuleUtils
+
+orig_installed_modules = get_installed_modules_for_hosts hosts
+teardown do
+ rm_installed_modules_from_hosts orig_installed_modules, (get_installed_modules_for_hosts hosts)
+end
step 'Setup'
stub_forge_on(master)
-on master, "mkdir -p #{master['distmoduledir']}"
-teardown do
- on master, "rm -rf #{master['distmoduledir']}/java"
- on master, "rm -rf #{master['distmoduledir']}/stdlub"
-end
+default_moduledir = get_default_modulepath_for_host(master)
on master, puppet("module install pmtacceptance-java --version 1.6.0")
-on master, puppet("module list --modulepath #{master['distmoduledir']}") do
+on master, puppet("module list --modulepath #{default_moduledir}") do
assert_equal <<-OUTPUT, stdout
-#{master['distmoduledir']}
+#{default_moduledir}
├── pmtacceptance-java (\e[0;36mv1.6.0\e[0m)
└── pmtacceptance-stdlub (\e[0;36mv1.0.0\e[0m)
OUTPUT
@@ -23,13 +26,13 @@ step "Upgrade a module that has a more recent version published"
on master, puppet("module upgrade pmtacceptance-java") do
assert_equal <<-OUTPUT, stdout
\e[mNotice: Preparing to upgrade 'pmtacceptance-java' ...\e[0m
-\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{master['distmoduledir']} ...\e[0m
+\e[mNotice: Found 'pmtacceptance-java' (\e[0;36mv1.6.0\e[m) in #{default_moduledir} ...\e[0m
\e[mNotice: Downloading from https://forgeapi.puppetlabs.com ...\e[0m
\e[mNotice: Upgrading -- do not interrupt ...\e[0m
-#{master['distmoduledir']}
+#{default_moduledir}
└── pmtacceptance-java (\e[0;36mv1.6.0 -> v1.7.1\e[0m)
OUTPUT
- on master, "[ -d #{master['distmoduledir']}/java ]"
- on master, "[ -f #{master['distmoduledir']}/java/Modulefile ]"
- on master, "grep 1.7.1 #{master['distmoduledir']}/java/Modulefile"
+ on master, "[ -d #{default_moduledir}/java ]"
+ on master, "[ -f #{default_moduledir}/java/Modulefile ]"
+ on master, "grep 1.7.1 #{default_moduledir}/java/Modulefile"
end