Module: Windows::Pkg
Instance Attribute Summary
Attributes included from Beaker::CommandFactory
Instance Method Summary collapse
- #check_for_command(name) ⇒ Object
- #check_for_package(name) ⇒ Object
-
#determine_if_x86_64 ⇒ Boolean
Examine the host system to determine the architecture, overrides default host determine_if_x86_64 so that wmic is used.
- #install_package(name, cmdline_args = '') ⇒ Object
-
#pe_puppet_agent_promoted_package_info(_puppet_collection = nil, _opts = {}) ⇒ String
Gets host-specific information for PE promoted puppet-agent packages.
-
#puppet_agent_dev_package_info(_puppet_collection = nil, puppet_agent_version = nil, opts = {}) ⇒ String
Gets the path & file name for the puppet agent dev package on Windows.
- #uninstall_package(name, _cmdline_args = '') ⇒ Object
Methods included from Beaker::CommandFactory
Instance Method Details
#check_for_command(name) ⇒ Object
4 5 6 7 |
# File 'lib/beaker/host/windows/pkg.rb', line 4 def check_for_command(name) result = exec(Beaker::Command.new("which #{name}"), :accept_all_exit_codes => true) result.exit_code == 0 end |
#check_for_package(name) ⇒ Object
9 10 11 12 |
# File 'lib/beaker/host/windows/pkg.rb', line 9 def check_for_package(name) result = exec(Beaker::Command.new("cygcheck #{name}"), :accept_all_exit_codes => true) result.exit_code == 0 end |
#determine_if_x86_64 ⇒ Boolean
Examine the host system to determine the architecture, overrides default host determine_if_x86_64 so that wmic is used
34 35 36 |
# File 'lib/beaker/host/windows/pkg.rb', line 34 def determine_if_x86_64 identify_windows_architecture.include?('64') end |
#install_package(name, cmdline_args = '') ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/beaker/host/windows/pkg.rb', line 14 def install_package(name, cmdline_args = '') arch = identify_windows_architecture if arch == '64' rootdir = "c:\\\\cygwin64" cygwin = "setup-x86_64.exe" else #32 bit version rootdir = "c:\\\\cygwin" cygwin = "setup-x86.exe" end execute("#{cygwin} -q -n -N -d -R #{rootdir} -s http://cygwin.osuosl.org -P #{name} #{cmdline_args}") end |
#pe_puppet_agent_promoted_package_info(_puppet_collection = nil, _opts = {}) ⇒ String
Gets host-specific information for PE promoted puppet-agent packages
75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/beaker/host/windows/pkg.rb', line 75 def pe_puppet_agent_promoted_package_info( _puppet_collection = nil, _opts = {} ) is_config_32 = self['ruby_arch'] == 'x86' || self['install_32'] || self['install_32'] should_install_64bit = self.is_x86_64? && !is_config_32 # only install 64bit builds if # - we do not have install_32 set on host # - we do not have install_32 set globally arch_suffix = should_install_64bit ? '64' : '86' release_path_end = "/windows" release_file = "/puppet-agent-x#{arch_suffix}.msi" download_file = "puppet-agent-x#{arch_suffix}.msi" return release_path_end, release_file, download_file end |
#puppet_agent_dev_package_info(_puppet_collection = nil, puppet_agent_version = nil, opts = {}) ⇒ String
Note:
Windows only uses the 'install_32' option of the opts hash at this time. Note that it will not fail if not provided, however
Gets the path & file name for the puppet agent dev package on Windows
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/beaker/host/windows/pkg.rb', line 48 def puppet_agent_dev_package_info( _puppet_collection = nil, puppet_agent_version = nil, opts = {} ) release_path_end = 'windows' is_config_32 = self['ruby_arch'] == 'x86' || self['install_32'] || opts['install_32'] should_install_64bit = self.is_x86_64? && !is_config_32 # only install 64bit builds if # - we do not have install_32 set on host # - we do not have install_32 set globally arch_suffix = should_install_64bit ? '64' : '86' # If a version was specified, use it; otherwise fall back to a default name. # Avoid when puppet_agent_version is set to a SHA, which isn't used in package names. if /^\d+\.\d+\.\d+/.match?(puppet_agent_version) release_file = "puppet-agent-#{puppet_agent_version}-x#{arch_suffix}.msi" else release_file = "puppet-agent-x#{arch_suffix}.msi" end return release_path_end, release_file end |
#uninstall_package(name, _cmdline_args = '') ⇒ Object
28 29 30 |
# File 'lib/beaker/host/windows/pkg.rb', line 28 def uninstall_package(name, _cmdline_args = '') raise "Package #{name} cannot be uninstalled on #{self}" end |