mirror of https://github.com/ansible/ansible.git
Add PowerShell exception handling and turn on strict mode.
* Add exception handling when running PowerShell modules to provide exception message and stack trace. * Enable strict mode for all PowerShell modules and internal commands. * Update common PowerShell code to fix strict mode errors. * Fix an issue with Set-Attr where it would not replace an existing property if already set. * Add tests for exception handling using modified win_ping modules.pull/12384/head
parent
a1948dd1c1
commit
5c65ee7f0c
@ -0,0 +1,31 @@
|
||||
#!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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
# POWERSHELL_COMMON
|
||||
|
||||
$params = Parse-Args $args $true;
|
||||
|
||||
$data = Get-Attr $params "data" "pong";
|
||||
|
||||
$result = New-Object psobject @{
|
||||
changed = $false
|
||||
ping = "pong"
|
||||
};
|
||||
|
||||
# Test that Set-Attr will replace an existing attribute.
|
||||
Set-Attr $result "ping" $data
|
||||
|
||||
Exit-Json $result;
|
@ -0,0 +1,30 @@
|
||||
#!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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
# POWERSHELL_COMMON
|
||||
|
||||
$params = Parse-Args $args $true;
|
||||
|
||||
$x = $params.thisPropertyDoesNotExist
|
||||
|
||||
$data = Get-Attr $params "data" "pong";
|
||||
|
||||
$result = New-Object psobject @{
|
||||
changed = $false
|
||||
ping = $data
|
||||
};
|
||||
|
||||
Exit-Json $result;
|
@ -0,0 +1,30 @@
|
||||
#!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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
# POWERSHELL_COMMON
|
||||
|
||||
$blah = 'I can't quote my strings correctly.'
|
||||
|
||||
$params = Parse-Args $args $true;
|
||||
|
||||
$data = Get-Attr $params "data" "pong";
|
||||
|
||||
$result = New-Object psobject @{
|
||||
changed = $false
|
||||
ping = $data
|
||||
};
|
||||
|
||||
Exit-Json $result;
|
@ -0,0 +1,30 @@
|
||||
#!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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
# POWERSHELL_COMMON
|
||||
|
||||
throw
|
||||
|
||||
$params = Parse-Args $args $true;
|
||||
|
||||
$data = Get-Attr $params "data" "pong";
|
||||
|
||||
$result = New-Object psobject @{
|
||||
changed = $false
|
||||
ping = $data
|
||||
};
|
||||
|
||||
Exit-Json $result;
|
@ -0,0 +1,30 @@
|
||||
#!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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
# POWERSHELL_COMMON
|
||||
|
||||
throw "no ping for you"
|
||||
|
||||
$params = Parse-Args $args $true;
|
||||
|
||||
$data = Get-Attr $params "data" "pong";
|
||||
|
||||
$result = New-Object psobject @{
|
||||
changed = $false
|
||||
ping = $data
|
||||
};
|
||||
|
||||
Exit-Json $result;
|
Loading…
Reference in New Issue