add a method to get iscsi storage pool auth information.

when need the auth information when we create iscsi volume disk for guest.

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
generate a iscsi volume disk for a guest

The disk looks like:
"""
    <disk type='volume' device='disk'>
      <driver name='qemu' type='raw'/>
      <source pool='iscsi-pool' volume='unit:0:0:1' mode='host'/>
      <auth username='myuser'>
        <secret type='chap' usage='libvirtiscsi'/>
      </auth>
      <target dev='vda' bus='virtio'/>
    </disk>
"""

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
create a VM from an iscsi pool template.

Now this patch do not touch the scsi code, so it does not support to create
a VM from an scsi pool template at present.

It just supports iscsi luns for template, and create a VM by this
template.

Will refactor the related code, and support the scsi lun at template
level.

1. how to test this patch:
create a iscsi pool named "my-iscsi" with UI

2.get the volumes name of this pool:
$ sudo virsh vol-list my-iscsi
Name                 Path
-----------------------------------------
unit:0:0:0 /dev/disk/by-id/wwn-0x60014056aefaef96d4e4033953d9627d

3. create a template with this pool like this:
$ curl -u shhfeng:123456 -H "Content-Type: application/json" \
> -H "Accept: application/json" \
>  http://localhost:8000/templates/ -X POST -d '
>  {
>     "cpus": 1,
>     "cdrom":"/home/shhfeng/iso/f17.iso",
>     "name":"F17-ISCSI",
> "storagepool":"/storagepools/my-iscsi",
>     "disks":[
>      {
>        "index":0,
>        "volume":"unit:0:0:0"
>      }
>    ]
> }'

4. create a VM with this template and start it.

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
create a VM from an scsi pool template

support to create a VM from a scsi pool template.

From the libvirt document:
we can create a lun disk for vm by two format:
    <disk type='volume' device='disk'>
      <driver name='qemu' type='raw'/>
      <source pool='scsi-pool' volume='unit:0:0:0' />
      <target dev='vda' bus='virtio'/>
    </disk>
and
    <disk type='block' device='lun'>
      <driver name='qemu' type='raw' cache='none'/>
      <source dev='/dev/disk'/>
      <target dev='sda' bus='scsi'/>
    </disk>

The later, VM disk is "block" and the device "lun", except that
generic SCSI commands from the guest are accepted and passed through to
the physical device, and this will only be recognized for actual raw devices.
This is high performance than the former.

But later, disk device='lun' is only valid for block type disk source.
It does not support a volume from a pool formate like:
<source pool='scsi-pool' volume='unit:0:0:0' />

So I assign the disk source is block instead of volume from a pool
in both passthrough or non-passthrough.

1. how to test this patch:
create a scsi pool named "my-scsi" by virsh

2.get the volumes name of this pool:
$ sudo virsh vol-list my-scsi
Name                 Path
-----------------------------------------
unit:0:0:0 /dev/disk/by-id/wwn-0x60014056aefaef96d4e4033953d9627d

3. create a template with this pool like this:
$ curl -u <user> -H "Content-Type: application/json" \
-H  "Accept: application/json" \
http://localhost:8000/templates/ -X POST  -d '
{
    "cpus": 1,
    "cdrom":"/home/shhfeng/iso/f17.iso",
    "name":"F17-SCSI",
    "storagepool":"/storagepools/my-scsi",
    "disks":[
     {
       "index":0,
       "volume":"unit:0:0:0"
     }
   ]
}'

4. create a VM with this template and start it.

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
UI: template edit page support scsi lun

User can choose a volume of scsi/iscsi pool from the template edit page.

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>