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 fragment
This commit is contained in:
Jordan Borean 2018-05-22 06:45:33 +10:00 committed by GitHub
parent 5634dae290
commit db195831fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 0 deletions

View file

@ -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

View file

@ -28,6 +28,8 @@ $result = @{
if ($state -eq "absent" -and $value) {
Add-Warning -obj $result -message "When removing environment variable '$name' it should not have a value '$value' set"
$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) {

View file

@ -30,6 +30,7 @@ options:
value:
description:
- 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).
level:
description:

View file

@ -9,6 +9,23 @@
- process
- 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
win_environment:
name: "{{test_environment_name}}"