On 02/09/2012 03:01 PM, Eric Blake wrote:
We absolutely cannot reject existing older xml files; but must load
them
with the semantics that make sense.
But a better idea is to represent the XML in a way where the default
conversion makes sense, but where a user can explicitly change the XML
to get what they want. I'm thinking:
If offset is 'utc' or 'localtime', we add a new attribute
'adjustment',
whose value can be either 'reset' to signify that the offset is reset on
each boot, or a timeDelta, as shorthand for specifying offset='variable'
adjustment='nnn' basis='utc|localtime'. If the attribute is missing,
the hypervisor determines whether the default is 'reset' or '0'. Qemu
would pick 'reset', xend would pick '0'.
RNG-wise, this would be:
I missed basis:
<element name='clock'>
<choice>
<group>
<attribute name='offset'>
<choice>
<value>localtime</value>
<value>utc</value>
</choice>
</attribute>
<optional>
<attribute name='adjustment'>
<choice>
<ref name='timeDelta'/>
<value>reset</value>
</choice>
</attribute>
</optional>
</group>
<group>
<attribute name='offset'>
<value>timezone</value>
</attribute>
<optional>
<attribute name='timezone'>
<ref name='timeZone'/>
</attribute>
</optional>
</group>
<group>
<attribute name='offset'>
<value>variable</value>
</attribute>
<optional>
<attribute name='adjustment'>
<ref name='timeDelta'/>
</attribute>
</optional>
<optional>
<attribute name='basis'>
<choice>
<value>utc</value>
<value>localtime</value>
</choice>
</attribute>
</optional>
</group>
</choice>
<zeroOrMore>
<ref name='timer'/>
</zeroOrMore>
</element>
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org