#!powershell # This file is part of Ansible # # Ansible is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Ansible is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . # WANT_JSON # POWERSHELL_COMMON $parsed_args = Parse-Args $args $sleep_delay_sec = Get-AnsibleParam $parsed_args "sleep_delay_sec" -default 0 $fail_mode = Get-AnsibleParam $parsed_args "fail_mode" -default "success" -validateset "success","graceful","exception" If($fail_mode -isnot [array]) { $fail_mode = @($fail_mode) } $result = @{changed=$true; module_pid=$pid; module_tempdir=$PSScriptRoot} If($sleep_delay_sec -gt 0) { Sleep -Seconds $sleep_delay_sec $result["slept_sec"] = $sleep_delay_sec } If($fail_mode -contains "leading_junk") { Write-Output "leading junk before module output" } Try { If($fail_mode -contains "graceful") { Fail-Json $result "failed gracefully" } If($fail_mode -eq "exception") { Throw "failing via exception" } Exit-Json $result } Finally { If($fail_mode -contains "trailing_junk") { Write-Output "trailing junk after module output" } }