[Kimchi-devel] [PATCH V1] Can not create a VM from a template with disks['volume'] parameters. #181

Shu Ming shuming at linux.vnet.ibm.com
Fri Feb 28 09:50:26 UTC 2014


The latest code have removed disks["volume"] from API.json, but API.md
was not updated accordingly. The in-consistence between API.json and
API.md should be corrected first. Then, the invalid code in
VMTemplate.validate_integrity() should also be cleaned.
---
 docs/API.md              | 1 -
 src/kimchi/vmtemplate.py | 9 ---------
 tests/test_model.py      | 4 +---
 tests/test_rest.py       | 4 +---
 4 files changed, 2 insertions(+), 16 deletions(-)

diff --git a/docs/API.md b/docs/API.md
index e97eace..fc39c65 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -161,7 +161,6 @@ Represents a snapshot of the Virtual Machine's primary monitor.
       (either *size* or *volume* must be specified):
         * index: The device index
         * size: The device size in GB
-        * volume: A volume name that contains the initial disk contents
 
     * graphics *(optional)*: The graphics paramenters of this template
         * type: The type of graphics. It can be VNC or spice or None.
diff --git a/src/kimchi/vmtemplate.py b/src/kimchi/vmtemplate.py
index f786fa5..3e52be5 100644
--- a/src/kimchi/vmtemplate.py
+++ b/src/kimchi/vmtemplate.py
@@ -361,15 +361,6 @@ class VMTemplate(object):
         except Exception:
             invalid['cdrom'] = [iso]
 
-        # validate disks integrity
-        volumes = []
-        for disk in self.info['disks']:
-            volume = disk.get("volume")
-            if volume is not None and not os.path.exists(volume):
-                volumes.append(volume)
-        if volumes:
-            invalid['disks'] = volumes
-
         self.info['invalid'] = invalid
 
         return self.info
diff --git a/tests/test_model.py b/tests/test_model.py
index 8bb1ccc..a08b3d9 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -468,8 +468,7 @@ class ModelTests(unittest.TestCase):
             iso_gen.construct_fake_iso(iso, True, '12.04', 'ubuntu')
 
             params = {'name': 'test', 'memory': 1024, 'cpus': 1,
-                      'networks': ['test-network'], 'cdrom': iso,
-                      'disks': [{'volume': iso}]}
+                      'networks': ['test-network'], 'cdrom': iso}
             inst.templates_create(params)
             rollback.prependDefer(inst.template_delete, 'test')
 
@@ -479,7 +478,6 @@ class ModelTests(unittest.TestCase):
             info = inst.template_lookup('test')
             self.assertEquals(info['invalid']['cdrom'], [iso])
             self.assertEquals(info['invalid']['networks'], [net_name])
-            self.assertEquals(info['invalid']['disks'], [iso])
 
     @unittest.skipUnless(utils.running_as_root(), 'Must be run as root')
     def test_template_clone(self):
diff --git a/tests/test_rest.py b/tests/test_rest.py
index d59882b..54530f3 100644
--- a/tests/test_rest.py
+++ b/tests/test_rest.py
@@ -1088,8 +1088,7 @@ class RestTests(unittest.TestCase):
         self.assertEquals(201, resp.status)
 
         t = {'name': 'test', 'memory': 1024, 'cpus': 1,
-             'networks': ['test-network'], 'cdrom': iso,
-             'disks': [{'volume': iso}]}
+             'networks': ['test-network'], 'cdrom': iso}
 
         req = json.dumps(t)
         resp = self.request('/templates', req, 'POST')
@@ -1104,7 +1103,6 @@ class RestTests(unittest.TestCase):
         res = json.loads(self.request('/templates/test').read())
         self.assertEquals(res['invalid']['cdrom'], [iso])
         self.assertEquals(res['invalid']['networks'], ['test-network'])
-        self.assertEquals(res['invalid']['disks'], [iso])
 
         # Delete the template
         resp = request(host, port, '/templates/test', '{}', 'DELETE')
-- 
1.8.1.4




More information about the Kimchi-devel mailing list