Before it was only ever setup during create().  As soon as
a vm object was started from scratch, it never got created.
Also removed libvirt_vm.VM.only_pty to always use virsh console
which should be more reliable and still support all types.  Added
a fixme in create() -> add_serial() to investigate older libvirt
additional serial addition at install.

Signed-off-by: Chris Evich <[email protected]>
---
 virttest/libvirt_vm.py |   28 ++++++++++++----------------
 1 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/virttest/libvirt_vm.py b/virttest/libvirt_vm.py
index d8c5eb4..5ff7aa4 100644
--- a/virttest/libvirt_vm.py
+++ b/virttest/libvirt_vm.py
@@ -140,7 +140,6 @@ class VM(virt_vm.BaseVM):
             self.device_id = []
             self.pci_devices = []
             self.uuid = None
-            self.only_pty = False
 
         self.spice_port = 8000
         self.name = name
@@ -493,8 +492,7 @@ class VM(virt_vm.BaseVM):
             if has_option(help_text, "serial"):
                 return "  --serial file,path=%s --serial pty" % filename
             else:
-                self.only_pty = True
-                return ""
+                return "" # FIXME: Add additional serial ports on old libvirt?
 
         def add_kernel_cmdline(help_text, cmdline):
             return " -append %s" % cmdline
@@ -804,6 +802,14 @@ class VM(virt_vm.BaseVM):
         return virt_install_cmd
 
 
+    def setup_serial_console(self):
+        self.serial_console = aexpect.ShellSession(
+            "virsh console %s" % self.name,
+            auto_close=False,
+            output_func=utils_misc.log_line,
+            output_params=("serial-%s.log" % self.name,))
+
+
     @error.context_aware
     def create(self, name=None, params=None, root_dir=None, timeout=5.0,
                migration_mode=None, mac_source=None):
@@ -971,19 +977,7 @@ class VM(virt_vm.BaseVM):
                                       uri=self.connect_uri).stdout.strip()
 
             # Establish a session with the serial console
-            if self.only_pty == True:
-                self.serial_console = aexpect.ShellSession(
-                    "virsh console %s" % self.name,
-                    auto_close=False,
-                    output_func=utils_misc.log_line,
-                    output_params=("serial-%s.log" % name,))
-            else:
-                self.serial_console = aexpect.ShellSession(
-                    "tail -f %s" % self.get_serial_console_filename(),
-                    auto_close=False,
-                    output_func=utils_misc.log_line,
-                    output_params=("serial-%s.log" % name,))
-
+            self.setup_serial_console()
         finally:
             fcntl.lockf(lockfile, fcntl.LOCK_UN)
             lockfile.close()
@@ -1300,6 +1294,8 @@ class VM(virt_vm.BaseVM):
                                                       "active after start")
             self.uuid = virsh.domuuid(self.name,
                                       uri=self.connect_uri).stdout.strip()
+            # Establish a session with the serial console
+            self.setup_serial_console()
         else:
             raise virt_vm.VMStartError(self.name, "libvirt domain failed "
                                                   "to start")
-- 
1.7.1

_______________________________________________
Virt-test-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-test-devel

Reply via email to