filter for custom field
-
I'm trying to get a list of VMs that have a "true" value for a custom field. The doc at https://docs.xen-orchestra.com/restapi even describes an example as "With custom fields:" but the example following (and all the other examples) make no mention of filters.
The custom field is called "export_vga" and I can see it if I query fields=* under "other" but can't filter on it using its short name, nor for XenCenter.CustomFields.export_vga or other.XenCenter.CustomFields.export_vga or other:XenCenter.CustomFields.export_vga (I'm pretty much trying to find a working curl command by trial and error at this point).
This returns every VM and every field:
curl -k -b authenticationToken=$tk "https://xoa.pc.scharp.org/rest/v0/vms?fields=*" | lessincluding the lines:
"other": { "XenCenter.CustomFields.export_vga": "true",I can filter on other fields:
curl -k -b authenticationToken=$tk "https://xoa.pc.scharp.org/rest/v0/vms?filter=name_label:xoa&fields=name_label" [ { "name_label": "xoa", "href": "/rest/v0/vms/73018610-8d50-4685-5617-f15e0d09fa5" } ]grateful for any guidance
-
This filter works in XOA --
other:XenCenter.CustomFields.export_vga:"true"You can try this with curl --
curl -k -b authenticationToken=$tk "https://xoa.pc.scharp.org/rest/v0/vms?fields=name_label%2Cpower_state%2Cuuid&filter=other%3AXenCenter.CustomFields.export_vga%3A%22true%22" -
@Danp said in filter for custom field:
other:XenCenter.CustomFields.export_vga:"true"
I think I had something either very close to that or even exactly that except I didn't quote "true." Which makes sense as "true" is just a string, not a bool.
This works:
curl -k -b authenticationToken=$tk "https://xoa.pc.scharp.org/rest/v0/vms?filter=other:XenCenter.CustomFields.export_vga:"true"&fields=name_label"Thank you!
-
One more question!
How can I add the contents of that field to the output?
This
curl -k -b authenticationToken=$tk "https://xoa.pc.scharp.org/rest/v0/vms?filter=other:XenCenter.CustomFields.export_vga:"*"&fields=name_label,other:XenCenter.CustomFields.export_vga"doesn't work. I did double check that multiple fields are comma delimited, I can set fields to fields=name_label,power_state
I'm assuming this is something weird about properly quoting and escaping different parts of the call. For example, thee above example is actually passing three chunks because of that quoted * within the quotes. But if I try to make it make more sense it stops working at all.
OK, this works:
curl -k -b authenticationToken=$tk "https://xoa.pc.scharp.org/rest/v0/vms?filter=other:XenCenter.CustomFields.export_vga:*&fields=name_label,other:XenCenter.CustomFields.export_vga,power_state"and returns the name and power state but not the custom field