mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fixed win_file crash with hidden files (#52584)
* Fixed crash with hidden files added "-force" parameter on "Get-Item" cmdlet. this is needed to get file info if the file is "hidden" without this option modules like win_file, win_template, win_copy crashes on hidden files. this is because with "test-path" it sees that the file exists, but "get-item" can't get the file info. for more information on "-force option": https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-item * Add changelog and integration tests * fix tests for older Windows versions
This commit is contained in:
parent
cfe4477c10
commit
3bc474bf99
3 changed files with 24 additions and 1 deletions
2
changelogs/fragments/win_file-hidden.yaml
Normal file
2
changelogs/fragments/win_file-hidden.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- win_file - Fix issue when managing hidden files and directories - https://github.com/ansible/ansible/issues/42466
|
|
@ -102,7 +102,7 @@ if ($state -eq "touch") {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Test-Path -LiteralPath $path) {
|
if (Test-Path -LiteralPath $path) {
|
||||||
$fileinfo = Get-Item -LiteralPath $path
|
$fileinfo = Get-Item -LiteralPath $path -Force
|
||||||
if ($state -eq "absent") {
|
if ($state -eq "absent") {
|
||||||
Remove-File -file $fileinfo -checkmode $check_mode
|
Remove-File -file $fileinfo -checkmode $check_mode
|
||||||
$result.changed = $true
|
$result.changed = $true
|
||||||
|
|
|
@ -568,6 +568,27 @@
|
||||||
- file_result.changed
|
- file_result.changed
|
||||||
- "stat_result.stat.exists == False"
|
- "stat_result.stat.exists == False"
|
||||||
|
|
||||||
|
# Need to use shell to create the file as win_file doesn't support setting attributes
|
||||||
|
- name: create hidden file
|
||||||
|
win_shell: $file = New-Item -Path "{{ win_output_dir }}\hidden.txt" -ItemType File; $file.Attributes = "Hidden"
|
||||||
|
|
||||||
|
- name: delete hidden file
|
||||||
|
win_file:
|
||||||
|
path: '{{ win_output_dir }}\hidden.txt'
|
||||||
|
state: absent
|
||||||
|
register: delete_hidden
|
||||||
|
|
||||||
|
- name: get result of delete hidden file
|
||||||
|
win_stat:
|
||||||
|
path: '{{ win_output_dir }}\hidden.txt'
|
||||||
|
register: delete_hidden_actual
|
||||||
|
|
||||||
|
- name: assert delete hidden file
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- delete_hidden is changed
|
||||||
|
- not delete_hidden_actual.stat.exists
|
||||||
|
|
||||||
- name: create folder to point set symbolic link for
|
- name: create folder to point set symbolic link for
|
||||||
win_file:
|
win_file:
|
||||||
path: "{{win_output_dir}}/link-test/link-target"
|
path: "{{win_output_dir}}/link-test/link-target"
|
||||||
|
|
Loading…
Reference in a new issue