win_environment: Added explicit check for null, empty string with state=present (#40468)
* win_environment: Added explicit check for null, empty string with state=present * Added changelog fragmentpull/4420/head
parent
5634dae290
commit
db195831fd
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- win_environment - Fix for issue where the environment value was deleted when a null value or empty string was set - https://github.com/ansible/ansible/issues/40450
|
|
@ -28,6 +28,8 @@ $result = @{
|
||||||
if ($state -eq "absent" -and $value) {
|
if ($state -eq "absent" -and $value) {
|
||||||
Add-Warning -obj $result -message "When removing environment variable '$name' it should not have a value '$value' set"
|
Add-Warning -obj $result -message "When removing environment variable '$name' it should not have a value '$value' set"
|
||||||
$value = $null
|
$value = $null
|
||||||
|
} elseif ($state -eq "present" -and (-not $value)) {
|
||||||
|
Fail-Json -obj $result -message "When state=present, value must be defined and not an empty string, if you wish to remove the envvar, set state=absent"
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($state -eq "present" -and $before_value -ne $value) {
|
if ($state -eq "present" -and $before_value -ne $value) {
|
||||||
|
|
|
@ -30,6 +30,7 @@ options:
|
||||||
value:
|
value:
|
||||||
description:
|
description:
|
||||||
- The value to store in the environment variable.
|
- The value to store in the environment variable.
|
||||||
|
- Must be set when C(state=present) and cannot be an empty string.
|
||||||
- Can be omitted for C(state=absent).
|
- Can be omitted for C(state=absent).
|
||||||
level:
|
level:
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -9,6 +9,23 @@
|
||||||
- process
|
- process
|
||||||
- user
|
- user
|
||||||
|
|
||||||
|
- name: fail to create environment value with null value
|
||||||
|
win_environment:
|
||||||
|
name: "{{test_environment_name}}"
|
||||||
|
state: present
|
||||||
|
level: machine
|
||||||
|
register: create_fail_null
|
||||||
|
failed_when: create_fail_null.msg != "When state=present, value must be defined and not an empty string, if you wish to remove the envvar, set state=absent"
|
||||||
|
|
||||||
|
- name: fail to create environment value with empty value
|
||||||
|
win_environment:
|
||||||
|
name: "{{test_environment_name}}"
|
||||||
|
value: ''
|
||||||
|
state: present
|
||||||
|
level: machine
|
||||||
|
register: create_fail_empty_string
|
||||||
|
failed_when: create_fail_null.msg != "When state=present, value must be defined and not an empty string, if you wish to remove the envvar, set state=absent"
|
||||||
|
|
||||||
- name: create test environment value for machine check
|
- name: create test environment value for machine check
|
||||||
win_environment:
|
win_environment:
|
||||||
name: "{{test_environment_name}}"
|
name: "{{test_environment_name}}"
|
||||||
|
|
Loading…
Reference in New Issue