[PATCH] [Kimchi 0/2] Bug fix #1091: Allow to set disk performance options per guest and template

Allow disk bus to be specified on creation based on commits: Allow disks to update cache and io flags Add tests to verify if cache and io of a disk can be changed Ramon Medeiros (2): Bug fix #1091: Allow to set disk performance options per guest and template Add tests for disk creation with specified bus driver model/vmstorages.py | 4 +++- tests/test_model.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) -- 2.9.3

Allow vmstorage creation passing disk bus Signed-off-by: Ramon Medeiros <ramonn@linux.vnet.ibm.com> --- model/vmstorages.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/model/vmstorages.py b/model/vmstorages.py index 143225c..b123b50 100644 --- a/model/vmstorages.py +++ b/model/vmstorages.py @@ -91,7 +91,9 @@ class VMStoragesModel(object): raise InvalidParameter("KCHVMSTOR0019E") dom = VMModel.get_vm(vm_name, self.conn) - params['bus'] = _get_device_bus(params['type'], dom) + + if params.get('bus') == None: + params['bus'] = _get_device_bus(params['type'], dom) if is_s390x() and params['type'] == 'disk' and 'dir_path' in params: if 'format' not in params: -- 2.9.3

On 03/03/2017 05:33 PM, Ramon Medeiros wrote:
Allow vmstorage creation passing disk bus
Signed-off-by: Ramon Medeiros <ramonn@linux.vnet.ibm.com> --- model/vmstorages.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/model/vmstorages.py b/model/vmstorages.py index 143225c..b123b50 100644 --- a/model/vmstorages.py +++ b/model/vmstorages.py @@ -91,7 +91,9 @@ class VMStoragesModel(object): raise InvalidParameter("KCHVMSTOR0019E")
dom = VMModel.get_vm(vm_name, self.conn) - params['bus'] = _get_device_bus(params['type'], dom) +
+ if params.get('bus') == None: + params['bus'] = _get_device_bus(params['type'], dom)
Just a tip. Some recent pep8 version requires to be "is None" instead of ==
if is_s390x() and params['type'] == 'disk' and 'dir_path' in params: if 'format' not in params:

Please, update docs and API.json. Is there a set o bus values to avoid user mistakes? On 03/03/2017 05:33 PM, Ramon Medeiros wrote:
Allow vmstorage creation passing disk bus
Signed-off-by: Ramon Medeiros <ramonn@linux.vnet.ibm.com> --- model/vmstorages.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/model/vmstorages.py b/model/vmstorages.py index 143225c..b123b50 100644 --- a/model/vmstorages.py +++ b/model/vmstorages.py @@ -91,7 +91,9 @@ class VMStoragesModel(object): raise InvalidParameter("KCHVMSTOR0019E")
dom = VMModel.get_vm(vm_name, self.conn) - params['bus'] = _get_device_bus(params['type'], dom) + + if params.get('bus') == None: + params['bus'] = _get_device_bus(params['type'], dom)
if is_s390x() and params['type'] == 'disk' and 'dir_path' in params: if 'format' not in params:

Signed-off-by: Ramon Medeiros <ramonn@linux.vnet.ibm.com> --- tests/test_model.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/test_model.py b/tests/test_model.py index e49e556..03101f6 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -808,6 +808,17 @@ class ModelTests(unittest.TestCase): self.assertRaises(InvalidParameter, inst.vmstorages_create, vm_name, cdrom_args) + # try add disk with specified bus + disk_args = {"type": "disk", + "pool": pool, + "vol": vol, + "bus": "scsi"} + disk = inst.vmstorages_create(vm_name, disk_args) + disk_info = inst.vmstorage_lookup(vm_name, disk) + self.assertEquals("scsi", disk_info['bus']) + self.assertTrue(disk_info["dev"].startswith("sd")) + inst.vmstorage_delete(vm_name, disk) + # Cold plug and unplug a disk disk = _attach_disk() inst.vmstorage_delete(vm_name, disk) -- 2.9.3

Ramon, add tests using the REST API too. On 03/03/2017 05:33 PM, Ramon Medeiros wrote:
Signed-off-by: Ramon Medeiros <ramonn@linux.vnet.ibm.com> --- tests/test_model.py | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/tests/test_model.py b/tests/test_model.py index e49e556..03101f6 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -808,6 +808,17 @@ class ModelTests(unittest.TestCase): self.assertRaises(InvalidParameter, inst.vmstorages_create, vm_name, cdrom_args)
+ # try add disk with specified bus + disk_args = {"type": "disk", + "pool": pool, + "vol": vol, + "bus": "scsi"} + disk = inst.vmstorages_create(vm_name, disk_args) + disk_info = inst.vmstorage_lookup(vm_name, disk) + self.assertEquals("scsi", disk_info['bus']) + self.assertTrue(disk_info["dev"].startswith("sd")) + inst.vmstorage_delete(vm_name, disk) + # Cold plug and unplug a disk disk = _attach_disk() inst.vmstorage_delete(vm_name, disk)
participants (2)
-
Aline Manera
-
Ramon Medeiros