win_service: quoted path fix (#32469)
* win_service: fix for path in quotes
* Added tests to verify behaviour doesn't regress
(cherry picked from commit 5b1db00b65
)
This commit is contained in:
parent
82c2da31be
commit
e771b64f1b
3 changed files with 41 additions and 1 deletions
|
@ -32,7 +32,7 @@ $display_name = Get-AnsibleParam -obj $params -name 'display_name' -type 'str'
|
|||
$force_dependent_services = Get-AnsibleParam -obj $params -name 'force_dependent_services' -type 'bool' -default $false
|
||||
$name = Get-AnsibleParam -obj $params -name 'name' -type 'str' -failifempty $true
|
||||
$password = Get-AnsibleParam -obj $params -name 'password' -type 'str'
|
||||
$path = Get-AnsibleParam -obj $params -name 'path' -type 'path'
|
||||
$path = Get-AnsibleParam -obj $params -name 'path'
|
||||
$start_mode = Get-AnsibleParam -obj $params -name 'start_mode' -type 'str' -validateset 'auto','manual','disabled','delayed'
|
||||
$state = Get-AnsibleParam -obj $params -name 'state' -type 'str' -validateset 'started','stopped','restarted','absent','paused'
|
||||
$username = Get-AnsibleParam -obj $params -name 'username' -type 'str'
|
||||
|
@ -51,6 +51,9 @@ if ($password -ne $null -and $username -eq $null) {
|
|||
if ($desktop_interact -eq $true -and (-not ($username -eq "LocalSystem" -or $username -eq $null))) {
|
||||
Fail-Json $result "Can only set 'desktop_interact' to true when 'username' equals 'LocalSystem'"
|
||||
}
|
||||
if ($path -ne $null) {
|
||||
$path = [System.Environment]::ExpandEnvironmentVariables($path)
|
||||
}
|
||||
|
||||
Function Get-ServiceInfo($name) {
|
||||
# Need to get new objects so we have the latest info
|
||||
|
|
|
@ -51,3 +51,9 @@
|
|||
- '{{test_win_service_name}}'
|
||||
- TestServiceParent2
|
||||
- TestServiceDependency
|
||||
|
||||
- name: remove test environment variable
|
||||
win_environment:
|
||||
name: TEST_SERVICE_PATH
|
||||
level: machine
|
||||
state: absent
|
||||
|
|
|
@ -610,6 +610,37 @@
|
|||
- not win_service_path_again|changed
|
||||
- win_service_path_again.path == 'C:\\temp\\test.exe'
|
||||
|
||||
- name: create test environment variable
|
||||
win_environment:
|
||||
name: TEST_SERVICE_PATH
|
||||
value: C:\temp
|
||||
level: machine
|
||||
state: present
|
||||
|
||||
- name: set service path with quotes and env var
|
||||
win_service:
|
||||
name: "{{test_win_service_name}}"
|
||||
path: '"%TEST_SERVICE_PATH%\test.exe"'
|
||||
register: win_service_env_quote_path
|
||||
|
||||
- name: check that the quoted service path has been changed
|
||||
assert:
|
||||
that:
|
||||
- win_service_env_quote_path|changed
|
||||
- win_service_env_quote_path.path == '"C:\\temp\\test.exe"'
|
||||
|
||||
- name: set service path with quotes and env var again
|
||||
win_service:
|
||||
name: "{{test_win_service_name}}"
|
||||
path: '"%TEST_SERVICE_PATH%\test.exe"'
|
||||
register: win_service_env_quote_path_again
|
||||
|
||||
- name: check that the quoted service path has been changed again
|
||||
assert:
|
||||
that:
|
||||
- not win_service_env_quote_path_again|changed
|
||||
- win_service_env_quote_path_again.path == '"C:\\temp\\test.exe"'
|
||||
|
||||
- name: revert original service path back to normal
|
||||
win_service:
|
||||
name: "{{test_win_service_name}}"
|
||||
|
|
Loading…
Reference in a new issue