On Wed, May 21, 2008 at 04:50:12PM +0200, Chris Lalancette wrote:
Stefan de Konink wrote:
> I think if you can get iscsi_sysfs.c; get_block_dev_from_lun you have the
> code already to do this all. So basically get openiscsi into a lib with
> helper functions.
OK. I took a look at this further, and I figured out what is going on here.
The original impetus for me to re-write the code in
virStorageBackendISCSIMakeLUN() was because I thought the open-iscsi people had
changed the output of iscsiadm --mode session -r $session -P 3. However, that's
not what actually happened. What actually happened is that the sysfs files that
export this information changed somewhere between 2.6.21 and 2.6.24 (which is
what I was using at the time). So, the code you point to above in open-iscsi
tools *also* doesn't work. That code is expecting the block devices to look
like block:sdd, which is what you have in your 2.6.21 kernel; but in later
kernels, it no longer looks like that.
All that being said, the less we have to depend on parsing, and the more we can
poke around sysfs and get values, the better. So in that sense, the change was
for the better. I've attached a patch which seems to do the right thing on my
2.6.25 based machine; can you test it on 2.6.21 and see if it works?
Can you provide a documentation patch describing the sysfs layout for the
kernels the patch is intended to support, along with captured output from
the isciadm tool running on each, for the various commands libvirt needs
to run.
The only way we are going to avoid breaking this repeatedly is to get
serious around documentating the variants we need to support then then
testing them. The example output from iscsidam tool then can be used to
build a fake iscsiadm tool invoked by the test suites exercising all the
new code.
Regards,
Daniel.
--
|: Red Hat, Engineering, Boston -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 :|