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_reg_stat/tasks/main.yml

323 lines
6.9 KiB
YAML

---
- name: test
win_file:
path: "{{win_output_dir}}"
state: absent
- name: make sure win output dir exists
win_file:
path: "{{win_output_dir}}"
state: directory
- name: template out test registry structure
win_copy:
src: test_reg.reg
dest: "{{win_output_dir}}\\raw_test_reg.reg"
- name: convert the line endings to the windows variant
win_shell: Get-Content "{{win_output_dir}}\raw_test_reg.reg" | Set-Content "{{win_output_dir}}\test_reg.reg"
- name: import test registry structure
win_regmerge:
path: "{{win_output_dir}}\\test_reg.reg"
- name: get value of expand string %windir%
win_command: powershell.exe $env:windir
register: win_dir_value
- name: expect failure when not passing in path option
win_reg_stat:
name: a
register: actual
failed_when: "actual.msg != 'Get-AnsibleParam: Missing required argument: path'"
- name: expect failure when passing in an invalid hive
win_reg_stat:
path: ABCD:\test
register: actual
failed_when: actual.msg != "the hive in path is 'ABCD'; must be 'HKCR', 'HKCC', 'HKCU', 'HKLM' or 'HKU'"
- name: get known nested reg key structure for testing with short hive form
win_reg_stat:
path: HKCU:\Test\nested
register: actual_short
- name: get known nested reg key structure for testing with quoted yaml
win_reg_stat:
path: "HKCU:\\Test\\nested"
register: actual_quoted
- name: set expected value for reg structure
set_fact:
expected:
changed: false
exists: true
failed: false
properties:
binary: { raw_value: ["0x01", "0x16"], type: 'REG_BINARY', value: [1, 22] }
dword: { raw_value: 1, type: 'REG_DWORD', value: 1 }
expand: { raw_value: '%windir%\dir', type: 'REG_EXPAND_SZ', value: "{{win_dir_value.stdout_lines[0]}}\\dir" }
multi: { raw_value: ['a, b', 'c'], type: 'REG_MULTI_SZ', value: ['a, b', 'c'] }
qword: { raw_value: 1, type: 'REG_QWORD', value: 1 }
string: { raw_value: 'test', type: 'REG_SZ', value: 'test' }
sub_keys:
- nest1
- nest2
- name: validate test
assert:
that:
- "actual_short == expected"
- "actual_quoted == expected"
- name: get known reg key with no sub keys but some properties
win_reg_stat:
path: HKCU:\Test\single
register: actual
- name: set expected value for reg key with no sub keys but some properties
set_fact:
expected:
changed: false
exists: true
failed: false
properties:
none: { raw_value: [], type: 'REG_NONE', value: [] }
none1: { raw_value: ["0x00"], type: 'REG_NONE', value: [0] }
string1: { raw_value: '', type: 'REG_SZ', value: '' }
string2: { raw_value: 'abc123', type: 'REG_SZ', value: 'abc123' }
sub_keys: []
- name: validate test
assert:
that:
- "actual == expected"
- name: get known reg key without sub keys and properties
win_reg_stat:
path: HKCU:\Test\nested\nest2
register: actual
- name: set expected value for reg key without sub keys or properties
set_fact:
expected:
changed: false
exists: true
failed: false
properties: {}
sub_keys: []
register: expected
- name: validate test
assert:
that:
- "actual == expected"
- name: get non-existent reg key
win_reg_stat:
path: HKCU:\Test\Thispathwillneverexist
register: actual
- name: set expected value for non-existent reg key
set_fact:
expected:
changed: false
exists: false
failed: false
- name: validate test
assert:
that:
- "actual == expected"
- name: get string property
win_reg_stat:
path: HKCU:\Test\nested
name: string
register: actual
- name: set expected string property
set_fact:
expected:
changed: false
exists: true
failed: false
raw_value: 'test'
type: 'REG_SZ'
value: 'test'
- name: validate test
assert:
that:
- "actual == expected"
- name: get expand string property
win_reg_stat:
path: HKCU:\Test\nested
name: expand
register: actual
- name: set expected expand string property
set_fact:
expected:
changed: false
exists: true
failed: false
raw_value: '%windir%\dir'
type: 'REG_EXPAND_SZ'
value: "{{win_dir_value.stdout_lines[0]}}\\dir"
- name: validate test
assert:
that:
- "actual == expected"
- name: get multi string property
win_reg_stat:
path: HKCU:\Test\nested
name: multi
register: actual
- name: set expected multi string property
set_fact:
expected:
changed: false
exists: true
failed: false
raw_value: ['a, b', 'c']
type: 'REG_MULTI_SZ'
value: ['a, b', 'c']
- name: validate test
assert:
that:
- "actual == expected"
- name: get binary property
win_reg_stat:
path: HKCU:\Test\nested
name: binary
register: actual
- name: set expected binary property
set_fact:
expected:
changed: false
exists: true
failed: false
raw_value: ["0x01", "0x16"]
type: 'REG_BINARY'
value: [1, 22]
- name: validate test
assert:
that:
- "actual == expected"
- name: get dword property
win_reg_stat:
path: HKCU:\Test\nested
name: dword
register: actual
- name: set expected dword property
set_fact:
expected:
changed: false
exists: true
failed: false
raw_value: 1
type: 'REG_DWORD'
value: 1
- name: validate test
assert:
that:
- "actual == expected"
- name: get qword property
win_reg_stat:
path: HKCU:\Test\nested
name: qword
register: actual
- name: set expected qword property
set_fact:
expected:
changed: false
exists: true
failed: false
raw_value: 1
type: 'REG_QWORD'
value: 1
- name: validate test
assert:
that:
- "actual == expected"
- name: get none property
win_reg_stat:
path: HKCU:\Test\single
name: none
register: actual
- name: set expected none property
set_fact:
expected:
changed: false
exists: true
failed: false
raw_value: []
type: 'REG_NONE'
value: []
- name: validate test
assert:
that:
- "actual == expected"
- name: get none with value property
win_reg_stat:
path: HKCU:\Test\single
name: none1
register: actual
- name: set expected none with value property
set_fact:
expected:
changed: false
exists: true
failed: false
raw_value: ["0x00"]
type: 'REG_NONE'
value: [0]
- name: validate test
assert:
that:
- "actual == expected"
- name: get non-existence property
win_reg_stat:
path: HKCU:\Test\single
name: doesnotexist
register: actual
- name: set expected non-existence property
set_fact:
expected:
changed: false
exists: false
failed: false
- name: validate test
assert:
that:
- "actual == expected"
- name: remove registry entry
win_regedit:
path: HKCU:\Test
state: absent