[libvirt] [test-API][PATCH 1/5] Remove remote_guest_define function in migrate

Wayne Sun gsun at redhat.com
Thu Oct 13 11:30:22 UTC 2011


  * this function will fail when domain is created on local, no
    persistent config xml generated, so can't be copied and used
    on dst for define domain
---
 repos/domain/migrate.py |   31 +++++--------------------------
 1 files changed, 5 insertions(+), 26 deletions(-)

diff --git a/repos/domain/migrate.py b/repos/domain/migrate.py
index 6b86188..5414c32 100644
--- a/repos/domain/migrate.py
+++ b/repos/domain/migrate.py
@@ -64,7 +64,6 @@ from exception import LibvirtAPI
 
 SSH_KEYGEN = "ssh-keygen -t rsa"
 SSH_COPY_ID = "ssh-copy-id"
-GUEST_XML = "/etc/libvirt/qemu/%s.xml"
 
 def exec_command(logger, command, flag):
     """execute shell command
@@ -167,28 +166,6 @@ def ssh_tunnel(hostname, username, password, logger):
 
     return 0
 
-def remote_guest_define(target_machine, username, guestname, logger):
-    """copy guest xml description to target machine and define it"""
-    xml_file = GUEST_XML % guestname
-
-    if not os.path.exists(xml_file):
-        logger.error("guest %s xml file doesn't exsits" % guestname)
-        return 1
-
-    SCP_CMD = "scp %s %s@%s:/tmp" %(xml_file, username, target_machine)
-    status, ret = exec_command(logger, SCP_CMD, 0)
-    if status:
-        logger.error("copy guest file failed")
-        return 1
-
-    VIRSH_DEFINE = "ssh %s \"virsh define /tmp/%s.xml\"" % (target_machine, guestname)
-    status, ret = exec_command(logger, VIRSH_DEFINE, 0)
-    if status:
-        logger.error("faied to define guest on target machine")
-        return 1
-
-    return 0
-
 def migrate(params):
     """ migrate a guest back and forth between two machines"""
     logger = params['logger']
@@ -258,12 +235,14 @@ def migrate(params):
     dstdom = DomainAPI(dst)
 
     if predstconfig == "true":
-        ret = remote_guest_define(target_machine, username, guestname, logger)
-        if ret:
+        guest_names = dstdom.get_defined_list()
+        if guestname in guest_names:
+            logger.info("Dst VM exists")
+        else:
+            logger.error("Dst VM missing config, should define VM on Dst first")
             env_clean(src, dst, srcdom, dstdom, target_machine, guestname, logger)
             return 1
 
-
     try:
         if(migflags & VIR_MIGRATE_PEER2PEER):
             logger.info("use migrate_to_uri() API to migrate")
-- 
1.7.1




More information about the libvir-list mailing list