diff options
author | Josh Partlow <jpartlow@glatisant.org> | 2014-09-19 16:28:43 -0700 |
---|---|---|
committer | Josh Partlow <jpartlow@glatisant.org> | 2014-09-19 16:28:43 -0700 |
commit | 9e5b0f41165b6651af8d2dd0684ac4df8467e2ca (patch) | |
tree | a85433efd65fe76cfe99d859a02867cfd30ae22d | |
parent | 25ecd641be536300aaacfedfb03d2d6c0fc3d01e (diff) | |
parent | 5a49f76f484dfc6cd436480ae86dcb1848e9695b (diff) | |
download | puppet-9e5b0f41165b6651af8d2dd0684ac4df8467e2ca.tar.gz |
Merge pull request #3109 from johnduarte/pmt_directory_env_support
(PUP-3248) Fix PMT tests for directory environment
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 |