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
Taken from puppet acceptance lib Install development repos.
- #install_pe_client_tools_on(hosts, opts = {}) ⇒ Object
Instance Method Details
#install_dev_repos_on(package, host, sha, repo_configs_dir, opts = {}) ⇒ Object
Taken from puppet acceptance lib Install development repos
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/beaker-pe/pe-client-tools/install_helper.rb', line 47 def install_dev_repos_on(package, host, sha, repo_configs_dir, opts={}) platform = host['platform'] =~ /^(debian|ubuntu)/ ? host['platform'].with_version_codename : host['platform'] platform_configs_dir = File.join(repo_configs_dir, platform) case platform when /^(fedora|el|centos|sles)-(\d+)-(.+)$/ variant = (($1 == 'centos') ? 'el' : $1) fedora_prefix = ((variant == 'fedora') ? 'f' : '') version = $2 arch = $3 pattern = 'pl-%s-%s-%s-%s%s-%s.repo' repo_filename = pattern % [ package, sha, variant, fedora_prefix, version, arch ] repo = fetch_http_file( "%s/%s/%s/repo_configs/rpm/" % [opts[:dev_builds_url],package, sha], repo_filename, platform_configs_dir ) if /sles/i.match(platform) scp_to(host, repo, '/etc/zypp/repos.d/') else scp_to(host, repo, '/etc/yum.repos.d/') end when /^(debian|ubuntu)-([^-]+)-(.+)$/ variant = $1 version = $2 arch = $3 list = fetch_http_file( "%s/%s/%s/repo_configs/deb/" % [opts[:dev_builds_url],package, sha], "pl-%s-%s-%s.list" % [package, sha, version], platform_configs_dir ) scp_to host, list, '/etc/apt/sources.list.d' on host, 'apt-get update' else host.logger.notify("No repository installation step for #{platform} yet...") end 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 |
# 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 = '' case host['platform'] when /win/ package_name << product release_path = "#{opts[:dev_builds_url]}/#{product}/#{ opts[:pe_client_tools_sha] }/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}/#{ opts[:pe_client_tools_sha] }/artifacts/apple/#{version}/#{opts[:puppet_collection]}/#{arch}" package_base = product.dup package_base << "-#{opts[:pe_client_tools_version]}" package_name = package_base.dup package_name << '-1' if opts[:pe_client_tools_version] installer = package_name + '-installer.pkg' package_name << ".#{variant}#{version}.dmg" copy_dir_local = File.join('tmp', 'repo_configs') fetch_http_file(release_path, package_name, copy_dir_local) scp_to host, File.join(copy_dir_local, package_name), host.external_copy_base host.generic_install_dmg(package_name, package_base, installer) else install_dev_repos_on(product, host, opts[:pe_client_tools_sha], '/tmp/repo_configs',{:dev_builds_url => opts[:dev_builds_url]}) host.install_package('pe-client-tools') end end end |