win_environment: Added explicit check for null, empty string with state=present (#40468) (#40508)

* win_environment: Added explicit check for null, empty string with state=present

* Added changelog fragment

(cherry picked from commit db195831fd)
pull/40516/head
Jordan Borean 7 years ago committed by GitHub
parent d60f70b47b
commit 6eb0af96de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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…
Cancel
Save