Module: Beaker::DSL::InstallUtils::PEClientTools
- Included in:
- PE
- Defined in:
- lib/beaker-pe/pe-client-tools/install_helper.rb
Instance Method Summary collapse
-
#install_dev_repos_on(package, host, sha, repo_configs_dir, opts = {}) ⇒ Object
‘install_dev_repos_on` is used in various projects in the puppetlabs namespace; when they are all switched to call `install_puppetlabs_dev_repo`, this method can be removed.
- #install_pe_client_tools_on(hosts, opts = {}) ⇒ Object
Instance Method Details
#install_dev_repos_on(package, host, sha, repo_configs_dir, opts = {}) ⇒ Object
‘install_dev_repos_on` is used in various projects in the puppetlabs namespace; when they are all switched to call `install_puppetlabs_dev_repo`, this method can be removed.
66 67 68 |
# File 'lib/beaker-pe/pe-client-tools/install_helper.rb', line 66 def install_dev_repos_on(package, host, sha, repo_configs_dir, opts={}) install_puppetlabs_dev_repo(host, package, sha, repo_configs_dir, opts) end |
#install_pe_client_tools_on(hosts, opts = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/beaker-pe/pe-client-tools/install_helper.rb', line 6 def install_pe_client_tools_on(hosts, opts = {}) product = 'pe-client-tools' required_keys = [:puppet_collection, :pe_client_tools_sha, :pe_client_tools_version] unless required_keys.all? { |opt| opts.keys.include?(opt) && opts[opt]} raise ArgumentError, "The keys #{required_keys.to_s} are required in the opts hash" end urls = { :dev_builds_url => "http://builds.delivery.puppetlabs.net", } opts = urls.merge(opts) block_on hosts do |host| variant, version, arch, codename = host['platform'].to_array package_name = '' # If we're installing a tagged version, then the package will be # located in a directory named after the tag. Otherwise, look for # it by SHA. if opts[:pe_client_tools_version] =~ /^\d+(\.\d+)+$/ directory = opts[:pe_client_tools_version] else directory = opts[:pe_client_tools_sha] end case host['platform'] when /win/ package_name << product release_path = "#{opts[:dev_builds_url]}/#{product}/#{directory}/artifacts/#{variant}" package_name << "-#{opts[:pe_client_tools_version]}-x#{arch}.msi" generic_install_msi_on(host, File.join(release_path, package_name), {}, {:debug => true}) when /osx/ release_path = "#{opts[:dev_builds_url]}/#{product}/#{directory}/artifacts/apple/#{version}/#{opts[:puppet_collection]}/#{arch}" package_base = "#{product}-#{opts[:pe_client_tools_version]}" package_base << '-1' if opts[:pe_client_tools_version] dmg = package_base + ".#{variant}#{version}.dmg" copy_dir_local = File.join('tmp', 'repo_configs') fetch_http_file(release_path, dmg, copy_dir_local) scp_to host, File.join(copy_dir_local, dmg), host.external_copy_base package_name = package_base + '*' installer = package_name + '-installer.pkg' host.generic_install_dmg(dmg, package_name, installer) else install_dev_repos_on(product, host, directory, '/tmp/repo_configs',{:dev_builds_url => opts[:dev_builds_url]}) host.install_package('pe-client-tools') if host['platform'] =~ /cisco|centos|redhat|eos|sles|el-|fedora-(2[2-9]|3[0-9])/ host.exec(Command.new('rpm -q pe-client-tools')) do |command| raise "Wanted version not installed." unless command.stdout =~ /-#{opts[:pe_client_tools_version]}/ end elsif host['platform'] =~ /ubuntu|debian|cumulus|huaweios/ host.exec(Command.new("apt-cache policy pe-client-tools | sed -n -e 's/Installed: //p'")) do |command| raise "Wanted version not installed." unless command.stdout =~ /-#{opts[:pe_client_tools_version]}/ end end end end end |