mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 05:40:23 -07:00
Implemented Trigger Repetition (#32938)
* Implemented Trigger Repetition * Refactorings and integration tests for Trigger Repetition * Suggestions of first review * Changes of second review
This commit is contained in:
parent
bd989b3088
commit
57ff84251e
4 changed files with 360 additions and 41 deletions
|
@ -121,3 +121,37 @@
|
|||
months_of_year: fakemonth
|
||||
register: fail_trigger_invalid_month_of_year
|
||||
failed_when: fail_trigger_invalid_month_of_year.msg != "invalid month name 'fakemonth', please specify full month name"
|
||||
|
||||
- name: fail trigger repetition with duration in incorrect format
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
triggers:
|
||||
- type: boot
|
||||
repetition:
|
||||
- duration: fake
|
||||
register: fail_trigger_repetition_invalid_duration
|
||||
failed_when: fail_trigger_repetition_invalid_duration.msg != "trigger option 'duration' must be in the XML duration format but was 'fake'"
|
||||
|
||||
- name: fail trigger repetition with interval in incorrect format
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
triggers:
|
||||
- type: boot
|
||||
repetition:
|
||||
- interval: fake
|
||||
register: fail_trigger_repetition_invalid_interval
|
||||
failed_when: fail_trigger_repetition_invalid_interval.msg != "trigger option 'interval' must be in the XML duration format but was 'fake'"
|
||||
|
||||
- name: fail trigger repetition option interval greater than duration
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
triggers:
|
||||
- type: boot
|
||||
repetition:
|
||||
- interval: PT5M
|
||||
duration: PT1M
|
||||
register: fail_trigger_repetition_interval_greater_than_duration
|
||||
failed_when: fail_trigger_repetition_interval_greater_than_duration.msg != "trigger repetition option 'interval' value 'PT5M' must be less than or equal to 'duration' value 'PT1M'"
|
||||
|
|
|
@ -288,6 +288,184 @@
|
|||
that:
|
||||
- trigger_monthlydow_again is not changed
|
||||
|
||||
- name: create trigger repetition (check mode)
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
actions:
|
||||
- path: cmd.exe
|
||||
triggers:
|
||||
- type: registration
|
||||
repetition:
|
||||
- interval: PT1M
|
||||
duration: PT5M
|
||||
stop_at_duration_end: yes
|
||||
register: create_trigger_repetition_check
|
||||
check_mode: yes
|
||||
|
||||
- name: get result of create trigger repetition (check mode)
|
||||
win_scheduled_task_stat:
|
||||
path: \
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
register: create_trigger_repetition_result_check
|
||||
|
||||
- name: assert results of create trigger repetition (check mode)
|
||||
assert:
|
||||
that:
|
||||
- create_trigger_repetition_check is changed
|
||||
- create_trigger_repetition_result_check.task_exists == True
|
||||
- create_trigger_repetition_result_check.triggers|count == 1
|
||||
- create_trigger_repetition_result_check.triggers[0].type == "TASK_TRIGGER_MONTHLYDOW"
|
||||
- create_trigger_repetition_result_check.triggers[0].enabled == True
|
||||
- create_trigger_repetition_result_check.triggers[0].start_boundary == "2000-01-01T00:00:01"
|
||||
- create_trigger_repetition_result_check.triggers[0].end_boundary == None
|
||||
- create_trigger_repetition_result_check.triggers[0].weeks_of_month == "1,2"
|
||||
- create_trigger_repetition_result_check.triggers[0].days_of_week == "monday,wednesday"
|
||||
- create_trigger_repetition_result_check.triggers[0].repetition.interval == None
|
||||
- create_trigger_repetition_result_check.triggers[0].repetition.duration == None
|
||||
- create_trigger_repetition_result_check.triggers[0].repetition.stop_at_duration_end == False
|
||||
|
||||
- name: create trigger repetition
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
actions:
|
||||
- path: cmd.exe
|
||||
triggers:
|
||||
- type: registration
|
||||
repetition:
|
||||
- interval: PT1M
|
||||
duration: PT5M
|
||||
stop_at_duration_end: yes
|
||||
register: create_trigger_repetition
|
||||
|
||||
- name: get result of create trigger repetition
|
||||
win_scheduled_task_stat:
|
||||
path: \
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
register: create_trigger_repetition_result
|
||||
|
||||
- name: assert results of create trigger repetition
|
||||
assert:
|
||||
that:
|
||||
- create_trigger_repetition is changed
|
||||
- create_trigger_repetition_result.task_exists == True
|
||||
- create_trigger_repetition_result.triggers|count == 1
|
||||
- create_trigger_repetition_result.triggers[0].type == "TASK_TRIGGER_REGISTRATION"
|
||||
- create_trigger_repetition_result.triggers[0].enabled == True
|
||||
- create_trigger_repetition_result.triggers[0].start_boundary == None
|
||||
- create_trigger_repetition_result.triggers[0].end_boundary == None
|
||||
- create_trigger_repetition_result.triggers[0].repetition.interval == "PT1M"
|
||||
- create_trigger_repetition_result.triggers[0].repetition.duration == "PT5M"
|
||||
- create_trigger_repetition_result.triggers[0].repetition.stop_at_duration_end == True
|
||||
|
||||
- name: create trigger repetition (idempotent)
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
actions:
|
||||
- path: cmd.exe
|
||||
triggers:
|
||||
- type: registration
|
||||
repetition:
|
||||
- interval: PT1M
|
||||
duration: PT5M
|
||||
stop_at_duration_end: yes
|
||||
register: create_trigger_repetition_again
|
||||
|
||||
- name: assert results of create trigger repetition (idempotent)
|
||||
assert:
|
||||
that:
|
||||
- create_trigger_repetition_again is not changed
|
||||
|
||||
- name: change trigger repetition (check mode)
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
actions:
|
||||
- path: cmd.exe
|
||||
triggers:
|
||||
- type: registration
|
||||
repetition:
|
||||
- interval: PT10M
|
||||
duration: PT20M
|
||||
stop_at_duration_end: no
|
||||
register: change_trigger_repetition_check
|
||||
check_mode: yes
|
||||
|
||||
- name: get result of change trigger repetition (check mode)
|
||||
win_scheduled_task_stat:
|
||||
path: \
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
register: change_trigger_repetition_result_check
|
||||
|
||||
- name: assert results of change trigger repetition (check mode)
|
||||
assert:
|
||||
that:
|
||||
- change_trigger_repetition_check is changed
|
||||
- change_trigger_repetition_result_check.task_exists == True
|
||||
- change_trigger_repetition_result_check.triggers|count == 1
|
||||
- change_trigger_repetition_result_check.triggers[0].type == "TASK_TRIGGER_REGISTRATION"
|
||||
- change_trigger_repetition_result_check.triggers[0].enabled == True
|
||||
- change_trigger_repetition_result_check.triggers[0].start_boundary == None
|
||||
- change_trigger_repetition_result_check.triggers[0].end_boundary == None
|
||||
- change_trigger_repetition_result_check.triggers[0].repetition.interval == "PT1M"
|
||||
- change_trigger_repetition_result_check.triggers[0].repetition.duration == "PT5M"
|
||||
- change_trigger_repetition_result_check.triggers[0].repetition.stop_at_duration_end == True
|
||||
|
||||
- name: change trigger repetition
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
actions:
|
||||
- path: cmd.exe
|
||||
triggers:
|
||||
- type: registration
|
||||
repetition:
|
||||
- interval: PT10M
|
||||
duration: PT20M
|
||||
stop_at_duration_end: no
|
||||
register: change_trigger_repetition
|
||||
|
||||
- name: get result of change trigger repetition
|
||||
win_scheduled_task_stat:
|
||||
path: \
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
register: change_trigger_repetition_result
|
||||
|
||||
- name: assert results of change trigger repetition
|
||||
assert:
|
||||
that:
|
||||
- change_trigger_repetition is changed
|
||||
- change_trigger_repetition_result.task_exists == True
|
||||
- change_trigger_repetition_result.triggers|count == 1
|
||||
- change_trigger_repetition_result.triggers[0].type == "TASK_TRIGGER_REGISTRATION"
|
||||
- change_trigger_repetition_result.triggers[0].enabled == True
|
||||
- change_trigger_repetition_result.triggers[0].start_boundary == None
|
||||
- change_trigger_repetition_result.triggers[0].end_boundary == None
|
||||
- change_trigger_repetition_result.triggers[0].repetition.interval == "PT10M"
|
||||
- change_trigger_repetition_result.triggers[0].repetition.duration == "PT20M"
|
||||
- change_trigger_repetition_result.triggers[0].repetition.stop_at_duration_end == False
|
||||
|
||||
- name: change trigger repetition (idempotent)
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
state: present
|
||||
actions:
|
||||
- path: cmd.exe
|
||||
triggers:
|
||||
- type: registration
|
||||
repetition:
|
||||
- interval: PT10M
|
||||
duration: PT20M
|
||||
stop_at_duration_end: no
|
||||
register: change_trigger_repetition_again
|
||||
|
||||
- name: assert results of change trigger repetition (idempotent)
|
||||
assert:
|
||||
that:
|
||||
- change_trigger_repetition_again is not changed
|
||||
|
||||
- name: create task with multiple triggers (check mode)
|
||||
win_scheduled_task:
|
||||
name: '{{test_scheduled_task_name}}'
|
||||
|
@ -321,12 +499,13 @@
|
|||
- create_multiple_triggers_check is changed
|
||||
- create_multiple_triggers_result_check.task_exists == True
|
||||
- create_multiple_triggers_result_check.triggers|count == 1
|
||||
- create_multiple_triggers_result_check.triggers[0].type == "TASK_TRIGGER_MONTHLYDOW"
|
||||
- create_multiple_triggers_result_check.triggers[0].type == "TASK_TRIGGER_REGISTRATION"
|
||||
- create_multiple_triggers_result_check.triggers[0].enabled == True
|
||||
- create_multiple_triggers_result_check.triggers[0].start_boundary == "2000-01-01T00:00:01"
|
||||
- create_multiple_triggers_result_check.triggers[0].start_boundary == None
|
||||
- create_multiple_triggers_result_check.triggers[0].end_boundary == None
|
||||
- create_multiple_triggers_result_check.triggers[0].weeks_of_month == "1,2"
|
||||
- create_multiple_triggers_result_check.triggers[0].days_of_week == "monday,wednesday"
|
||||
- create_multiple_triggers_result_check.triggers[0].repetition.interval == "PT10M"
|
||||
- create_multiple_triggers_result_check.triggers[0].repetition.duration == "PT20M"
|
||||
- create_multiple_triggers_result_check.triggers[0].repetition.stop_at_duration_end == False
|
||||
|
||||
- name: create task with multiple triggers
|
||||
win_scheduled_task:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue