[Kimchi-devel] [PATCH] Fix Key Error when editing CD ROM path

Christy Perez christy at linux.vnet.ibm.com
Wed Jul 30 15:16:40 UTC 2014


On 07/29/2014 10:27 PM, Royce Lv wrote:
> +1 for this one,
> we have not tested add url link based cdrom,
> could you also add a test case for this scenario in test_model.py so
> that we can prevent regression?

Sure!

Just FYI: In order to hit this issue, you don't have to do an add of a
CD ROM. This was hit when editing (swapping?) the CD ROM that's there
because the VM was created using a remote-iso-based template. It's also
going to be hit with Manage Media.

I'll work on the tests, but I'm assuming it's okay to merge this fix
without them.

> 
> On 2014年07月30日 06:48, Christy Perez wrote:
>> lxml only accepts strings as parameters when looking
>> up xml elements. The port for remote ISO was being
>> passed in as an int, and a KeyError was thrown.
>>
>> This patch just casts the ints to strings for the
>> lookups.
>>
>> Signed-off-by: Christy Perez <christy at linux.vnet.ibm.com>
>> ---
>>   src/kimchi/model/vmstorages.py | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/kimchi/model/vmstorages.py
>> b/src/kimchi/model/vmstorages.py
>> index cd985fa..5543f40 100644
>> --- a/src/kimchi/model/vmstorages.py
>> +++ b/src/kimchi/model/vmstorages.py
>> @@ -68,7 +68,8 @@ def _get_storage_xml(params, ignore_source=False):
>>       if src_type == 'network':
>>           output = urlparse.urlparse(params.get('path'))
>>           host = E.host(name=output.hostname, port=
>> -                      output.port or
>> socket.getservbyname(output.scheme))
>> +                      str(output.port) or
>> +                      str(socket.getservbyname(output.scheme)))
>>           source = E.source(protocol=output.scheme, name=output.path)
>>           source.append(host)
>>           disk.append(source)
> 
Regards,

- Christy




More information about the Kimchi-devel mailing list