* [pve-devel] [PATCH esxi-import-tools] listvms: exclude VMs without datastore_name from manifest.json.
@ 2025-04-07 15:04 Daniel Herzig
2025-04-08 9:17 ` Wolfgang Bumiller
0 siblings, 1 reply; 3+ messages in thread
From: Daniel Herzig @ 2025-04-07 15:04 UTC (permalink / raw)
To: pve-devel
On newer ESXI-8.x.y 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 changes the default behaviour of `manifest.json` creation by
excluding any machine that has an empty datastore-string in its config
and by that prevents querying a file that we cannot reach anyway.
[0] https://forum.proxmox.com/threads/new-import-wizard-available-for-migrating-vmware-esxi-based-virtual-machines.144023/post-759288
Signed-off-by: Daniel Herzig <d.herzig@proxmox.com>
---
This acts silently for now, if we'd prefer logging exclusion
of these VMs, please drop an idea!
listvms.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/listvms.py b/listvms.py
index a2fb2a5..7a4aa06 100755
--- a/listvms.py
+++ b/listvms.py
@@ -265,6 +265,12 @@ def main():
with connect_to_esxi_host(connection_args) as connection:
data = {}
for vm in list_vms(connection):
+ # skip vms with empty datastore_name
+ datastore_name, relative_vmx_path = parse_file_path(
+ vm.config.files.vmPathName
+ )
+ if not datastore_name:
+ continue
try:
fetch_and_update_vm_data(vm, data)
except Exception as err:
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [pve-devel] [PATCH esxi-import-tools] listvms: exclude VMs without datastore_name from manifest.json.
2025-04-07 15:04 [pve-devel] [PATCH esxi-import-tools] listvms: exclude VMs without datastore_name from manifest.json Daniel Herzig
@ 2025-04-08 9:17 ` Wolfgang Bumiller
2025-04-08 9:27 ` Daniel Herzig
0 siblings, 1 reply; 3+ messages in thread
From: Wolfgang Bumiller @ 2025-04-08 9:17 UTC (permalink / raw)
To: Daniel Herzig; +Cc: pve-devel
On Mon, Apr 07, 2025 at 05:04:22PM +0200, Daniel Herzig wrote:
> On newer ESXI-8.x.y 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 changes the default behaviour of `manifest.json` creation by
> excluding any machine that has an empty datastore-string in its config
> and by that prevents querying a file that we cannot reach anyway.
>
> [0] https://forum.proxmox.com/threads/new-import-wizard-available-for-migrating-vmware-esxi-based-virtual-machines.144023/post-759288
>
> Signed-off-by: Daniel Herzig <d.herzig@proxmox.com>
> ---
> This acts silently for now, if we'd prefer logging exclusion
> of these VMs, please drop an idea!
>
> listvms.py | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/listvms.py b/listvms.py
> index a2fb2a5..7a4aa06 100755
> --- a/listvms.py
> +++ b/listvms.py
> @@ -265,6 +265,12 @@ def main():
> with connect_to_esxi_host(connection_args) as connection:
> data = {}
> for vm in list_vms(connection):
> + # skip vms with empty datastore_name
> + datastore_name, relative_vmx_path = parse_file_path(
> + vm.config.files.vmPathName
> + )
> + if not datastore_name:
While this works as a stop-gap, I think we should use the example code
here[1] to test if this is such an embedded(?) vCLS VM, and if it is
*not* such a VM, print a warning to stderr that we're skipping this VM,
so that in the future, if VMs magically disappear, we should see log
messages about this.
[1] https://knowledge.broadcom.com/external/article/370219/script-identification-for-embedded-vcls.html
> + continue
> try:
> fetch_and_update_vm_data(vm, data)
> except Exception as err:
> --
> 2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [pve-devel] [PATCH esxi-import-tools] listvms: exclude VMs without datastore_name from manifest.json.
2025-04-08 9:17 ` Wolfgang Bumiller
@ 2025-04-08 9:27 ` Daniel Herzig
0 siblings, 0 replies; 3+ messages in thread
From: Daniel Herzig @ 2025-04-08 9:27 UTC (permalink / raw)
To: Wolfgang Bumiller; +Cc: pve-devel
Wolfgang Bumiller <w.bumiller@proxmox.com> writes:
>> for vm in list_vms(connection):
>> + # skip vms with empty datastore_name
>> + datastore_name, relative_vmx_path = parse_file_path(
>> + vm.config.files.vmPathName
>> + )
>> + if not datastore_name:
>
> While this works as a stop-gap, I think we should use the example code
> here[1] to test if this is such an embedded(?) vCLS VM, and if it is
> *not* such a VM, print a warning to stderr that we're skipping this VM,
> so that in the future, if VMs magically disappear, we should see log
> messages about this.
>
> [1]
> https://knowledge.broadcom.com/external/article/370219/script-identification-for-embedded-vcls.html
I agree -- above is more of a handbrake-solution. I'll see what I can do
for proper indentification. Thanks a lot for the link, I missed that
there's more focussed identifiers available already.
>
>> + continue
>> try:
>> fetch_and_update_vm_data(vm, data)
>> except Exception as err:
>> --
>> 2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-08 9:27 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-07 15:04 [pve-devel] [PATCH esxi-import-tools] listvms: exclude VMs without datastore_name from manifest.json Daniel Herzig
2025-04-08 9:17 ` Wolfgang Bumiller
2025-04-08 9:27 ` Daniel Herzig
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal