On 2014年02月26日 01:40, Aline Manera wrote:
On 02/25/2014 05:35 AM, lvroyce(a)linux.vnet.ibm.com wrote:
> From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
>
> When vm disk does not have source element,
> objectify library will error with 'no such element: source'
> Trap this exception.
>
> Signed-off-by: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
> ---
> src/kimchi/model/vmstorages.py | 23 +++++++++++++----------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/src/kimchi/model/vmstorages.py
> b/src/kimchi/model/vmstorages.py
> index 7796f30..44b49df 100644
> --- a/src/kimchi/model/vmstorages.py
> +++ b/src/kimchi/model/vmstorages.py
> @@ -167,17 +167,20 @@ class VMStorageModel(object):
> if disk is None:
> raise NotFoundError("KCHCDROM0007E", {'dev_name': dev_name,
> 'vm_name': vm_name})
> - source = disk.source
> path = ""
> - if source is not None:
> - src_type = disk.attrib['type']
> - if src_type == 'network':
> - host = source.host
> - path = (source.attrib['protocol'] + '://' +
> - host.attrib['name'] + ':' +
> - host.attrib['port'] + source.attrib['name'])
> - else:
> - path = source.attrib[DEV_TYPE_SRC_ATTR_MAP[src_type]]
> + try:
> + source = disk.source
> + if source is not None:
> + src_type = disk.attrib['type']
> + if src_type == 'network':
> + host = source.host
> + path = (source.attrib['protocol'] + '://' +
> + host.attrib['name'] + ':' +
> + host.attrib['port'] + source.attrib['name'])
> + else:
> + path = source.attrib[DEV_TYPE_SRC_ATTR_MAP[src_type]]
> + except:
> + pass
> dev_type = disk.attrib['device']
> return {'dev': dev_name,
> 'type': dev_type,
Q. When is there no 'source' element?
I have a vm in virtmanager, which
disconnect the cdrom(media-ejected)
this does not have any source and run the previous code,
error raise.
And independent on that, we still need to return the 'path' in
addition to 'dev' and 'type'
ACK