nodemanagerservice: make note on communication
qemu: keep track of my nodemanager service
qemu: force started instances to have my hostId

git-svn-id: https://svn.apache.org/repos/asf/incubator/tashi/trunk@1370639 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/tashi/nodemanager/nodemanagerservice.py b/src/tashi/nodemanager/nodemanagerservice.py
index f0aaa8a..3a6055e 100755
--- a/src/tashi/nodemanager/nodemanagerservice.py
+++ b/src/tashi/nodemanager/nodemanagerservice.py
@@ -77,6 +77,7 @@
 
 		self.id = None
 		# XXXstroucki this fn could be in this level maybe?
+		# note we are passing our information down to the VMM here.
 		self.host = self.vmm.getHostInfo(self)
 
 		# populate self.instances
diff --git a/src/tashi/nodemanager/vmcontrol/qemu.py b/src/tashi/nodemanager/vmcontrol/qemu.py
index 1ddb679..f7b68e8 100644
--- a/src/tashi/nodemanager/vmcontrol/qemu.py
+++ b/src/tashi/nodemanager/vmcontrol/qemu.py
@@ -100,6 +100,8 @@
 
 		self.log = logging.getLogger(__file__)
 		self.ifPrefix = "tashi"
+		# keep a handle to my NM service
+		self.service = None
 		self.controlledVMs = {}
 		self.hostname = socket.gethostname()
 		self.usedPorts = []
@@ -408,8 +410,9 @@
 	# extern
 	def getHostInfo(self, service):
 		host = Host()
-		host.id = service.id
 		host.name = self.hostname
+		self.service = service
+		host.id = self.service.id
 
 		# Linux specific
 		memoryStr = open("/proc/meminfo","r").readline().strip().split()
@@ -590,6 +593,10 @@
 
 		# parent process
 		os.close(pipe_w)
+
+		# enforce the new instance to have our hostId!
+		# otherwise, a migrated VM will have its previous hostId.
+		instance.hostId = self.service.id
 		child = self.anonClass(pid=pid, instance=instance, stderr=os.fdopen(pipe_r, 'r'), migratingOut = False, monitorHistory=[], errorBit = True, OSchild = True)
 		child.ptyFile = None
 		child.vncPort = -1