From cccb292b867f7c56c0bcc763ee0bf50813729010 Mon Sep 17 00:00:00 2001 From: Ramesh Sencha Date: Fri, 28 Jul 2023 13:45:49 +0530 Subject: [PATCH 1/2] (CAT-1241) - Adding retry when provision failed with Timeout --- .rubocop_todo.yml | 2 +- lib/puppet_litmus/rake_tasks.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8c82e1ad..89b24cdc 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -23,7 +23,7 @@ Metrics/AbcSize: # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode. # AllowedMethods: refine Metrics/BlockLength: - Max: 345 + Max: 350 # Offense count: 8 # Configuration parameters: AllowedMethods, AllowedPatterns. diff --git a/lib/puppet_litmus/rake_tasks.rb b/lib/puppet_litmus/rake_tasks.rb index e684519a..cd3c9085 100644 --- a/lib/puppet_litmus/rake_tasks.rb +++ b/lib/puppet_litmus/rake_tasks.rb @@ -75,6 +75,8 @@ task :provision, [:provisioner, :platform, :inventory_vars] do |_task, args| Rake::Task['spec_prep'].invoke + retry_count = 3 + current_retry_count = 0 begin spinner = start_spinner("Provisioning #{args[:platform]} using #{args[:provisioner]} provisioner.") @@ -94,6 +96,13 @@ check_connectivity?(inventory_hash_from_inventory_file, target) end end + rescue PuppetLitmus::RakeHelper::LitmusTimeoutError + current_retry_count += 1 + Rake::Task['litmus:tear_down'].invoke(target_names.first) + raise if current_retry_count >= retry_count + + puts "Provision of node #{target_names.first} failed, Retrying #{current_retry_count} of #{retry_count}" + retry ensure stop_spinner(spinner) end From f73212688eec83fd2b369bb52bad79a23ba4e88c Mon Sep 17 00:00:00 2001 From: Ramesh Sencha Date: Fri, 28 Jul 2023 14:03:24 +0530 Subject: [PATCH 2/2] Update lib/puppet_litmus/rake_tasks.rb Co-authored-by: jordanbreen28 <112936862+jordanbreen28@users.noreply.github.com> --- lib/puppet_litmus/rake_tasks.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/puppet_litmus/rake_tasks.rb b/lib/puppet_litmus/rake_tasks.rb index cd3c9085..62c4547a 100644 --- a/lib/puppet_litmus/rake_tasks.rb +++ b/lib/puppet_litmus/rake_tasks.rb @@ -99,7 +99,7 @@ rescue PuppetLitmus::RakeHelper::LitmusTimeoutError current_retry_count += 1 Rake::Task['litmus:tear_down'].invoke(target_names.first) - raise if current_retry_count >= retry_count + raise if current_retry_count > retry_count puts "Provision of node #{target_names.first} failed, Retrying #{current_retry_count} of #{retry_count}" retry