You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/win_power_plan/tasks/main.yml

65 lines
2.0 KiB
YAML

# I dislike this but 2008 doesn't support the Win32_PowerPlan WMI provider
- name: get current plan details
win_shell: |
$plan_info = powercfg.exe /list
($plan_info | Select-String -Pattern '\(([\w\s]*)\) \*$').Matches.Groups[1].Value
($plan_info | Select-String -Pattern '\(([\w\s]*)\)$').Matches.Groups[1].Value
register: plan_info
- set_fact:
original_plan: '{{ plan_info.stdout_lines[0] }}'
name: '{{ plan_info.stdout_lines[1] }}'
- block:
#Test that plan detects change is needed, but doesn't actually apply change
- name: set power plan (check mode)
win_power_plan:
name: "{{ name }}"
register: set_plan_check
check_mode: yes
- name: get result of set power plan (check mode)
win_shell: (powercfg.exe /list | Select-String -Pattern '\({{ name }}\)').Line
register: set_plan_check_result
changed_when: False
# verify that the powershell check is showing the plan as still inactive on the system
- name: assert setting plan (check mode)
assert:
that:
- set_plan_check is changed
- not set_plan_check_result.stdout_lines[0].endswith('*')
#Test that setting plan and that change is applied
- name: set power plan
win_power_plan:
name: "{{ name }}"
register: set_plan
- name: get result of set power plan
win_shell: (powercfg.exe /list | Select-String -Pattern '\({{ name }}\)').Line
register: set_plan_result
changed_when: False
- name: assert setting plan
assert:
that:
- set_plan is changed
- set_plan_result.stdout_lines[0].endswith('*')
#Test that plan doesn't apply change if it is already set
- name: set power plan (idempotent)
win_power_plan:
name: "{{ name }}"
register: set_plan_idempotent
- name: assert setting plan (idempotent)
assert:
that:
- set_plan_idempotent is not changed
always:
- name: always change back plan to the original when done testing
win_power_plan:
name: '{{ original_plan }}'