From eee1a18b8d68de5b046189409ef9cbb504467c1d Mon Sep 17 00:00:00 2001 From: Konstantin Kharlamov Date: Fri, 19 Jan 2024 16:17:15 +0300 Subject: [PATCH 1/2] delete_disk_from_vm.py: tell exact disk name that will be removed --- samples/delete_disk_from_vm.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/samples/delete_disk_from_vm.py b/samples/delete_disk_from_vm.py index 74e591c4..24dadb13 100755 --- a/samples/delete_disk_from_vm.py +++ b/samples/delete_disk_from_vm.py @@ -79,9 +79,7 @@ def main(): if vm_obj: if not args.yes: - cli.prompt_y_n_question("Are you sure you want " - "to delete HDD " - "{}?".format(args.unitnumber), + cli.prompt_y_n_question(f'Are you sure you want to delete "Hard Disk {args.unitnumber}"?', default='no') delete_virtual_disk(si, vm_obj, args.unitnumber, args.language) print('VM HDD "{}" successfully deleted.'.format(args.unitnumber)) From bac9398e8f33ee56c815f0be5894c3f7eb83690b Mon Sep 17 00:00:00 2001 From: Konstantin Kharlamov Date: Fri, 19 Jan 2024 16:11:44 +0300 Subject: [PATCH 2/2] delete_disk_from_vm.py: don't leave an orphaned file Upon removing a disk ESXi does not remove the file that was used by it, thus creating a junk on the datastore. Fix this by setting the option that makes it remove the file as well. Fixes: https://github.com/vmware/pyvmomi-community-samples/issues/608 --- samples/delete_disk_from_vm.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/samples/delete_disk_from_vm.py b/samples/delete_disk_from_vm.py index 24dadb13..21fd41cc 100755 --- a/samples/delete_disk_from_vm.py +++ b/samples/delete_disk_from_vm.py @@ -54,6 +54,9 @@ def delete_virtual_disk(si, vm_obj, disk_number, language): virtual_hdd_spec = vim.vm.device.VirtualDeviceSpec() virtual_hdd_spec.operation = \ vim.vm.device.VirtualDeviceSpec.Operation.remove + # remove the file that was used by disk as well + virtual_hdd_spec.fileOperation = \ + vim.vm.device.VirtualDeviceSpec.FileOperation.destroy virtual_hdd_spec.device = virtual_hdd_device spec = vim.vm.ConfigSpec() @@ -79,7 +82,7 @@ def main(): if vm_obj: if not args.yes: - cli.prompt_y_n_question(f'Are you sure you want to delete "Hard Disk {args.unitnumber}"?', + cli.prompt_y_n_question(f'Are you sure you want to delete "Hard Disk {args.unitnumber}" and its file?', default='no') delete_virtual_disk(si, vm_obj, args.unitnumber, args.language) print('VM HDD "{}" successfully deleted.'.format(args.unitnumber))