Add -s --ssl option to xm migrate
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 23 May 2008 09:42:11 +0000 (10:42 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 23 May 2008 09:42:11 +0000 (10:42 +0100)
This patch adds -s --ssl option to xm migrate. It will override
xend-relocation-ssl setting in /etc/xen/xend-config.sxp.

When mix deploy xen 3.2 and xen 3.3 servers, it's convenient to have a
command line option rather than modify /etc/xen/xend-config.sxp every
time.

Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
tools/python/xen/xend/XendAPI.py
tools/python/xen/xend/XendDomain.py
tools/python/xen/xend/server/SrvDomain.py
tools/python/xen/xm/migrate.py

index 354e9aab8ab2ed3b8f72e06655e0a9b0de86303c..ec527ef104a286c76950f07aa6d23eb289b14ea2 100644 (file)
@@ -1762,9 +1762,10 @@ class XendAPI(object):
         resource = other_config.get("resource", 0)
         port = other_config.get("port", 0)
         node = other_config.get("node", 0)
+        ssl = other_config.get("ssl", 0)
         
         xendom.domain_migrate(xeninfo.getDomid(), destination_url,
-                              bool(live), resource, port, node)
+                              bool(live), resource, port, node, ssl)
         return xen_api_success_void()
 
     def VM_save(self, _, vm_ref, dest, checkpoint):
index 0c6483f2c1be2f4679822439dbb4f9340410dac2..a34ebb3908526e1965fd91c859ad6b94732ae33a 100644 (file)
@@ -1258,7 +1258,7 @@ class XendDomain:
 
         return val       
 
-    def domain_migrate(self, domid, dst, live=False, port=0, node=-1):
+    def domain_migrate(self, domid, dst, live=False, port=0, node=-1, ssl=None):
         """Start domain migration.
         
         @param domid: Domain ID or Name
@@ -1269,6 +1269,8 @@ class XendDomain:
         @type port: int        
         @keyword live: Live migration
         @type live: bool
+        @keyword ssl: use ssl connection
+        @type ssl: bool
         @rtype: None
         @keyword node: use node number for target
         @rtype: int 
@@ -1294,7 +1296,9 @@ class XendDomain:
             """ Make sure there's memory free for enabling shadow mode """
             dominfo.checkLiveMigrateMemory()
 
-        ssl = xoptions.get_xend_relocation_ssl()
+        if ssl is None:
+            ssl = xoptions.get_xend_relocation_ssl()
+
         if ssl:
             from OpenSSL import SSL
             from xen.web import connection
index 92944ae06d05200a588db825c6ded8430323ee61..d0ac51867405505c9323df1d3af9a6e76c286554 100644 (file)
@@ -115,7 +115,8 @@ class SrvDomain(SrvDir):
                     [['dom',         'int'],
                      ['destination', 'str'],
                      ['live',        'int'],
-                     ['port',        'int']])
+                     ['port',        'int'],
+                     ['ssl',         'int']])
         return fn(req.args, {'dom': self.dom.domid})
 
     def op_pincpu(self, _, req):
index ace3ba7f34d4c2f77d9fa8766ca05f9f245dfeee..ee990e0b4d03aa161f246a8d520beb911595f864 100644 (file)
@@ -47,6 +47,10 @@ gopts.opt('node', short='n', val='nodenum',
           fn=set_int, default=-1,
           use="Use specified NUMA node on target.")
 
+gopts.opt('ssl', short='s',
+          fn=set_true, default=None,
+          use="Use ssl connection for migration.")
+
 def help():
     return str(gopts)
     
@@ -65,11 +69,13 @@ def main(argv):
         vm_ref = get_single_vm(dom)
         other_config = {
             "port":     opts.vals.port,
-            "node":     opts.vals.node
+            "node":     opts.vals.node,
+            "ssl":      opts.vals.ssl
             }
         server.xenapi.VM.migrate(vm_ref, dst, bool(opts.vals.live),
                                  other_config)
     else:
         server.xend.domain.migrate(dom, dst, opts.vals.live,
                                    opts.vals.port,
-                                   opts.vals.node)
+                                   opts.vals.node,
+                                   opts.vals.ssl)