On 2014年05月15日 22:32, Sheldon wrote:
On 05/13/2014 05:51 PM, lvroyce(a)linux.vnet.ibm.com wrote:
> From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
>
> CDROM can be shared by multiple vms, so we shall not check its ref_cnt.
>
> Signed-off-by: Royce Lv <lvroyce(a)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 cf9748f..cff3108 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':
now you just support disk and CDROM, will support other type? what
about other type?
params['type'] != 'CDROM'
The other types will be rejected by json
schema
> 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:
> ref_cnt = 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):