[Kimchi-devel] [PATCH] bug fix: Properly display missing parameter

Aline Manera alinefm at linux.vnet.ibm.com
Tue Feb 25 14:47:20 UTC 2014


On 02/25/2014 12:25 AM, Sheldon wrote:
> On 02/24/2014 10:25 PM, Aline Manera wrote:
>> From: Aline Manera <alinefm at br.ibm.com>
>>
>> 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

>>
>> 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
>
>>
>>           if name in self._mock_storagepools or name in 
>> (ISO_POOL_NAME,):
>>               raise InvalidOperation("KCHPOOL0001E", {'name': name})
>> @@ -428,7 +428,7 @@ class MockModel(object):
>>                   pool.info['path'], name)
>>           except KeyError, item:
>>               raise MissingParameter("KCHVOL0004E",
>> -                                   {'item': item, 'volume': name})
>> +                                   {'item': str(item), 'volume': name})
>>
>>           if name in pool._volumes:
>>               raise InvalidOperation("KCHVOL0001E", {'name': name})
>> diff --git a/src/kimchi/model/storagepools.py 
>> b/src/kimchi/model/storagepools.py
>> index cf66a86..011feb0 100644
>> --- a/src/kimchi/model/storagepools.py
>> +++ b/src/kimchi/model/storagepools.py
>> @@ -90,7 +90,7 @@ class StoragePoolsModel(object):
>>               xml = poolDef.xml.encode("utf-8")
>>           except KeyError, item:
>>               raise MissingParameter("KCHPOOL0004E",
>> -                                   {'item': item, 'name': name})
>> +                                   {'item': str(item), 'name': name})
>>
>>           if name in self.get_list():
>>               raise InvalidOperation("KCHPOOL0001E", {'name': name})
>> diff --git a/src/kimchi/model/storagevolumes.py 
>> b/src/kimchi/model/storagevolumes.py
>> index 20c65b9..6bd6ded 100644
>> --- a/src/kimchi/model/storagevolumes.py
>> +++ b/src/kimchi/model/storagevolumes.py
>> @@ -62,7 +62,7 @@ class StorageVolumesModel(object):
>>               pool = StoragePoolModel.get_storagepool(pool, self.conn)
>>               xml = vol_xml % params
>>           except KeyError, item:
>> -            raise MissingParameter("KCHVOL0004E", {'item': item,
>> +            raise MissingParameter("KCHVOL0004E", {'item': str(item),
>>                                                      'volume': name})
>>
>>           try:
>> diff --git a/src/kimchi/root.py b/src/kimchi/root.py
>> index 4a1a9cd..08056d2 100644
>> --- a/src/kimchi/root.py
>> +++ b/src/kimchi/root.py
>> @@ -106,7 +106,7 @@ class KimchiRoot(Root):
>>               userid = params['userid']
>>               password = params['password']
>>           except KeyError, item:
>> -            e = MissingParameter('KCHAUTH0003E', {'item': item})
>> +            e = MissingParameter('KCHAUTH0003E', {'item': str(item)})
>>               raise cherrypy.HTTPError(400, e.message)
>>
>>           try:
>
>




More information about the Kimchi-devel mailing list