@@ -21,6 +21,19 @@ class Helper
21
21
SQL_ADMIN_PASS = 'Pupp3t1@'
22
22
USER = Helper . instance . run_shell ( '$env:UserName' ) . stdout . chomp
23
23
24
+ def retry_on_error_matching ( max_retry_count = 3 , retry_wait_interval_secs = 5 , error_matcher = nil )
25
+ try = 0
26
+ begin
27
+ try += 1
28
+ yield
29
+ rescue StandardError => e
30
+ raise unless try < max_retry_count && ( error_matcher . nil? || e . message =~ error_matcher )
31
+
32
+ sleep retry_wait_interval_secs
33
+ retry
34
+ end
35
+ end
36
+
24
37
RSpec . configure do |c |
25
38
c . before ( :suite ) do
26
39
Helper . instance . run_shell ( 'puppet module install puppetlabs-mount_iso' )
@@ -81,7 +94,9 @@ def mount_iso(opts = {})
81
94
drive_letter => '#{ drive_letter } ',
82
95
}
83
96
MANIFEST
84
- Helper . instance . apply_manifest ( pp )
97
+ retry_on_error_matching ( 10 , 5 , %r{apply manifest failed} ) do
98
+ Helper . instance . apply_manifest ( pp )
99
+ end
85
100
end
86
101
87
102
def base_install ( sql_version )
@@ -152,7 +167,9 @@ def install_sqlserver(features)
152
167
windows_feature_source => 'I:\\ sources\\ sxs',
153
168
}
154
169
MANIFEST
155
- Helper . instance . apply_manifest ( pp )
170
+ retry_on_error_matching ( 10 , 5 , %r{apply manifest failed} ) do
171
+ Helper . instance . apply_manifest ( pp )
172
+ end
156
173
end
157
174
158
175
def run_sql_query ( opts = { } , &block )
0 commit comments