allows loop pause for subseconds (#50461)
* allows loop pause for subseconds * skip test on os x and bsd since date commands lacks nano fixes #49951
This commit is contained in:
parent
d4dbc7f2e0
commit
30da7a363c
3 changed files with 22 additions and 1 deletions
2
changelogs/fragments/pause_subsecs.yml
Normal file
2
changelogs/fragments/pause_subsecs.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- loop_control's pause now allows for fractions of a second
|
|
@ -28,7 +28,7 @@ class LoopControl(FieldAttributeBase):
|
|||
_loop_var = FieldAttribute(isa='str', default='item')
|
||||
_index_var = FieldAttribute(isa='str')
|
||||
_label = FieldAttribute(isa='str')
|
||||
_pause = FieldAttribute(isa='int', default=0)
|
||||
_pause = FieldAttribute(isa='float', default=0)
|
||||
_extended = FieldAttribute(isa='bool')
|
||||
|
||||
def __init__(self):
|
||||
|
|
|
@ -23,6 +23,25 @@
|
|||
that:
|
||||
- '(after.stdout |int) - (before.stdout|int) >= 4'
|
||||
|
||||
- name: test subsecond pause
|
||||
block:
|
||||
- name: Measure time before loop with .5s pause
|
||||
set_fact:
|
||||
times: "{{times|default([]) + [ lookup('pipe','date +%s.%3N') ]}}"
|
||||
with_sequence: count=3
|
||||
loop_control:
|
||||
pause: 0.6
|
||||
|
||||
- name: ensure lag, since there is 3 rounds, and 0.5 seconds between, it should last 1.2 seconds, but allowing leeway due to CI lag
|
||||
assert:
|
||||
that:
|
||||
- tdiff|float >= 1.2
|
||||
- tdiff|int < 3
|
||||
vars:
|
||||
tdiff: '{{ times[2]|float - times[0]|float }}'
|
||||
when:
|
||||
- ansible_facts['distribution'] not in ("MacOSX", "FreeBSD")
|
||||
|
||||
#
|
||||
# Tests of loop syntax with args
|
||||
#
|
||||
|
|
Loading…
Reference in a new issue