blob: dabbf40729ef676bf4801bb083736166de164d8a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
---
# these are extra tests for psrp that aren't covered under test/integration/targets/connection/*
- name: test out psrp specific tests
hosts: windows
serial: 1
gather_facts: no
tasks:
- name: test complex objects in raw output
# until PyYAML is upgraded to 4.x we need to use the \U escape for a unicode codepoint
# and enclose in a quote to it translates the \U
raw: "
[PSCustomObject]@{string = 'string'};
[PSCustomObject]@{unicode = 'poo - \U0001F4A9'};
[PSCustomObject]@{integer = 1};
[PSCustomObject]@{list = @(1, 2)};
Get-Service -Name winrm;
Write-Output -InputObject 'string - \U0001F4A9';"
register: raw_out
- name: assert complex objects in raw output
assert:
that:
- raw_out.stdout_lines|count == 6
- "raw_out.stdout_lines[0] == 'string: string'"
- "raw_out.stdout_lines[1] == 'unicode: poo - \U0001F4A9'"
- "raw_out.stdout_lines[2] == 'integer: 1'"
- "raw_out.stdout_lines[3] == \"list: [1, 2]\""
- raw_out.stdout_lines[4] == "winrm"
- raw_out.stdout_lines[5] == "string - \U0001F4A9"
# Become only works on Server 2008 when running with basic auth, skip this host for now as it is too complicated to
# override the auth protocol in the tests.
- name: check if we running on Server 2008
win_shell: '[System.Environment]::OSVersion.Version -ge [Version]"6.1"'
register: os_version
- name: test out become with psrp
win_whoami:
when: os_version|bool
register: whoami_out
become: yes
become_method: runas
become_user: SYSTEM
- name: assert test out become with psrp
assert:
that:
- whoami_out.account.sid == "S-1-5-18"
when: os_version|bool
- name: test out async with psrp
win_shell: Start-Sleep -Seconds 2; Write-Output abc
async: 10
poll: 1
register: async_out
- name: assert est out async with psrp
assert:
that:
- async_out.stdout_lines == ["abc"]
- name: Output unicode characters from Powershell using PSRP
win_command: "powershell.exe -ExecutionPolicy ByPass -Command \"Write-Host '\U0001F4A9'\""
register: command_unicode_output
- name: Assert unicode output
assert:
that:
- command_unicode_output is changed
- command_unicode_output.rc == 0
- "command_unicode_output.stdout == '\U0001F4A9\n'"
- command_unicode_output.stderr == ''
- name: Output unicode characters from Powershell using PSRP
win_shell: "Write-Host '\U0001F4A9'"
register: shell_unicode_output
- name: Assert unicode output
assert:
that:
- shell_unicode_output is changed
- shell_unicode_output.rc == 0
- "shell_unicode_output.stdout == '\U0001F4A9\n'"
- shell_unicode_output.stderr == ''
- name: copy empty file
win_copy:
src: empty.txt
dest: C:\Windows\TEMP\empty.txt
register: copy_empty
- name: get result of copy empty file
win_stat:
path: C:\Windows\TEMP\empty.txt
get_checksum: yes
register: copy_empty_actual
- name: assert copy empty file
assert:
that:
- copy_empty.checksum == 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
- copy_empty_actual.stat.checksum == 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
- copy_empty_actual.stat.size == 0
- block:
- name: fetch empty file
fetch:
src: C:\Windows\TEMP\empty.txt
dest: /tmp/empty.txt
flat: yes
register: fetch_empty
- name: get result of fetch empty file
stat:
path: /tmp/empty.txt
get_checksum: yes
register: fetch_empty_actual
delegate_to: localhost
- name: assert fetch empty file
assert:
that:
- fetch_empty.checksum == 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
- fetch_empty_actual.stat.checksum == 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
- fetch_empty_actual.stat.size == 0
always:
- name: remove tmp file
file:
path: /tmp/empty.txt
state: absent
delegate_to: localhost
|