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?
And independent on that, we still need to return the 'path' in addition
to 'dev' and 'type'