Exception: ChefApply::TargetHost::ConnectionFailure
- Inherits:
-
ErrorNoLogs
- Object
- StandardError
- Error
- ErrorNoLogs
- ChefApply::TargetHost::ConnectionFailure
- Defined in:
- lib/chef_apply/target_host.rb
Instance Attribute Summary
Attributes inherited from Error
#decorate, #id, #params, #show_log, #show_stack
Instance Method Summary collapse
-
#initialize(original_exception, connection_opts) ⇒ ConnectionFailure
constructor
TODO: Currently this only handles sudo-related errors; we should also look at e.cause for underlying connection errors which are presently only visible in log files.
Constructor Details
#initialize(original_exception, connection_opts) ⇒ ConnectionFailure
TODO: Currently this only handles sudo-related errors; we should also look at e.cause for underlying connection errors which are presently only visible in log files.
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 |
# File 'lib/chef_apply/target_host.rb', line 202 def initialize(original_exception, connection_opts) sudo_command = connection_opts[:sudo_command] init_params = # Comments below show the original_exception.reason values to check for instead of strings, # after train 1.4.12 is consumable. case original_exception. # original_exception.reason when /Sudo requires a password/ # :sudo_password_required "CHEFTRN003" when /Wrong sudo password/ #:bad_sudo_password "CHEFTRN004" when /Can't find sudo command/, /No such file/, /command not found/ # :sudo_command_not_found # NOTE: In the /No such file/ case, reason will be nil - we still have # to check message text. (Or PR to train to handle this case) ["CHEFTRN005", sudo_command] # :sudo_command_not_found when /Sudo requires a TTY.*/ # :sudo_no_tty "CHEFTRN006" when /has no keys added/ "CHEFTRN007" else ["CHEFTRN999", original_exception.] end super(*(Array(init_params).flatten)) end |