[Kimchi-devel] [PATCH v5] Backend support for templates with sockets, cores, and threads

Zhou Zheng Sheng zhshzhou at linux.vnet.ibm.com
Wed Oct 15 07:46:40 UTC 2014


on 2014/10/15 03:55, Christy Perez wrote:
> It turns out the tests are failing because of that cast to dict() that I
> took out in the last patchset. *That* is why I had put it in. It seems
> like the tests need some tweaking if I don't want to have to cast that
> to a dict(). Any preferences on whether to update a bunch of tests, or
> just have a cast for now?
> 

Since I suggested you remove the dict() call, I'm curious about the
error. So I tried to run "make check". I got some exceptions as follow.

ERROR: test_template_storage_customise (test_model.ModelTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/edward/src/kimchi/tests/test_model.py", line 629, in
test_template_storage_customise
    'test', params)
  File "/usr/lib64/python2.7/unittest/case.py", line 513, in assertRaises
    callableObj(*args, **kwargs)
  File "/home/edward/src/kimchi/src/kimchi/model/templates.py", line
186, in update
    if not self._validate_updated_cpu_params(new_t):
  File "/home/edward/src/kimchi/src/kimchi/model/templates.py", line
226, in _validate_updated_cpu_params
    topology = cpu_info.get('topology')
AttributeError: 'unicode' object has no attribute 'get'



ERROR: test_delete_running_vm (test_model.ModelTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/edward/src/kimchi/tests/test_model.py", line 1155, in
test_delete_running_vm
    inst.vms_create(params)
  File "/home/edward/src/kimchi/src/kimchi/model/vms.py", line 215, in
create
    volumes=vol_list)
  File "/home/edward/src/kimchi/src/kimchi/vmtemplate.py", line 386, in
to_vm_xml
    params['cpu_info'] = self._get_cpu_xml()
  File "/home/edward/src/kimchi/src/kimchi/vmtemplate.py", line 366, in
_get_cpu_xml
    cpu_topo = cpu_info.get('topology')
AttributeError: 'unicode' object has no attribute 'get'


I think they were because cpu_info was set to an empty string in
"TemplatesModel.create()", when there is no cpu_info.

In "VMTemplate._get_cpu_xml()" and
"TemplateModel._validate_updated_cpu_params()", it checks if cpu_info is
None, so it can safely use "cpu_info.get()" if it's not None. This means
that other parts of the code assumes cpu_info a dict. However in
"TemplatesModel.create()", it sets "params['cpu_info'] = ''", so it
breaks the assumption. Although empty string is not None, but it does
not provide dict-like access methods.

Maybe this is why the tests are failing. After I change it to
"params['cpu_info'] = None", the tests can pass.

> On 10/14/2014 01:51 PM, Christy Perez wrote:
>> I just ran the test suite on this, and there are some errors I need to
>> look into, so hold off on reviewing this until I sent a v6.
>>
>> Thanks,
>>

I also find that po and pot files are included in this patch. I think
it's better to update po and pot files in a separated patch.




More information about the Kimchi-devel mailing list