From 015616888fe0970acb33337cf4d52f9a3d29fa32 Mon Sep 17 00:00:00 2001 From: Ramesh Sencha Date: Fri, 28 Jul 2023 13:45:49 +0530 Subject: [PATCH] (CAT-1241) - Adding retry when provision failed with Timeout --- lib/puppet_litmus/rake_tasks.rb | 9 +++++++++ 1 file changed, 9 insertions(+) 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