mirror of
https://git.proxmox.com/git/pve-esxi-import-tools
synced 2025-04-29 05:02:51 +00:00
listvms: exclude VMs without datastore_name from manifest.json
On newer ESXI-8x versions, the diskless vCLS machines in an ESXI-cluster are not stored on a datastore anymore. Instead, they are placed under `/var/run/crx` on the ESXI-hosts' filesystem. This can lead to issues with the ESXI-storage not being activated on the PVE-side [0]. This commit prevents these machines from being included in `manifest.json`. It also excludes VMs without a datastore string in its configuration. [0] https://forum.proxmox.com/threads/new-import-wizard-available-for-migrating-vmware-esxi-based-virtual-machines.144023/post-759288
This commit is contained in:
parent
fd97b5d38a
commit
d793cd1834
14
listvms.py
14
listvms.py
@ -265,6 +265,20 @@ def main():
|
|||||||
with connect_to_esxi_host(connection_args) as connection:
|
with connect_to_esxi_host(connection_args) as connection:
|
||||||
data = {}
|
data = {}
|
||||||
for vm in list_vms(connection):
|
for vm in list_vms(connection):
|
||||||
|
# drop vCLS machines
|
||||||
|
vCLS = any(cfg.key == "HDCS.agent"
|
||||||
|
and cfg.value.lower() == "true"
|
||||||
|
for cfg in vm.config.extraConfig)
|
||||||
|
if vCLS:
|
||||||
|
continue
|
||||||
|
# drop vms with empty datastore
|
||||||
|
datastore_name, relative_vmx_path = parse_file_path(
|
||||||
|
vm.config.files.vmPathName
|
||||||
|
)
|
||||||
|
if not datastore_name:
|
||||||
|
print(f"Skipping VM (no datastore value): {vm.name}",
|
||||||
|
file=sys.stderr)
|
||||||
|
continue
|
||||||
try:
|
try:
|
||||||
fetch_and_update_vm_data(vm, data)
|
fetch_and_update_vm_data(vm, data)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
Loading…
Reference in New Issue
Block a user