diff --git a/lib/rtoolsHCK.rb b/lib/rtoolsHCK.rb index 3e60e75..106e480 100755 --- a/lib/rtoolsHCK.rb +++ b/lib/rtoolsHCK.rb @@ -67,6 +67,7 @@ class RToolsHCK WINRM_OPERATION_TIMEOUT = 9_999 WINRM_RECIEVE_TIMEOUT = 99_999 + WINRM_RETRY_INTERVAL = 60 private @@ -176,7 +177,15 @@ def validate_init_opts(init_opts) end def start_studio_service(service_name) + retries ||= 0 run("Start-Service #{service_name}") + rescue WinrmPSRunError => e + raise e unless (retries += 1) < 4 + + logger('warn', "#{e.message} Retrying in #{WINRM_RETRY_INTERVAL} seconds...") + sleep(WINRM_RETRY_INTERVAL) + + retry end def start_studio_services