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

Guannan Ren gren at redhat.com
Thu Oct 13 12:04:14 UTC 2011


On 10/13/2011 07:30 PM, Wayne Sun wrote:
>    * 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")

     ACK and pushed.

     Guannan Ren




More information about the libvir-list mailing list