diff --git a/virttest/libvirt_vm.py b/virttest/libvirt_vm.py index 9284654ab90..a62e83958f4 100644 --- a/virttest/libvirt_vm.py +++ b/virttest/libvirt_vm.py @@ -1472,8 +1472,7 @@ def _create_serial_console(self): self.serial_console_log = os.path.join(utils_logfile.get_log_file_dir(), output_filename) # Cause serial_console.close() to close open log file - self.serial_console.set_log_file(self.serial_console_log) - self.serial_console.close_hooks += [utils_logfile.close_own_log_file] + self.serial_console.close_hooks += [utils_logfile.close_own_log_file(self.serial_console_log)] def set_root_serial_console(self, device, remove=False): """ diff --git a/virttest/qemu_vm.py b/virttest/qemu_vm.py index 2ef256721ba..a354e3df87e 100644 --- a/virttest/qemu_vm.py +++ b/virttest/qemu_vm.py @@ -3534,8 +3534,7 @@ def create(self, name=None, params=None, root_dir=None, auto_close=False, output_func=utils_logfile.log_line, output_params=(outfile,)) - self.logsessions[key].set_log_file(outfile) - self.logsessions[key].close_hooks += [utils_logfile.close_own_log_file] + self.logsessions[key].close_hooks += [utils_logfile.close_own_log_file(outfile)] # Wait for IO channels setting up completely, # such as serial console. diff --git a/virttest/remote.py b/virttest/remote.py index 9e4eabfbf66..b442e463f55 100644 --- a/virttest/remote.py +++ b/virttest/remote.py @@ -86,8 +86,7 @@ def remote_commander(client, host, port, username, password, prompt, log_file = utils_logfile.get_log_filename(log_filename) session.set_output_func(utils_logfile.log_line) session.set_output_params((log_file,)) - session.set_log_file(log_file) - session.close_hooks += [utils_logfile.close_own_log_file] + session.close_hooks += [utils_logfile.close_own_log_file(log_file)] session.send_ctrl("raw") # Wrap io interfaces. diff --git a/virttest/utils_logfile.py b/virttest/utils_logfile.py index ecdb3dfd539..e5c08d8311d 100644 --- a/virttest/utils_logfile.py +++ b/virttest/utils_logfile.py @@ -167,6 +167,10 @@ def close_log_file(filename): _log_lock.release() -def close_own_log_file(self): - """Closing hook for sessions whose log_file attribute should be passed along.""" - close_log_file(self.log_file) +def close_own_log_file(log_file): + """Closing hook for sessions with log_file managed locally.""" + + def hook(self): + close_log_file(log_file) + + return hook diff --git a/virttest/utils_misc.py b/virttest/utils_misc.py index c71fad80736..eff7bcc910c 100644 --- a/virttest/utils_misc.py +++ b/virttest/utils_misc.py @@ -439,7 +439,7 @@ def get_log_filename(filename): def close_log_file(filename): logging.warning("Calling log functions from `utils_misc` is deprecated, " "please use `utils_logfile` for the purpose") - return utils_logfile.close_log_file() + return utils_logfile.close_log_file(filename) # The following are miscellaneous utility functions. diff --git a/virttest/virt_vm.py b/virttest/virt_vm.py index 4d0de7a2d89..f8934480b7c 100644 --- a/virttest/virt_vm.py +++ b/virttest/virt_vm.py @@ -1113,9 +1113,9 @@ def login(self, nic_index=0, timeout=LOGIN_TIMEOUT, log_function = utils_logfile.log_line session = remote.remote_login(client, address, port, username, password, prompt, linesep, - log_filename, log_function, - timeout, interface=neigh_attach_if) - session.close_hooks += [utils_logfile.close_own_log_file] + log_function=log_function, + timeout=timeout, interface=neigh_attach_if) + session.close_hooks += [utils_logfile.close_own_log_file(log_filename)] session.set_status_test_command(self.params.get("status_test_command", "")) self.remote_sessions.append(session)