[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 0/8] Normalization API



On 09/18/2013 11:43 AM, Daniel P. Berrange wrote:
> On Wed, Sep 18, 2013 at 09:38:23AM -0600, Eric Blake wrote:
>> On 09/18/2013 09:32 AM, Cole Robinson wrote:
>>>
>>> Seems overkill IMO. Do we really need to add an API to facilitate the crappy
>>> interface that is virsh detach-device? Will any other application ever want to
>>> use this API?
>>
>> Yes, I can envision other use cases.  In fact, virt-manager is one of them:
>>
>> Oftentimes, we add features to XML, but you don't have an easy way to
>> probe if the feature is supported.  Rather than complicate the (already
>> large) capabilities xml to call out yet more features, it is rather
>> simple to write up XML that tries to use the feature, then run it
>> through the normalizing API, then look at the result.  If the feature is
>> still present in the output, then libvirt understands the feature (and
>> you can safely use it); if the feature got stripped as unrecognized,
>> then you can issue a much nicer error message to the user stating that
>> the libvirtd on the other end of the connection can't honor the user's
>> request.
> 
> IMHO a better way to deal with that usage scenario is to add ability
> to validate XML via the RNG schema to the API.
> 
> eg we should add a "validate" flag that can be passed to virDomainDefineXML
> / virDomainCreateXML that would enable RNG validation during parsing of
> those APis. And possibly even have a dedicated API to request validation
> of an XML doc in general (virt-xml-validate, but part of the API instead
> of local CLI tool)
> 

Yeah that could be useful. Though so would an API to just return the libvirt
domain rng and let apps cache it, or parse it and use that as a poor man's XML
capabilities and make virt-install --disk cache=? list all available cache
modes without having to hardcode them. Granted that won't be accurate across
hypervisors but its a start.

- Cole


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]