On 03/15/2017 10:22 AM, John Ferlan wrote:
On 03/12/2017 09:20 PM, Laine Stump wrote:
> On 03/10/2017 04:10 PM, John Ferlan wrote:
>> If we have a connection pointer there's no sense walking through the
>> sysfs in order to create/destroy the vHBA. Instead, let's make use of
>> the node device create/destroy API's.
>>
>> Since we don't have to rewrite all the various parent options for
>> the test driver in order to test whether the storage pool creation
>> works as the node device creation has been tested already, let's just
>> use the altered API to test the storage pool paths.
>>
>> Fix a "bug" in the storage pool test driver code which
"assumed"
>> testStoragePoolObjSetDefaults should fill in the configFile for
>> both the Define/Create (persistent) and CreateXML (transient) pools
>> by just VIR_FREE() of the pool during CreateXML. Because the
>> configFile was filled in, during Destroy, the pool wouldn't be
>> free causing a test using the same name pool to fail.
>
> Without trying to go through this patch, the commit log makes it sound like there are
3 separate things being done. Or am I misinterpreting? Can it maybe be split up so a
mindless reviewer doesn't need to do any work to figure out which is the code fixing
the bug. If no splitting is possible/useful, then I'll tackle it as-is tomorrow.
>
What's happening here is using the NodeDevice API's in order to create
the vHBA instead of essentially repeating what the nodedev API does for
create.
In working through the code I discovered the test_driver
pool->configFile "bug" and it seems "over described" it... I can
separate that.
The primary reason for doing this is I didn't want to rewrite all the
parent* options in the test driver in order to test the storage pool XML
options. By using the node device create - I get that for free!
I also figured it'd be "quicker" and more reliable to use what nodedev
driver has 'in memory' rather than walking through the file system that
theoretically udev has already done for us and nodedev has saved away.
I could really take the hard road and create an API that would handle
all those parent* options and do the right thing. That would mean both
nodedevice and storage pool would call that.
This ^. (or something similar). As Dan just pointed out with some
concrete reasons (and I also said in a previous review, but without
providing the good reasons like Dan did) calling a libvirt public API
from within libvirt may be tempting but not a good idea.