
On 06/24/2016 11:19 AM, Laine Stump wrote:
On 06/24/2016 09:48 AM, John Ferlan wrote:
[...]
+virDomainNetDefValidate(const virDomainNetDef *net) +{ + if ((net->hostIP.nroutes || net->hostIP.nips) && + net->type != VIR_DOMAIN_NET_TYPE_ETHERNET) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Invalid attempt to set network interface " + "host-side IP route and/or address info on " + "interface of type '%s'. This is only supported " + "on interfaces of type 'ethernet'"), + virDomainNetTypeToString(net->type)); + return -1; + } + return 0; +} It seems as though you are *adding* a new element - thus, this could not be present on a currently running domain, so wouldn't the "more correct" placement be the PostParse API's ?
I don't think we're losing any functionality by putting it here (other than that if someone edits the config files directly on disk and then restart libvirtd they won't see an error; but then they'll be getting what they deserve). And I think its function fits better with the Validate function than with the PostParse callback (which admittedly does have some validating done in it, but that's just because the Validate callbacks are a fairly recent addition.
In general, I think anything that is just validating the data in a domain as a whole should be done in the Validate callbacks, and things that modify the domain or devices should be in the postparse callbacks. Eventually pure validation should migrate, and for now at least new stuff should be added in that way. (Note that I still think that basic validation that doesn't require knowledge of any other part of the XML should still be done directly in the parse (numeric ranges, etc; basically anything that is described in the RNG).
That's fine - keep it here.
[...]
+ /* if sourceLines == 0 - no <source> info at all so far + * sourceLines == 1 - first line writte, no terminating ">" s/writte/written
I think the Validate should be a PostParse - your thoughts...
See above. I think you're just resistent to change :-P
By patch 25 I'm surprised I even noticed it. Explanation accepted - ACK John Anyone less resistant to change can always move it later.
The 'contents' of the change are ACKable, I just think the placement is a bit off. Then of course there's the whole doing multiple things here (there could conceivably be 3 patches out of this).
I "assume" there are other XML2XML tests that ensure all the following magic is correct since you added one for the new data...
Yes. The unit tests caught problems with it initially, so they are there.