VMware: Check to retrieve list of all used disks (#56380)

Fixes: #56290
pull/56436/head
pratikgadiya12 5 years ago committed by Abhijeet Kasurde
parent 3170e8b881
commit 107d9efef3

@ -206,6 +206,15 @@ class VMwareHostDatastore(PyVmomi):
return 'present'
return 'absent'
def get_used_disks_names(self):
used_disks = []
storage_system = self.esxi.configManager.storageSystem
for each_vol_mount_info in storage_system.fileSystemVolumeInfo.mountInfo:
if hasattr(each_vol_mount_info.volume, 'extent'):
for each_partition in each_vol_mount_info.volume.extent:
used_disks.append(each_partition.diskName)
return used_disks
def umount_datastore_host(self):
ds = find_datastore_by_name(self.content, self.datastore_name)
if not ds:
@ -264,6 +273,9 @@ class VMwareHostDatastore(PyVmomi):
ds_path = "/vmfs/devices/disks/" + str(self.vmfs_device_name)
host_ds_system = self.esxi.configManager.datastoreSystem
ds_system = vim.host.DatastoreSystem
if self.vmfs_device_name in self.get_used_disks_names():
error_message_used_disk = "VMFS disk %s already in use" % self.vmfs_device_name
self.module.fail_json(msg="%s" % error_message_used_disk)
error_message_mount = "Cannot mount datastore %s on host %s" % (self.datastore_name, self.esxi_hostname)
try:
vmfs_ds_options = ds_system.QueryVmfsDatastoreCreateOptions(host_ds_system,

Loading…
Cancel
Save