[Kimchi-devel] [PATCH 3/3] create a VM from an iscsi pool template.

shaohef at linux.vnet.ibm.com shaohef at linux.vnet.ibm.com
Thu Mar 20 10:35:41 UTC 2014


From: ShaoHe Feng <shaohef at linux.vnet.ibm.com>

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 at linux.vnet.ibm.com>
---
 src/kimchi/model/vms.py  | 4 +++-
 src/kimchi/vmtemplate.py | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/kimchi/model/vms.py b/src/kimchi/model/vms.py
index 79b335c..f962cbb 100644
--- a/src/kimchi/model/vms.py
+++ b/src/kimchi/model/vms.py
@@ -184,7 +184,9 @@ class VMsModel(object):
         # If storagepool is SCSI, volumes will be LUNs and must be passed by
         # the user from UI or manually.
         vol_list = []
-        if t._get_storage_type() in READONLY_POOL_TYPE:
+        if t._get_storage_type() == "iscsi":
+            vol_list = []
+        elif t._get_storage_type() in READONLY_POOL_TYPE:
             if not params.get('volumes'):
                 raise MissingParameter('KCHVM0017E')
             else:
diff --git a/src/kimchi/vmtemplate.py b/src/kimchi/vmtemplate.py
index 5e84c55..d13f714 100644
--- a/src/kimchi/vmtemplate.py
+++ b/src/kimchi/vmtemplate.py
@@ -305,7 +305,9 @@ class VMTemplate(object):
 
         # Current implementation just allows to create disk in one single
         # storage pool, so we cannot mix the types (scsi volumes vs img file)
-        if self._get_storage_type() in READONLY_POOL_TYPE:
+        if self._get_storage_type() == "iscsi":
+            params['disks'] = self._get_iscsi_disks_xml()
+        elif self._get_storage_type() in READONLY_POOL_TYPE:
             params['disks'] = self._get_scsi_disks_xml(kwargs.get('volumes'))
         else:
             params['disks'] = self._get_disks_xml(vm_uuid)
-- 
1.8.5.3




More information about the Kimchi-devel mailing list