Add 3 API for libvirt_vm.

      1) vm.define()
      2) vm.attach_interface()
      3) vm.detach_interface()

Signed-off-by: Tang Chen <tanc...@cn.fujitsu.com>
---
 client/virt/libvirt_vm.py |   54 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/client/virt/libvirt_vm.py b/client/virt/libvirt_vm.py
index d6ae7fb..ac689d3 100644
--- a/client/virt/libvirt_vm.py
+++ b/client/virt/libvirt_vm.py
@@ -477,6 +477,34 @@ def virsh_detach_device(name, xml_file, extra="", uri=""):
         return False
 
 
+def virsh_attach_interface(name, option="", uri="", ignore_status=False, 
print_info=False):
+    """
+    Attach a NIC to VM.
+    """
+    cmd = "attach-interface "
+
+    if name:
+        cmd += "--domain %s" % name
+    if option:
+        cmd += " %s" % option
+
+    return virsh_cmd(cmd, uri, ignore_status, print_info)
+
+
+def virsh_detach_interface(name, option="", uri="", ignore_status=False, 
print_info=False):
+    """
+    Detach a NIC to VM.
+    """
+    cmd = "detach-interface "
+
+    if name:
+        cmd += "--domain %s" % name
+    if option:
+        cmd += " %s" % option
+
+    return virsh_cmd(cmd, uri, ignore_status, print_info)
+
+
 class VM(virt_vm.BaseVM):
     """
     This class handles all basic VM operations for libvirt.
@@ -571,6 +599,16 @@ class VM(virt_vm.BaseVM):
         return virsh_undefine(self.name, self.connect_uri)
 
 
+    def define(self, xml_file):
+        """
+        Define the VM.
+        """
+        if not os.path.exists(xml_file):
+            logging.error("File %s not found." % xml_file)
+            return False
+        return virsh_define(xml_file, self.connect_uri)
+
+
     def state(self):
         """
         Return domain state.
@@ -1295,6 +1333,22 @@ class VM(virt_vm.BaseVM):
         return virsh_detach_device(self.name, xml_file, extra, 
self.connect_uri)
 
 
+    def attach_interface(self, option="", ignore_status=False, 
print_info=False):
+        """
+        Attach a NIC to VM.
+        """
+        return virsh_attach_interface(self.name, option, self.connect_uri,
+                                      ignore_status=False, print_info=False)
+
+
+    def detach_interface(self, option="", ignore_status=False, 
print_info=False):
+        """
+        Detach a NIC to VM.
+        """
+        return virsh_detach_interface(self.name, option, self.connect_uri,
+                                      ignore_status=False, print_info=False)
+
+
     def destroy(self, gracefully=True, free_mac_addresses=True):
         """
         Destroy the VM.
-- 
1.7.3.1

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

Reply via email to