On 03/16/2012 10:03 AM, tangchen wrote:
> This patch adds 3 API for libvirt_vm.
>       1) vm.define()
>       2) vm.attach_interface()
>       3) vm.detach_interface()
>
It looks good for me. thanks.
> Signed-off-by: Tang Chen<tangc...@cn.fujitsu.com>
> ---
>   client/virt/libvirt_vm.py |   52 
> +++++++++++++++++++++++++++++++++++++++++++++
>   1 files changed, 52 insertions(+), 0 deletions(-)
>
> diff --git a/client/virt/libvirt_vm.py b/client/virt/libvirt_vm.py
> index 903f03f..9a93880 100644
> --- a/client/virt/libvirt_vm.py
> +++ b/client/virt/libvirt_vm.py
> @@ -431,6 +431,39 @@ def virsh_migrate(options, name, dest_uri, extra, uri = 
> ""):
>           return False
>       return True
>
> +def virsh_attach_interface(name, type, extra = "", uri = ""):
> +    """
> +    Attach a nic to VM.
> +    """
> +    cmd = "attach-interface --domain %s " % name
> +    if type not in ('bridge', 'network', 'user', 'ethernet', 'direct', \
> +                    'hostdev', 'mcast', 'server', 'client', ''):
> +        logging.error("Unknown interface type.")
> +        return False
> +    cmd += "--type %s %s" % (type, extra)
> +    try:
> +        virsh_cmd(cmd, uri)
> +        return True
> +    except error.CmdError, detail:
> +        logging.error("Attaching interface to %s failed.\n%s" % (name, 
> detail))
> +        return False
> +
> +def virsh_detach_interface(name, type, extra = "", uri = ""):
> +    """
> +    Detach a nic from VM.
> +    """
> +    cmd = "detach-interface --domain %s " % name
> +    if type not in ('bridge', 'network', 'user', 'ethernet', 'direct', \
> +                    'hostdev', 'mcast', 'server', 'client', ''):
> +        logging.error("Unknown interface type.")
> +        return False
> +    cmd += "--type %s %s" % (type, extra)
> +    try:
> +        virsh_cmd(cmd, uri)
> +        return True
> +    except error.CmdError, detail:
> +        logging.error("Detaching interface from %s failed.\n%s" % (name, 
> detail))
> +        return False
>
>   def virsh_attach_device(name, xml_file, extra = "", uri = ""):
>       """
> @@ -555,6 +588,14 @@ class VM(virt_vm.BaseVM):
>           else:
>               return False
>
> +    def define(self, path):
> +        """
> +        Define the VM.
> +        """
> +        if not os.path.exists(path):
> +            logging.error("File %s not found." % path)
> +            return False
> +        return virsh_define(path, self.connect_uri)
>
>       def undefine(self):
>           """
> @@ -1212,6 +1253,17 @@ class VM(virt_vm.BaseVM):
>               self.connect_uri = dest_uri
>           return result
>
> +    def attach_interface(self, type, extra = ""):
> +        """
> +        Attach a nic to VM.
> +        """
> +        return virsh_attach_interface(self.name, type, extra, 
> self.connect_uri)
> +
> +    def detach_interface(self, type, extra = ""):
> +        """
> +        Detach a nic from VM.
> +        """
> +        return virsh_detach_interface(self.name, type, extra, 
> self.connect_uri)
>
>       def attach_device(self, xml_file, extra = ""):
>           """

_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to