diff --git a/changelogs/fragments/win-web-request-no_proxy.yaml b/changelogs/fragments/win-web-request-no_proxy.yaml new file mode 100644 index 00000000000..ddec454de41 --- /dev/null +++ b/changelogs/fragments/win-web-request-no_proxy.yaml @@ -0,0 +1,2 @@ +bugfixes: +- 'Ansible.ModuleUtils.WebRequest - actually set no proxy when ``use_proxy: no`` is set on a Windows module - https://github.com/ansible/ansible/issues/68528' diff --git a/lib/ansible/module_utils/powershell/Ansible.ModuleUtils.WebRequest.psm1 b/lib/ansible/module_utils/powershell/Ansible.ModuleUtils.WebRequest.psm1 index 1fff7a42ce7..49caf0787f6 100644 --- a/lib/ansible/module_utils/powershell/Ansible.ModuleUtils.WebRequest.psm1 +++ b/lib/ansible/module_utils/powershell/Ansible.ModuleUtils.WebRequest.psm1 @@ -272,10 +272,10 @@ Function Get-AnsibleWebRequest { } else { $proxy.Credentials = $null } - - $web_request.Proxy = $proxy } + $web_request.Proxy = $proxy + # Some parameters only apply when dealing with a HttpWebRequest if ($web_request -is [System.Net.HttpWebRequest]) { if ($Headers) { diff --git a/test/integration/targets/module_utils_Ansible.ModuleUtils.WebRequest/library/web_request_test.ps1 b/test/integration/targets/module_utils_Ansible.ModuleUtils.WebRequest/library/web_request_test.ps1 index a1d4db326c5..2a7325b6adc 100644 --- a/test/integration/targets/module_utils_Ansible.ModuleUtils.WebRequest/library/web_request_test.ps1 +++ b/test/integration/targets/module_utils_Ansible.ModuleUtils.WebRequest/library/web_request_test.ps1 @@ -436,6 +436,25 @@ $tests = [Ordered]@{ } | ConvertFrom-Json $actual.headers.'User-Agent' | Assert-Equals -Expected 'actual-agent' } + + 'Web request with default proxy' = { + $params = @{ + Uri = "https://$httpbin_host/get" + } + $r = Get-AnsibleWebRequest @params + + $null -ne $r.Proxy | Assert-Equals -Expected $true + } + + 'Web request with no proxy' = { + $params = @{ + Uri = "https://$httpbin_host/get" + UseProxy = $false + } + $r = Get-AnsibleWebRequest @params + + $null -eq $r.Proxy | Assert-Equals -Expected $true + } } # setup and teardown should favour native tools to create and delete the service and not the util we are testing.