Class: Dopi::Command::Winrm::WaitForLogin

Inherits:
Dopi::Command show all
Includes:
Dopi::CommandParser::ExitCode, Dopi::Connector::Winrm
Defined in:
lib/dopi/command/winrm/wait_for_login.rb

Direct Known Subclasses

Reboot

Constant Summary collapse

DEFAULT_INTERVAL =
10

Instance Attribute Summary

Attributes inherited from Dopi::Command

#hash, #is_verify_command, #node

Instance Method Summary collapse

Methods included from Dopi::CommandParser::ExitCode

#check_exit_code, #expect_exit_codes, #validate_exit_code

Methods included from Dopi::Connector::Winrm

#basic_auth_only, #ca_trust_path, #disable_sspi, #endpoint, #operation_timeout, #port, #ssl, #supported_credential_types, #validate_winrm, #winrm, #winrm_command, #winrm_powershell_command

Methods included from Dopi::CommandParser::Credentials

#credentials, #validate_credentials

Methods inherited from Dopi::Command

create_plugin_instance, delete_plugin_default, delete_plugin_defaults, inherited, #initialize, #load_state, #merged_hash, #meta_run, #meta_valid?, plugin_defaults, set_plugin_defaults, #state_hash, wipe_plugin_defaults

Methods included from State

#delete_on_signal, #on_signal, #reset_signals, #send_signal, #signal_procs, #signals, #state, #state_add_child, #state_auto_evaluate_children, #state_auto_evaluate_children=, #state_changed, #state_children, #state_children_done?, #state_children_failed?, #state_children_partial?, #state_children_ready?, #state_children_running?, #state_children_running_noop?, #state_children_starting?, #state_done?, #state_fail, #state_failed?, #state_finish, #state_partial?, #state_ready, #state_ready?, #state_reset, #state_reset_with_children, #state_run, #state_run_noop, #state_running?, #state_running_noop?, #state_start, #state_starting?, #to_yaml_properties, #update, #update_mutex

Constructor Details

This class inherits a constructor from Dopi::Command

Instance Method Details

#intervalObject



35
36
37
38
# File 'lib/dopi/command/winrm/wait_for_login.rb', line 35

def interval
  @interval ||= interval_valid? ?
    hash[:interval] : DEFAULT_INTERVAL
end

#interval_valid?Boolean

Returns:

  • (Boolean)


40
41
42
43
44
# File 'lib/dopi/command/winrm/wait_for_login.rb', line 40

def interval_valid?
  return false if hash[:interval].nil? # is optional
  hash[:interval].class == Fixnum or
    raise CommandParsingError, "Plugin #{name}: the value of 'interval' has to be a number"
end

#runObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/dopi/command/winrm/wait_for_login.rb', line 20

def run
  connected = false
  until connected
    begin connected = check_exit_code(winrm_command('exit')[2])
    rescue Dopi::NodeConnectionError, Dopi::CommandConnectionError
    end
    unless connected
      sleep interval
      raise GracefulExit if signals[:stop]
      log(:info, "Retrying connect to node")
    end
  end
  true
end

#validateObject



14
15
16
17
18
# File 'lib/dopi/command/winrm/wait_for_login.rb', line 14

def validate
  validate_winrm
  validate_exit_code
  log_validation_method(:interval_valid?, CommandParsingError)
end