Windows modules: Add -type "path" to path parameters (#20282)

This PR is based on #20164 functionality to specify the parameter type
(e.g. as done for python modules).

In this case only -type "path" has a specific meaning, as it will expand
environment variables for paths. Which is typically done on Windows.

So you can do:

  - win_copy:
      src: files/some.doc
      dest: '%UserProfile%\My Documents'
This commit is contained in:
Dag Wieers 2017-01-16 20:39:58 +01:00 committed by Matt Davis
commit 7be39ca553
11 changed files with 22 additions and 22 deletions

View file

@ -44,7 +44,7 @@ $result = New-Object psobject @{
}; };
# failifempty = $false is default and thus implied # failifempty = $false is default and thus implied
$factpath = Get-AnsibleParam -obj $params -name fact_path $factpath = Get-AnsibleParam -obj $params -name fact_path -type "path"
if ($factpath -ne $null) { if ($factpath -ne $null) {
# Get any custom facts # Get any custom facts
Get-CustomFacts -factpath $factpath Get-CustomFacts -factpath $factpath

View file

@ -25,9 +25,9 @@ $ErrorActionPreference = "Stop"
$parsed_args = Parse-Args $args $false $parsed_args = Parse-Args $args $false
$raw_command_line = $(Get-AnsibleParam $parsed_args "_raw_params" -failifempty $true).Trim() $raw_command_line = $(Get-AnsibleParam $parsed_args "_raw_params" -failifempty $true).Trim()
$chdir = Get-AnsibleParam $parsed_args "chdir" $chdir = Get-AnsibleParam $parsed_args "chdir" -type "path"
$creates = Get-AnsibleParam $parsed_args "creates" $creates = Get-AnsibleParam $parsed_args "creates" -type "path"
$removes = Get-AnsibleParam $parsed_args "removes" $removes = Get-AnsibleParam $parsed_args "removes" -type "path"
$result = @{changed=$true; warnings=@(); cmd=$raw_command_line} $result = @{changed=$true; warnings=@(); cmd=$raw_command_line}

View file

@ -19,13 +19,13 @@
$params = Parse-Args $args $params = Parse-Args $args
$src= Get-Attr $params "src" $FALSE $src = Get-Attr $params "src" $FALSE -type "path"
If ($src -eq $FALSE) If ($src -eq $FALSE)
{ {
Fail-Json (New-Object psobject) "missing required argument: src" Fail-Json (New-Object psobject) "missing required argument: src"
} }
$dest= Get-Attr $params "dest" $FALSE $dest = Get-Attr $params "dest" $FALSE -type "path"
If ($dest -eq $FALSE) If ($dest -eq $FALSE)
{ {
Fail-Json (New-Object psobject) "missing required argument: dest" Fail-Json (New-Object psobject) "missing required argument: dest"

View file

@ -26,7 +26,7 @@ $result = New-Object psobject @{
changed = $false changed = $false
} }
$path = Get-AnsibleParam $params "path" -failifempty $true -resultobj $result $path = Get-AnsibleParam $params "path" -type "path" -failifempty $true -resultobj $result
If (-Not (Test-Path -Path $path -PathType Leaf)){ If (-Not (Test-Path -Path $path -PathType Leaf)){
Fail-Json $result "Specfied path $path does exist or is not a file." Fail-Json $result "Specfied path $path does exist or is not a file."

View file

@ -27,7 +27,7 @@ $result = New-Object psobject @{
} }
$url = Get-AnsibleParam $params -name "url" -failifempty $true $url = Get-AnsibleParam $params -name "url" -failifempty $true
$dest = Get-AnsibleParam $params -name "dest" -failifempty $true $dest = Get-AnsibleParam $params -name "dest" -type "path" -failifempty $true
$skip_certificate_validation = Get-AnsibleParam $params -name "skip_certificate_validation" -default $false $skip_certificate_validation = Get-AnsibleParam $params -name "skip_certificate_validation" -default $false
$skip_certificate_validation = $skip_certificate_validation | ConvertTo-Bool $skip_certificate_validation = $skip_certificate_validation | ConvertTo-Bool

View file

@ -27,8 +27,8 @@ $result = New-Object psobject @{
changed = $false changed = $false
} }
$src = Get-AnsibleParam -obj $params -name "src" -failifempty $true $src = Get-AnsibleParam -obj $params -name "src" -type "path" -failifempty $true
$dest = Get-AnsibleParam -obj $params -name "dest" -failifempty $true $dest = Get-AnsibleParam -obj $params -name "dest" -type "path" -failifempty $true
$purge = ConvertTo-Bool (Get-AnsibleParam -obj $params -name "purge" -default $false) $purge = ConvertTo-Bool (Get-AnsibleParam -obj $params -name "purge" -default $false)
$recurse = ConvertTo-Bool (Get-AnsibleParam -obj $params -name "recurse" -default $false) $recurse = ConvertTo-Bool (Get-AnsibleParam -obj $params -name "recurse" -default $false)
$flags = Get-AnsibleParam -obj $params -name "flags" -default $null $flags = Get-AnsibleParam -obj $params -name "flags" -default $null

View file

@ -22,9 +22,9 @@
$params = Parse-Args $args; $params = Parse-Args $args;
$result = New-Object PSObject; $result = New-Object PSObject;
$msg = Get-AnsibleParam -obj $params -name "msg" $msg = Get-AnsibleParam -obj $params -name "msg"
$msg_file = Get-AnsibleParam -obj $params -name "msg_file" $msg_file = Get-AnsibleParam -obj $params -name "msg_file" -type "path"
$start_sound_path = Get-AnsibleParam -obj $params -name "start_sound_path" $start_sound_path = Get-AnsibleParam -obj $params -name "start_sound_path" -type "path"
$end_sound_path = Get-AnsibleParam -obj $params -name "end_sound_path" $end_sound_path = Get-AnsibleParam -obj $params -name "end_sound_path" -type "path"
$voice = Get-AnsibleParam -obj $params -name "voice" $voice = Get-AnsibleParam -obj $params -name "voice"
$speech_speed = Get-AnsibleParam -obj $params -name "speech_speed" $speech_speed = Get-AnsibleParam -obj $params -name "speech_speed"
$speed = 0 $speed = 0

View file

@ -28,7 +28,7 @@ $days_of_week = Get-AnsibleParam $params -name "days_of_week"
$enabled = Get-AnsibleParam $params -name "enabled" -default $true $enabled = Get-AnsibleParam $params -name "enabled" -default $true
$enabled = $enabled | ConvertTo-Bool $enabled = $enabled | ConvertTo-Bool
$description = Get-AnsibleParam $params -name "description" -default " " $description = Get-AnsibleParam $params -name "description" -default " "
$path = Get-AnsibleParam $params -name "path" $path = Get-AnsibleParam $params -name "path" -type "path"
$argument = Get-AnsibleParam $params -name "argument" $argument = Get-AnsibleParam $params -name "argument"
$result = New-Object PSObject; $result = New-Object PSObject;

View file

@ -63,10 +63,10 @@ namespace Ansible.Shell
$parsed_args = Parse-Args $args $false $parsed_args = Parse-Args $args $false
$raw_command_line = $(Get-AnsibleParam $parsed_args "_raw_params" -failifempty $true).Trim() $raw_command_line = $(Get-AnsibleParam $parsed_args "_raw_params" -failifempty $true).Trim()
$chdir = Get-AnsibleParam $parsed_args "chdir" $chdir = Get-AnsibleParam $parsed_args "chdir" -type "path"
$executable = Get-AnsibleParam $parsed_args "executable" $executable = Get-AnsibleParam $parsed_args "executable" -type "path"
$creates = Get-AnsibleParam $parsed_args "creates" $creates = Get-AnsibleParam $parsed_args "creates" -type "path"
$removes = Get-AnsibleParam $parsed_args "removes" $removes = Get-AnsibleParam $parsed_args "removes" -type "path"
$result = @{changed=$true; warnings=@(); cmd=$raw_command_line} $result = @{changed=$true; warnings=@(); cmd=$raw_command_line}

View file

@ -27,14 +27,14 @@ $result = New-Object psobject @{
changed = $false changed = $false
} }
$creates = Get-AnsibleParam -obj $params -name "creates" $creates = Get-AnsibleParam -obj $params -name "creates" -type "path"
If ($creates -ne $null) { If ($creates -ne $null) {
If (Test-Path $params.creates) { If (Test-Path $params.creates) {
Exit-Json $result "The 'creates' file or directory already exists." Exit-Json $result "The 'creates' file or directory already exists."
} }
} }
$src = Get-AnsibleParam -obj $params -name "src" -failifempty $true $src = Get-AnsibleParam -obj $params -name "src" -type "path" -failifempty $true
If (-Not (Test-Path -path $src)){ If (-Not (Test-Path -path $src)){
Fail-Json $result "src file: $src does not exist." Fail-Json $result "src file: $src does not exist."
} }
@ -42,7 +42,7 @@ If (-Not (Test-Path -path $src)){
$ext = [System.IO.Path]::GetExtension($src) $ext = [System.IO.Path]::GetExtension($src)
$dest = Get-AnsibleParam -obj $params -name "dest" -failifempty $true $dest = Get-AnsibleParam -obj $params -name "dest" -type "path" -failifempty $true
If (-Not (Test-Path $dest -PathType Container)){ If (-Not (Test-Path $dest -PathType Container)){
Try{ Try{
New-Item -itemtype directory -path $dest New-Item -itemtype directory -path $dest

View file

@ -42,7 +42,7 @@ $method = Get-AnsibleParam -obj $params "method" -default "GET"
$content_type = Get-AnsibleParam -obj $params -name "content_type" $content_type = Get-AnsibleParam -obj $params -name "content_type"
$headers = Get-AnsibleParam -obj $params -name "headers" $headers = Get-AnsibleParam -obj $params -name "headers"
$body = Get-AnsibleParam -obj $params -name "body" $body = Get-AnsibleParam -obj $params -name "body"
$dest = Get-AnsibleParam -obj $params -name "dest" -default $null $dest = Get-AnsibleParam -obj $params -name "dest" -type "path" -default $null
$use_basic_parsing = ConvertTo-Bool (Get-AnsibleParam -obj $params -name "use_basic_parsing" -default $true) $use_basic_parsing = ConvertTo-Bool (Get-AnsibleParam -obj $params -name "use_basic_parsing" -default $true)
$webrequest_opts.Uri = $url $webrequest_opts.Uri = $url