diff --git a/changelogs/fragments/55929-vmware_vm_inventory-skip_orphan_vm.yml b/changelogs/fragments/55929-vmware_vm_inventory-skip_orphan_vm.yml new file mode 100644 index 00000000000..bb7ce15693e --- /dev/null +++ b/changelogs/fragments/55929-vmware_vm_inventory-skip_orphan_vm.yml @@ -0,0 +1,2 @@ +minor_changes: +- Skip orphan VMs from inventory while running vmware_vm_inventory as VMs does not return any facts (https://github.com/ansible/ansible/pull/55929). diff --git a/lib/ansible/plugins/inventory/vmware_vm_inventory.py b/lib/ansible/plugins/inventory/vmware_vm_inventory.py index 165919b8538..a326cb8c4de 100644 --- a/lib/ansible/plugins/inventory/vmware_vm_inventory.py +++ b/lib/ansible/plugins/inventory/vmware_vm_inventory.py @@ -411,6 +411,10 @@ class InventoryModule(BaseInventoryPlugin, Cacheable): # VMware does not provide a way to uniquely identify VM by its name # i.e. there can be two virtual machines with same name # Appending "_" and VMware UUID to make it unique + if not vm_obj.obj.config: + # Sometime orphaned VMs return no configurations + continue + current_host = vm_obj_property.val + "_" + vm_obj.obj.config.uuid if current_host not in hostvars: