
On 02/25/2014 11:02 PM, Aline Manera wrote:
On 02/25/2014 11:56 AM, Sheldon wrote:
On 02/25/2014 10:47 PM, Aline Manera wrote:
The exception instance was being used as the missing parameter what is causing errors like below:
is KeyError?
dic = {"a": "a"} In [124]: dic['b'] ---------------------------------------------------------------------------
KeyError: 'b'
or TypeError?
TypeError: coercing to Unicode: need string or buffer, exceptions.KeyError found
As you can see the TypeError is caused by an KeyError as I comment as follow: except KeyError, item: key is better than item?
why? it is a reference to the exception But I am OK with both
sure. it is a reference. and agree it is not the scope of this patch. item is just some confused. Though it is OK. For example: In [168]: dog_owned_by = {'Peter': 'Furry', 'Sally': 'Fluffy'} In [169]: dog_owned_by['NoExit'] KeyError: 'NoExit' *which are keys:* In [170]: dog_owned_by.keys() Out[170]: ['Peter', 'Sally'] *what are items:* In [171]: dog_owned_by.items() Out[171]: [('Peter', 'Furry'), ('Sally', 'Fluffy')]
Anyway, this is not the scope of this patch
To fix use the string representation for the exception instance.
Signed-off-by: Aline Manera <alinefm@br.ibm.com> --- src/kimchi/mockmodel.py | 4 ++-- src/kimchi/model/storagepools.py | 2 +- src/kimchi/model/storagevolumes.py | 2 +- src/kimchi/root.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/kimchi/mockmodel.py b/src/kimchi/mockmodel.py index b50bf31..b23a024 100644 --- a/src/kimchi/mockmodel.py +++ b/src/kimchi/mockmodel.py @@ -367,7 +367,7 @@ class MockModel(object): pool.info['autostart'] = False except KeyError, item: raise MissingParameter("KCHPOOL0004E", - {'item': item, 'name': name}) + {'item': str(item), 'name': name})
except KeyError, key: key is right than item
here.
if name in self._mock_storagepools or name in (ISO_POOL_NAME,): raise InvalidOperation("KCHPOOL0001E", {'name': name})
-- Thanks and best regards! Sheldon Feng(冯少合)<shaohef@linux.vnet.ibm.com> IBM Linux Technology Center