[Kimchi-devel] [v3 1/1] Virtual machine migration

Crístian Viana vianac at linux.vnet.ibm.com
Fri Nov 14 14:19:56 UTC 2014


On 14-11-2014 07:04, simonjin wrote:
>> The code above is running "self.conn.get().getInfo()" more than once. 
>> You can store that value in a variable so you don't have to talk to 
>> libvirt multiple times.
>> Actually, "self.conn" is used in more places later in the code, so 
>> that value can also be stored in a separate value. Try not to contact 
>> libvirt several times for the same information, it has a performance 
>> cost.
>>
> self.conn it self doesn't cost anything.

But there's no need to declare a function parameter if the function 
doesn't use it.

>> Usually we keep the model objects as instance variables. That means 
>> that "vmhostdevs" should be declared in VMModel's constructor - along 
>> with many other model variables - as "self.vmhostdevs".
> Due to the reason in code that VMHostDevsModel can't be imported at 
> the top of the class, the workaround is import and get the instance here.

Err, you're right, we have a huge dependency problem in the code right 
now... So you should keep that.

>> As I commented in the previous e-mail thread, the function "add_task" 
>> will add the task to the object store. You don't need to do that.
>>
> Will need this to verify whether the vm is already in migration, right ?

You definitely need that task later to track the migration process but 
the function "add_task" already stores the task in the object store. I 
mean you shouldn't store it yourself because it's already done.

In order to check the migration task, you can lookup a task with the code:

task = taskmodel.lookup(taskid);

(where "taskmodel" is an instance of "TaskModel" and "taskid" is the 
Task ID)

if you have the Task ID, or:

alltasks = taskmodel.get_list()

if you don't have the ID and you want to inspect all tasks (probably 
filtering by its 'target_uri' to find out which of them is related to 
migration).




More information about the Kimchi-devel mailing list