mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
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 ``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
|
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.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
|
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
|
ElseIf($di.StorageType -in @(2,3)) { # VHD/VHDX, need Get-Disk + Get-Partition to discover mountpoint
|
||||||
# FUTURE: support multi-partition VHDs
|
$drive_letters = ($di | Get-Disk | Get-Partition).DriveLetter
|
||||||
$drive_letter = ($di | Get-Disk | Get-Partition)[0].DriveLetter
|
|
||||||
}
|
}
|
||||||
|
# remove any null entries (no drive letter)
|
||||||
|
$drive_letters = $drive_letters | Where-Object { $_ }
|
||||||
|
|
||||||
|
If(-not $drive_letters) {
|
||||||
If(-not $drive_letter) {
|
|
||||||
Fail-Json -message "Unable to retrieve drive letter from mounted image"
|
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") {
|
ElseIf($state -eq "absent") {
|
||||||
|
|
|
@ -32,10 +32,15 @@ author:
|
||||||
|
|
||||||
RETURN = r'''
|
RETURN = r'''
|
||||||
mount_path:
|
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)
|
returned: when C(state) is C(present)
|
||||||
type: string
|
type: string
|
||||||
sample: F:\
|
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'''
|
EXAMPLES = r'''
|
||||||
|
@ -48,7 +53,7 @@ EXAMPLES = r'''
|
||||||
|
|
||||||
- name: Run installer from mounted iso
|
- name: Run installer from mounted iso
|
||||||
win_package:
|
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
|
product_id: 35a4e767-0161-46b0-979f-e61f282fee21
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue