On Mon, Oct 05, 2009 at 12:18:33PM -0400, Laine Stump wrote:
On 10/05/2009 07:02 AM, Daniel P. Berrange wrote:
>On Tue, Sep 29, 2009 at 04:02:30PM -0400, Laine Stump wrote:
>
>>From: root<root(a)vlap.laine.org>
>>
>>This patch adds the flag VIR_INTERFACE_XML_INACTIVE to
>>virInterfaceGetXMLDesc's flags. When it is *not* set (the default),
>>the live interface info will be returned in the XML. in particular,
>>the IP address(es) and netmask(s) will be retrieved by querying the
>>device directly, rather than just reporting what's in the config
>>file. The backend of this is in netcf's new ncf_if_xml_state()
>>function.
>>
>>Any live interface ip address info in the xml will have the property
>>"source" set to "device", eg:
>>
>> <ip address='10.24.0.1' prefix='24'
source='device'/>
>>
>This new 'source' attribute is bogus. The fact that the XML is the
>showing the device details, and not the config file details is
>inherent in the fact that we're querying the live interface. This
>distinction applies to the entire XML dump, not just the<ip> tag.
>
The 'source' attribute came out of the exchange at the bottom of these
messages:
https://fedorahosted.org/pipermail/netcf-devel/2009-September/000258.html
https://fedorahosted.org/pipermail/netcf-devel/2009-September/000259.html
https://fedorahosted.org/pipermail/netcf-devel/2009-September/000260.html
(I included all the messages in case too much context was removed in the
replies).
Some/most of the stuff in the XML still comes from the config files even
though we're querying the "live interface', because some info isn't
available reliably in any other way (for example, it's useful to know
that dhcp is setup for the interface, but I don't believe there's any
way to query dhclient to see if that truly is the case). The idea was to
put some sort of tag on the particular items that were really coming
from the device. I will say that, if nothing else, having this extra
attribute has mmade it easier for me to verify that my patches are
actually doing something ;-) In the end, I looked at it kindly because
it didn't seem to hurt anything (most people just ignore extra stuff in
the xml), and might help someone.
I'm not really convinced by that thread. If the virInterfaceDumpXML
API only ever exposed the live XML config, then there' would be a
compelling need to identify whether the <ip> info were from the DHCP
or the persistent config. The whole point of having the extra
VIR_INTERFACE_XML_INACIVE flag though, is to allow the caller to
access the full persistent XML config, independantly of the live XML
config. This is much more powerful because they can compare every
aspect of the XML description, not merely that one element.
With the domain XML format, we did have a few abortive attempts at
indicating in the live XML, whether an attribute was from the
persistent config, vs dynamically added to live config, but it all
ended up as rather a mess. Eventually we introduced the extra
VIR_DOMAIN_XML_INACTIVE flag to allow the full distinction/comparison
to be made, rather than doing lots of small hacks in the XML each
time we case across a new special case. I'd really like us to avoid
making this mistake again in the interface XML, and just use the
VIR_INTERFACE_XML_INACTIVE flag for this scenario.
Regards,
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|