Shyam_Iyer(a)Dell.com wrote:
> -----Original Message-----
> From: libvir-list-bounces(a)redhat.com [mailto:libvir-list-
> bounces(a)redhat.com] On Behalf Of Daniel P. Berrange
> Sent: Wednesday, November 18, 2009 4:47 PM
> To: Iyer, Shyam
> Cc: libvir-list(a)redhat.com; Bellad, Sudhir; Domsch, Matt; KM, Paniraja
> Subject: Re: [libvirt] Re: [Patch v0.4] iSCSI Multi-IQN (Libvirt
> Support)
>
> On Wed, Nov 18, 2009 at 04:37:02PM +0530, Shyam_Iyer(a)Dell.com wrote:
>>
>>>> 2) By using iscsiadm commands like the following
>>>> # iscsiadm -m iface -I <iface_name> -o new
>>>> # iscsiadm -m iface -I iface1 --op=update -n iface.initiatorname
> -v
>>>> <iqnname>
>>> In that case, why don't we make libvirt automatically set things
up
>>> this
>>> way whenever it sees the IQN in the XML file.
>>>
>>>> We don't change the default initiatorname with libvirt/virt
> manager
>>>> today right ? So, we haven't added any apis to manage the iface
> file
>>>> name using libvirt as such.
>>>>
>>>> But if required by virt-manager(to create a single window of
>>> management)
>>>> the iface file could be constructed using libvirt apis that call
> the
>>>> iscsiadm commands detailed in method 2)
>>> We don't need to add any new APIs for this - just automatically
add
>> the
>>> mapping whenever logging into a target with a IQN that we don't
>> already
>>> know about
>>>
>> How do we ensure that the iqn is not already known and libvirt is
>> creating the corresponding iface file for the first time?
>> That would mean searching through the IFACES_DIR which has been
> opposed
>> in the thread...
> Now that you've explained why this searching in IFACE_DIR was needed,
> I've no problem with that approach. We should search through
IFACES_DIR
> to find the iface mapping, if none is found, then run those 2 commands
> you show above in order to create a new mapping
>
Ok. Thanks.
Dan and I took another look at this, and we think that parsing the
output of iscsiadm is the right way to go, since the relevant
information is available there. It's what we're doing in the rest of
the code, as well as (IMO) less likely to change between builds of
iscsiadm/distros/etc. Sorry about the conflicting advice.
>> Also, how do we go about creating unique iface filenames
when
>> automatically creating them using libvirt ?
> I don't know what naming convention is used in IFACES_DIR, but I'd say
> just follow whatever's used already
What I mean here is how do I create unique file names through libvirt.
Today a unique iface file name is created by the user manually.
So, should mkstemp be used... with a template feed of the initiator iqn
name ?
Just to make sure I'm understanding correctly, the filename is the
interface name, so what we're talking about here is generating a unique
interface name? Assuming that's the case, you could use a randomly
generated string, although personally I find those things somewhat
difficult to keep in mind. You could also just append a monotonically
increasing value, but I don't have too strong an opinion about how you
do it.
Any way you generate the interface name, you should use iscsiadm to
create the interface.
Dave