mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
151 lines
5.2 KiB
YAML
151 lines
5.2 KiB
YAML
|
---
|
||
|
- name: ensure task is deleted before test
|
||
|
win_scheduled_task:
|
||
|
name: '{{test_scheduled_task_stat_name}}'
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
state: absent
|
||
|
|
||
|
# folder stat tests
|
||
|
- name: get stat of a folder that is missing
|
||
|
win_scheduled_task_stat:
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
register: stat_folder_missing
|
||
|
|
||
|
- name: assert get stat of a folder that is missing
|
||
|
assert:
|
||
|
that:
|
||
|
- stat_folder_missing.folder_exists == False
|
||
|
|
||
|
- name: get stat of existing folder
|
||
|
win_scheduled_task_stat:
|
||
|
path: \
|
||
|
register: stat_folder_present
|
||
|
|
||
|
- name: assert get stat of existing folder
|
||
|
assert:
|
||
|
that:
|
||
|
- stat_folder_present.folder_exists == True
|
||
|
- stat_folder_present.folder_task_count is defined
|
||
|
- stat_folder_present.folder_task_names is defined
|
||
|
|
||
|
- name: create scheduled task in folder
|
||
|
win_scheduled_task:
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
name: '{{test_scheduled_task_stat_name}}'
|
||
|
state: present
|
||
|
logon_type: interactive_token
|
||
|
username: Administrator
|
||
|
author: Ansible Author
|
||
|
description: Fake description
|
||
|
execution_time_limit: PT23H
|
||
|
disallow_start_if_on_batteries: false
|
||
|
restart_count: 3
|
||
|
restart_interval: PT15M
|
||
|
actions:
|
||
|
- path: cmd.exe
|
||
|
- path: C:\temp\some.exe
|
||
|
arguments: --help
|
||
|
working_directory: C:\temp
|
||
|
triggers:
|
||
|
- type: boot
|
||
|
delay: PT15M
|
||
|
- type: monthly
|
||
|
days_of_month: 5,15,30
|
||
|
months_of_year: june,december
|
||
|
run_on_last_day_of_month: true
|
||
|
start_boundary: '2017-09-20T03:44:38'
|
||
|
|
||
|
- name: get stat of existing folder with task
|
||
|
win_scheduled_task_stat:
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
register: stat_folder_with_task
|
||
|
|
||
|
- name: assert get stat of existing folder with task
|
||
|
assert:
|
||
|
that:
|
||
|
- stat_folder_with_task.folder_exists == True
|
||
|
- stat_folder_with_task.folder_task_count == 1
|
||
|
- stat_folder_with_task.folder_task_names[0] == "Test Task"
|
||
|
- stat_folder_with_task.task_exists is not defined
|
||
|
|
||
|
# task stat tests
|
||
|
- name: get stat of missing task
|
||
|
win_scheduled_task_stat:
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
name: fake task
|
||
|
register: stat_task_missing
|
||
|
|
||
|
- name: assert get stat of missing task
|
||
|
assert:
|
||
|
that:
|
||
|
- stat_task_missing.task_exists == False
|
||
|
|
||
|
- name: get stat of existing task
|
||
|
win_scheduled_task_stat:
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
name: '{{test_scheduled_task_stat_name}}'
|
||
|
register: stat_task_present
|
||
|
|
||
|
- name: assert get stat of existing task
|
||
|
assert:
|
||
|
that:
|
||
|
- stat_task_present.task_exists == True
|
||
|
- stat_task_present.actions|count == 2
|
||
|
- stat_task_present.actions[0].path == "cmd.exe"
|
||
|
- stat_task_present.actions[0].type == "TASK_ACTION_EXEC"
|
||
|
- stat_task_present.actions[0].working_directory == None
|
||
|
- stat_task_present.actions[1].arguments == "--help"
|
||
|
- stat_task_present.actions[1].path == "C:\\temp\some.exe"
|
||
|
- stat_task_present.actions[1].type == "TASK_ACTION_EXEC"
|
||
|
- stat_task_present.actions[1].working_directory == "C:\\temp"
|
||
|
- stat_task_present.principal.display_name == None
|
||
|
- stat_task_present.principal.group_id == None
|
||
|
- stat_task_present.principal.logon_type == "TASK_LOGON_INTERACTIVE_TOKEN"
|
||
|
- stat_task_present.principal.run_level == "TASK_RUNLEVEL_LUA"
|
||
|
- stat_task_present.principal.user_id.endswith("Administrator")
|
||
|
- stat_task_present.registration_info.author == "Ansible Author"
|
||
|
- stat_task_present.registration_info.date is defined
|
||
|
- stat_task_present.registration_info.description == "Fake description"
|
||
|
- stat_task_present.settings.disallow_start_if_on_batteries == False
|
||
|
- stat_task_present.settings.execution_time_limit == "PT23H"
|
||
|
- stat_task_present.settings.restart_count == 3
|
||
|
- stat_task_present.settings.restart_interval == "PT15M"
|
||
|
- stat_task_present.state.status == "TASK_STATE_READY"
|
||
|
- stat_task_present.triggers|count == 2
|
||
|
- stat_task_present.triggers[0].delay == "PT15M"
|
||
|
- stat_task_present.triggers[0].type == "TASK_TRIGGER_BOOT"
|
||
|
- stat_task_present.triggers[1].days_of_month == "5,15,30"
|
||
|
- stat_task_present.triggers[1].months_of_year == "june,december"
|
||
|
- stat_task_present.triggers[1].run_on_last_day_of_month == True
|
||
|
- stat_task_present.triggers[1].start_boundary == "2017-09-20T03:44:38"
|
||
|
- stat_task_present.triggers[1].type == "TASK_TRIGGER_MONTHLY"
|
||
|
|
||
|
- name: change principal to system account so it will run in the next step
|
||
|
win_scheduled_task:
|
||
|
name: '{{test_scheduled_task_stat_name}}'
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
username: SYSTEM
|
||
|
|
||
|
- name: start the scheduled task
|
||
|
win_command: schtasks.exe /Run /TN "{{test_scheduled_task_stat_path}}\{{test_scheduled_task_stat_name}}"
|
||
|
|
||
|
- name: get stat of running task
|
||
|
win_scheduled_task_stat:
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
name: '{{test_scheduled_task_stat_name}}'
|
||
|
register: stat_task_running
|
||
|
|
||
|
- name: assert stat of running task
|
||
|
assert:
|
||
|
that:
|
||
|
- stat_task_running.state.status == "TASK_STATE_RUNNING"
|
||
|
|
||
|
- name: stop the scheduled task
|
||
|
win_command: schtasks.exe /End /TN "{{test_scheduled_task_stat_path}}\{{test_scheduled_task_stat_name}}"
|
||
|
|
||
|
- name: ensure task is delete after test
|
||
|
win_scheduled_task:
|
||
|
name: '{{test_scheduled_task_stat_name}}'
|
||
|
path: '{{test_scheduled_task_stat_path}}'
|
||
|
state: absent
|