win_disk_image: return all mount paths in return value (#44799)
This commit is contained in:
parent
78eb4724a0
commit
533656694e
4 changed files with 21 additions and 8 deletions
4
changelogs/fragments/win_disk_image-mount-paths.yaml
Normal file
4
changelogs/fragments/win_disk_image-mount-paths.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
minor_changes:
|
||||
- win_disk_image - return a list of mount paths with the return value ``mount_paths``, this will always be a list and contain all mount points in an image
|
||||
deprecated_features:
|
||||
- win_disk_image - the return value ``mount_path`` is deprecated and will be removed in 2.11, this can be accessed through ``mount_paths[0]`` instead.
|
|
@ -201,6 +201,8 @@ Noteworthy module changes
|
|||
|
||||
* The ``interface_name`` module option for ``na_ontap_net_vlan`` has been removed and should be removed from your playbooks
|
||||
|
||||
* The ``win_disk_image`` module has deprecated the return value ``mount_path``, use ``mount_paths[0]`` instead. This will
|
||||
be removed in Ansible 2.11.
|
||||
|
||||
Plugins
|
||||
=======
|
||||
|
|
|
@ -49,19 +49,21 @@ If($state -eq "present") {
|
|||
|
||||
If($di.Attached) { # only try to get the mount_path if the disk is attached (
|
||||
If($di.StorageType -eq 1) { # ISO, we can get the mountpoint directly from Get-Volume
|
||||
$drive_letter = ($di | Get-Volume).DriveLetter
|
||||
$drive_letters = ($di | Get-Volume).DriveLetter
|
||||
}
|
||||
ElseIf($di.StorageType -in @(2,3)) { # VHD/VHDX, need Get-Disk + Get-Partition to discover mountpoint
|
||||
# FUTURE: support multi-partition VHDs
|
||||
$drive_letter = ($di | Get-Disk | Get-Partition)[0].DriveLetter
|
||||
$drive_letters = ($di | Get-Disk | Get-Partition).DriveLetter
|
||||
}
|
||||
# remove any null entries (no drive letter)
|
||||
$drive_letters = $drive_letters | Where-Object { $_ }
|
||||
|
||||
|
||||
If(-not $drive_letter) {
|
||||
If(-not $drive_letters) {
|
||||
Fail-Json -message "Unable to retrieve drive letter from mounted image"
|
||||
}
|
||||
|
||||
$result.mount_path = $drive_letter + ":\"
|
||||
# mount_path is deprecated and will be removed in 2.11, use mount_paths which contains all the partitions instead
|
||||
$result.mount_path = $drive_letters[0] + ":\"
|
||||
$result.mount_paths = @($drive_letters | ForEach-Object { "$($_):\" })
|
||||
}
|
||||
}
|
||||
ElseIf($state -eq "absent") {
|
||||
|
|
|
@ -32,10 +32,15 @@ author:
|
|||
|
||||
RETURN = r'''
|
||||
mount_path:
|
||||
description: filesystem path where the target image is mounted
|
||||
description: filesystem path where the target image is mounted, this has been deprecated in favour of C(mount_paths)
|
||||
returned: when C(state) is C(present)
|
||||
type: string
|
||||
sample: F:\
|
||||
mount_paths:
|
||||
description: a list of filesystem paths mounted from the target image
|
||||
returned: when C(state) is C(present)
|
||||
type: list
|
||||
sample: [ 'E:\', 'F:\' ]
|
||||
'''
|
||||
|
||||
EXAMPLES = r'''
|
||||
|
@ -48,7 +53,7 @@ EXAMPLES = r'''
|
|||
|
||||
- name: Run installer from mounted iso
|
||||
win_package:
|
||||
path: '{{ disk_image_out.mount_path }}setup\setup.exe'
|
||||
path: '{{ disk_image_out.mount_paths[0] }}setup\setup.exe'
|
||||
product_id: 35a4e767-0161-46b0-979f-e61f282fee21
|
||||
state: present
|
||||
|
||||
|
|
Loading…
Reference in a new issue