[Kimchi-devel] [PATCH] bug fix: Properly display missing parameter
Sheldon
shaohef at linux.vnet.ibm.com
Tue Feb 25 15:30:59 UTC 2014
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 at 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 at linux.vnet.ibm.com>
IBM Linux Technology Center
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140225/ae9c5ade/attachment.html>
More information about the Kimchi-devel
mailing list