On 13-11-2014 04:46, simonjin wrote:
>> + if self.conn.get().getInfo()[0] !=
_destConn.getInfo()[0]:
>> + kimchi_log.debug('vm %s can not migrate to different
>> arch server.' % (name, _destConn.getInfo()[0]))
>> + raise OperationFailed("KCHVM00034E", {'name':
name,
>> + 'srcarch':
>> self.conn.get().getType(),
>> + 'destarch':
>> _destConn.getType()})
>
> 'srcarch' and 'destarch' don't seem to contain the servers'
> architectures, but their hypervisor type.
>
_destConn.getInfo()[0] contains the servers' architectures like x86_64
or ppc.
Exactly, but that's not what the exception parameters 'srcarch' and
'destarch' have. They contain the return of "getType".
>> + # Record vm migrate task for future querying
>> + try:
>> + with self.objstore as session:
>> + session.store('migrate', name, task_id)
>> + return task_id
>
> If I'm not mistaken, the AsyncTask constructor (which is called
> inside the function "add_task" above) already registers the task in
> the local object store.
No, it doesn't .
Please, take a look at the function "_save_helper" in
src/kimchi/asynctask.py. It is called from the AsyncTask constructor and
it registers the current task in the object store.
-Simon