File tree 3 files changed +22
-0
lines changed
3 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -165,6 +165,7 @@ def run_event_loop
165
165
reparse_run = Puppet ::Scheduler . create_job ( Puppet [ :filetimeout ] ) do
166
166
Puppet . settings . reparse_config_files
167
167
agent_run . run_interval = Puppet [ :runinterval ]
168
+ agent_run . splay_limit = Puppet [ :splaylimit ] if Puppet [ :splay ]
168
169
if Puppet [ :filetimeout ] == 0
169
170
reparse_run . disable
170
171
else
Original file line number Diff line number Diff line change @@ -25,6 +25,15 @@ def ready?(time)
25
25
end
26
26
end
27
27
28
+ # Recalculates splay.
29
+ #
30
+ # @param splay_limit [Integer] the maximum time (in seconds) to delay before an agent's first run.
31
+ # @return @splay [Integer] a random integer less than or equal to the splay limit that represents the seconds to
32
+ # delay before next agent run.
33
+ def splay_limit = ( splay_limit )
34
+ @splay = calculate_splay ( splay_limit )
35
+ end
36
+
28
37
private
29
38
30
39
def calculate_splay ( limit )
Original file line number Diff line number Diff line change @@ -79,6 +79,18 @@ def run_loop(jobs)
79
79
daemon . start
80
80
expect ( scheduler . jobs [ 0 ] ) . not_to be_enabled
81
81
end
82
+
83
+ it "recalculates splay if splaylimit changes" do
84
+ # Set file timeout so the daemon reparses
85
+ Puppet [ :filetimeout ] = 1
86
+ Puppet [ :splay ] = true
87
+ allow ( agent ) . to receive ( :run )
88
+ daemon . start
89
+ first_splay = scheduler . jobs [ 1 ] . splay
90
+ allow ( Kernel ) . to receive ( :rand ) . and_return ( 1738 )
91
+ scheduler . jobs [ 0 ] . run ( Time . now )
92
+ expect ( scheduler . jobs [ 1 ] . splay ) . to_not eq ( first_splay )
93
+ end
82
94
end
83
95
84
96
describe "when stopping" do
You can’t perform that action at this time.
0 commit comments