From 803c78217d6de454bc06600fe3e184afe90d9ac4 Mon Sep 17 00:00:00 2001
From: Bach Dániel <bd@ik.bme.hu>
Date: Mon, 29 Sep 2014 21:25:43 +0200
Subject: [PATCH] vm: fix MigrateOperation (Unhandled exception: 'NoneType' object has no attribute 'host')

---
 circle/vm/models/instance.py | 7 +++++++
 circle/vm/operations.py      | 3 ++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/circle/vm/models/instance.py b/circle/vm/models/instance.py
index bad9d54..1c9de51 100644
--- a/circle/vm/models/instance.py
+++ b/circle/vm/models/instance.py
@@ -920,6 +920,13 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin,
         delete_dump.apply_async(args=[self.mem_dump['path']],
                                 queue=queue_name).get(timeout=timeout)
 
+    def reallocate_node(self, activity):
+        with activity.sub_activity(
+                'scheduling',
+                readable_name=ugettext_noop("schedule")) as sa:
+            sa.result = node = self.select_node()
+            return node
+
     def allocate_node(self, activity):
         if self.node is not None:
             return None
diff --git a/circle/vm/operations.py b/circle/vm/operations.py
index 53d5e8c..9628720 100644
--- a/circle/vm/operations.py
+++ b/circle/vm/operations.py
@@ -398,7 +398,7 @@ class MigrateOperation(InstanceOperation):
 
     def _operation(self, activity, to_node=None, timeout=120):
         if not to_node:
-            self.instance.allocate_node(activity)
+            to_node = self.instance.reallocate_node(activity)
         try:
             with activity.sub_activity(
                 'migrate_vm', readable_name=create_readable(
@@ -418,6 +418,7 @@ class MigrateOperation(InstanceOperation):
         # Refresh node information
         self.instance.node = to_node
         self.instance.save()
+
         # Estabilish network connection (vmdriver)
         with activity.sub_activity(
             'deploying_net', readable_name=ugettext_noop(
--
libgit2 0.26.0