Hi everyone,

as far as XML goes "extradata" is a simple key/value store. The meaning of the value varies greatly with the key, and the ones you mentioned starting with GUI/ are internal stuff managed by the VirtualBox VM manager UI code.

I would strongly advise against relying on those extradata fields, because they're not immediately written out (IIRC it's postponed until GUI termination, or at least for a while to not trigger too many updates). They're also updated only when the GUI is running. One can create VMs (and organize them in groups) without using the GUI, and then this is stale data...

The only truly reliable approach is to use the VirtualBox API. You can query which VMs are there, which groups, ...

Interpreting the XML files is theoretically possible, but there have been many changes over the years which moved attributes and tags around, changed defaults and so on. So getting this right will be essentially implementing a 2nd version of the XML parsing code in VirtualBox, which is quite a bit of hairy code in src/VBox/Main/xml/Settings.cpp

The only thing which is possible with usual XML tools is to validate them against src/VBox/Main/xml/VirtualBox-settings.xsd (and it's likely that you find some perfectly valid config files which don't validate due to sloppiness/bugs in the XML schema definition).

Klaus


On 2021-11-03 15:04, fth0 wrote:
Hi Bernard, hi Stéphane,

the only "documentation" of the VirtualBox.xml format that I know of is the VirtualBox source code, and you'll find the group attribute names in src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp (search for "go", including the quotes).

AFAIU, "go" represents an open group, "gc" represents a closed group. I'm not sure about the roles of "n" for "name" and "nf" for "name favorite".

Regards
fth0

Am 03.11.2021 um 10:30 schrieb Bernard Giannetti <[email protected]>:

Hi,

I'm the author of the Ubuntu VirtualBox indicator and have some additional questions/clarifications please...

My indicator parses the VirtualBox configuration file at ~/.config/VirtualBox/VirtualBox.xml to determine the virtual machines and groups.  Using only the XMLtags ExtraDataItem where name="GUI/GroupDefinitions/*", I have assumed that:

'go=...' is a group
'm=...': is a machine UUID

I noticed between version 1.5 and 1.6 there was the addition of the value "n=GLOBAL" which I skip; I assume this is safe to do so?

As Stéphane reported below, I have not seen the name="gc=..." before and cannot reproduce this under version 1.5 or 1.6.  Can 'gc' be treated the same as 'go' (that is, a group)?


Thanks,

Bernard.

------------------------------------------------------------------------
*From:*Stéphane Charette <[email protected]>
*Sent:*Wednesday, 3 November 2021 17:56
*To:*[email protected] <[email protected]>; Bernard Giannetti <[email protected]>
*Subject:*VB xml format
Devs,

Is there documentation available for the VirtualBox XML file format?  Specifically, what you'd expect to find in Ubuntu at this location:  ~/.config/VirtualBox/VirtualBox.xml

Bernard Giannetti (the author of the VirtualBox indicator on Ubuntu) and I are trying to understand some fields and could use some assistance.  Specifically, right now we're trying to understand the meaning of "*gc=*..." in <ExtraDataItem name="GUI/GroupDefinitions/".

Thanks,

Stéphane

--
<https://about.me/stephane.charette?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=edit_panel&utm_content=thumb>
Stéphane Charette
about.me/stephane.charette <https://about.me/stephane.charette?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=edit_panel&utm_content=thumb>
_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev

Reply via email to