[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] relocate.py, SrvDomain.py, XendDomain.py:



ChangeSet 1.1550.1.4, 2005/05/25 18:18:43+01:00, cl349@xxxxxxxxxxxxxxxxxxxx

        relocate.py, SrvDomain.py, XendDomain.py:
          Support vm relocation using XendCheckpoint.
        Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>



 XendDomain.py       |    6 ++++++
 server/SrvDomain.py |   10 +---------
 server/relocate.py  |   14 ++++++++++++++
 3 files changed, 21 insertions(+), 9 deletions(-)


diff -Nru a/tools/python/xen/xend/XendDomain.py 
b/tools/python/xen/xend/XendDomain.py
--- a/tools/python/xen/xend/XendDomain.py       2005-05-25 14:02:20 -04:00
+++ b/tools/python/xen/xend/XendDomain.py       2005-05-25 14:02:20 -04:00
@@ -14,6 +14,7 @@
 
 import xen.lowlevel.xc; xc = xen.lowlevel.xc.new()
 
+from xen.xend.server import relocate
 import sxp
 import XendRoot; xroot = XendRoot.instance()
 import XendCheckpoint
@@ -510,6 +511,11 @@
         # Need a cancel too?
         # Don't forget to cancel restart for it.
         dominfo = self.domain_lookup(id)
+
+        port = xroot.get_xend_relocation_port()
+        sock = relocate.setupRelocation(dst, port)
+
+        XendCheckpoint.save(self, sock.fileno(), dominfo)
         return None
 
     def domain_save(self, id, dst, progress=False):
diff -Nru a/tools/python/xen/xend/server/SrvDomain.py 
b/tools/python/xen/xend/server/SrvDomain.py
--- a/tools/python/xen/xend/server/SrvDomain.py 2005-05-25 14:02:20 -04:00
+++ b/tools/python/xen/xend/server/SrvDomain.py 2005-05-25 14:02:20 -04:00
@@ -75,15 +75,7 @@
                      ['destination', 'str'],
                      ['live',        'int'],
                      ['resource',    'int']])
-        info = fn(req.args, {'dom': self.dom.id})
-        #req.setResponseCode(http.ACCEPTED)
-        host = info.dst_host
-        port = info.dst_port
-        dom  = info.dst_dom
-        url = "http://%s:%d/xend/domain/%d"; % (host, port, dom)
-        req.setHeader("Location", url)
-        print 'do_migrate> url=', url
-        return url
+        return fn(req.args, {'dom': self.dom.id})
 
     def op_pincpu(self, op, req):
         fn = FormFn(self.xd.domain_pincpu,
diff -Nru a/tools/python/xen/xend/server/relocate.py 
b/tools/python/xen/xend/server/relocate.py
--- a/tools/python/xen/xend/server/relocate.py  2005-05-25 14:02:20 -04:00
+++ b/tools/python/xen/xend/server/relocate.py  2005-05-25 14:02:20 -04:00
@@ -1,3 +1,5 @@
+
+import socket
 import sys
 import StringIO
 
@@ -123,3 +125,15 @@
         port = xroot.get_xend_relocation_port()
         interface = xroot.get_xend_relocation_address()
         reactor.listenTCP(port, factory, interface=interface)
+
+def setupRelocation(dst, port):
+    try:
+        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        sock.connect((dst, port))
+    except socket.error, err:
+        raise XendError("can't connect: %s" % err[1])
+
+    sock.send("receive\n")
+    print sock.recv(80)
+
+    return sock

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.