Class: Windows::Host
- Inherits:
-
Unix::Host
- Object
- Beaker::Host
- Unix::Host
- Windows::Host
- Defined in:
- lib/beaker/host/windows.rb
Overview
A windows host with cygwin tools installed
Direct Known Subclasses
Constant Summary
Constants included from Exec
Constants inherited from Beaker::Host
Instance Attribute Summary collapse
-
#scp_separator ⇒ Object
readonly
Returns the value of attribute scp_separator.
Attributes included from Beaker::CommandFactory
Attributes inherited from Beaker::Host
#host_hash, #logger, #name, #options
Instance Method Summary collapse
-
#determine_ssh_server ⇒ Symbol
Determines which SSH Server is in use on this host.
- #external_copy_base ⇒ Object
-
#initialize(name, host_hash, options) ⇒ Host
constructor
A new instance of Host.
- #platform_defaults ⇒ Object
-
#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.
Methods included from Pkg
#check_for_command, #check_for_package, #determine_if_x86_64, #install_package, #uninstall_package
Methods included from Beaker::CommandFactory
Methods included from Exec
#echo, #get_ip, #path, #ping, #reboot, #ssh_permit_user_environment, #ssh_service_restart, #touch
Methods included from File
#file_exist?, #path_split, #scp_path, #system_temp_path, #tmpdir, #tmpfile
Methods included from Group
#group_absent, #group_get, #group_gid, #group_list, #group_present
Methods included from User
#user_absent, #user_get, #user_list, #user_present
Methods inherited from Unix::Host
#skip_set_env?, #solaris_puppet_agent_dev_package_info
Methods included from Unix::Pkg
#check_for_command, #check_for_package, #deploy_apt_repo, #deploy_package_repo, #deploy_yum_repo, #deploy_zyp_repo, #determine_if_x86_64, #extract_rpm_proxy_options, #install_package, #install_package_with_rpm, #pkg_initialize, #uninstall_package, #update_apt_if_needed, #upgrade_package
Methods included from Unix::Exec
#add_env_var, #clear_env_var, #delete_env_var, #echo, #get_env_var, #get_ip, #mirror_env_to_profile_d, #mkdir_p, #mv, #path, #ping, #reboot, #rm_rf, #ssh_permit_user_environment, #ssh_service_restart, #ssh_set_user_environment, #touch
Methods included from Unix::File
#file_exist?, #noask_file_text, #package_config_dir, #path_split, #repo_filename, #repo_type, #scp_path, #system_temp_path, #tmpdir, #tmpfile
Methods included from Unix::Group
#group_absent, #group_get, #group_gid, #group_list, #group_present
Methods included from Unix::User
#user_absent, #user_get, #user_list, #user_present
Methods inherited from Beaker::Host
#+, #[], #[]=, #close, #connection, create, #delete, #do_rsync_to, #do_scp_from, #do_scp_to, #exec, #get_ip, #graceful_restarts?, #has_key?, #hostname, #ip, #is_cygwin?, #is_pe?, #is_powershell?, #is_using_passenger?, #is_x86_64?, #log_prefix, #node_name, #pkg_initialize, #platform, #port_open?, #puppet_configprint, #reachable_name, #to_s, #to_str, #up?, #use_service_scripts?, #uses_passenger!
Methods included from Beaker::DSL::Patterns
Methods included from Beaker::DSL::Helpers::WebHelpers
#link_exists?, #port_open_within?
Methods included from Beaker::DSL::Helpers::TKHelpers
Methods included from Beaker::DSL::Helpers::TestHelpers
#current_step_name, #current_test_filename, #current_test_name, #set_current_step_name, #set_current_test_filename, #set_current_test_name
Methods included from Beaker::DSL::Helpers::PuppetHelpers
#apply_manifest, #apply_manifest_on, #create_tmpdir_for_user, #puppet_group, #puppet_user, #run_agent_on, #sign_certificate, #sign_certificate_for, #sleep_until_nc_started, #sleep_until_puppetdb_started, #sleep_until_puppetserver_started, #stop_agent, #stop_agent_on, #stub_forge, #stub_forge_on, #stub_hosts, #stub_hosts_on, #wait_for_host_in_dashboard, #with_forge_stubbed, #with_forge_stubbed_on, #with_host_stubbed_on, #with_puppet_running, #with_puppet_running_on
Methods included from Beaker::DSL::Helpers::HostHelpers
#add_system32_hosts_entry, #backup_the_file, #check_for_package, #create_remote_file, #create_tmpdir_on, #curl_on, #curl_with_retries, #deploy_package_repo, #echo_on, #execute_powershell_script_on, #exit_code, #install_package, #on, #retry_on, #rsync_to, #run_script, #run_script_on, #scp_from, #scp_to, #shell, #stderr, #stdout, #upgrade_package
Methods included from Beaker::DSL::Helpers::FacterHelpers
Constructor Details
#initialize(name, host_hash, options) ⇒ Host
Returns a new instance of Host.
69 70 71 72 73 74 75 |
# File 'lib/beaker/host/windows.rb', line 69 def initialize name, host_hash, super @ssh_server = nil @scp_separator = '\\' @external_copy_base = nil end |
Instance Attribute Details
#scp_separator ⇒ Object (readonly)
Returns the value of attribute scp_separator.
68 69 70 |
# File 'lib/beaker/host/windows.rb', line 68 def scp_separator @scp_separator end |
Instance Method Details
#determine_ssh_server ⇒ Symbol
Determines which SSH Server is in use on this host
37 38 39 40 41 42 43 44 |
# File 'lib/beaker/host/windows.rb', line 37 def determine_ssh_server return @ssh_server if @ssh_server @ssh_server = :openssh status = execute('cmd.exe /c sc query BvSshServer', :accept_all_exit_codes => true) @ssh_server = :bitvise if status =~ /4 RUNNING/ logger.debug("windows.rb:determine_ssh_server: determined ssh server: '#{@ssh_server}'") @ssh_server end |
#external_copy_base ⇒ Object
27 28 29 30 31 |
# File 'lib/beaker/host/windows.rb', line 27 def external_copy_base return @external_copy_base if @external_copy_base @external_copy_base = execute('echo `cygpath -smF 35`/') @external_copy_base end |
#platform_defaults ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/beaker/host/windows.rb', line 18 def platform_defaults h = Beaker::Options::OptionsHash.new h.merge({ 'user' => 'Administrator', 'group' => 'Administrators', 'pathseparator' => ';', }) end |
#puppet_agent_dev_package_info(puppet_collection = nil, puppet_agent_version = nil, opts = {}) ⇒ String
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
56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/beaker/host/windows.rb', line 56 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' release_file = "puppet-agent-x#{arch_suffix}.msi" return release_path_end, release_file end |