[Kimchi-devel] [PATCHv3 2/2] disk attachment: limit ref_cnt check to disk attachment

Sheldon shaohef at linux.vnet.ibm.com
Mon Jun 2 13:33:52 UTC 2014


Reviewed-by: ShaoHe Feng <shaohef at linux.vnet.ibm.com>

On 05/26/2014 04:37 PM, lvroyce at linux.vnet.ibm.com wrote:
> From: Royce Lv <lvroyce at linux.vnet.ibm.com>
>
> CDROM can be shared by multiple vms, so we shall not check its ref_cnt.
> We limit ref_cnt checking just to disk attachment.
>
> Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
> ---
>   src/kimchi/model/vmstorages.py | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/src/kimchi/model/vmstorages.py b/src/kimchi/model/vmstorages.py
> index 4d90265..8a35a79 100644
> --- a/src/kimchi/model/vmstorages.py
> +++ b/src/kimchi/model/vmstorages.py
> @@ -160,10 +160,11 @@ class VMStoragesModel(object):
>                   raise InvalidParameter("KCHVMSTOR0012E")
>               except Exception as e:
>                   raise InvalidParameter("KCHVMSTOR0015E", {'error': e})
> -            if vol_info['ref_cnt'] != 0:
> +            if vol_info['ref_cnt'] != 0 and params['type'] == 'disk':
>                   raise InvalidParameter("KCHVMSTOR0016E")
>               params['format'] = vol_info['format']
>               params['path'] = vol_info['path']
> +
>           params['src_type'] = _check_path(params['path'])
>           params.setdefault(
>               'bus', _get_device_bus(params['type'], dom))
> @@ -178,12 +179,15 @@ class VMStoragesModel(object):
>               conn = self.conn.get()
>               dom = conn.lookupByName(vm_name)
>               dom.attachDeviceFlags(dev_xml, libvirt.VIR_DOMAIN_AFFECT_CURRENT)
> +
> +        except Exception as e:
> +            raise OperationFailed("KCHVMSTOR0008E", {'error': e.message})
> +
> +        if params.get('vol'):
>               with self.objstore as session:
>                   session.store('storagevolume', vol_id,
>                                 {'ref_cnt': vol_info['ref_cnt'] + 1})
>
> -        except Exception as e:
> -            raise OperationFailed("KCHVMSTOR0008E", {'error': e.message})
>           return params['dev']
>
>       def _get_storage_device_name(self, vm_name):


-- 
Thanks and best regards!

Sheldon Feng(冯少合)<shaohef at linux.vnet.ibm.com>
IBM Linux Technology Center




More information about the Kimchi-devel mailing list