| OLD | NEW |
| 1 import sys, os, time, commands, re, logging, signal, glob, threading, shutil | 1 import sys, os, time, commands, re, logging, signal, glob, threading, shutil |
| 2 from autotest_lib.client.bin import test, utils | 2 from autotest_lib.client.bin import test, utils |
| 3 from autotest_lib.client.common_lib import error | 3 from autotest_lib.client.common_lib import error |
| 4 import kvm_vm, kvm_utils, kvm_subprocess, kvm_monitor, ppm_utils | 4 import kvm_vm, kvm_utils, kvm_subprocess, kvm_monitor, ppm_utils |
| 5 try: | 5 try: |
| 6 import PIL.Image | 6 import PIL.Image |
| 7 except ImportError: | 7 except ImportError: |
| 8 logging.warning('No python imaging library installed. PPM image ' | 8 logging.warning('No python imaging library installed. PPM image ' |
| 9 'conversion to JPEG disabled. In order to enable it, ' | 9 'conversion to JPEG disabled. In order to enable it, ' |
| 10 'please install python-imaging or the equivalent for your ' | 10 'please install python-imaging or the equivalent for your ' |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 logging.debug("Preprocessing VM '%s'..." % name) | 52 logging.debug("Preprocessing VM '%s'..." % name) |
| 53 vm = kvm_utils.env_get_vm(env, name) | 53 vm = kvm_utils.env_get_vm(env, name) |
| 54 if vm: | 54 if vm: |
| 55 logging.debug("VM object found in environment") | 55 logging.debug("VM object found in environment") |
| 56 else: | 56 else: |
| 57 logging.debug("VM object does not exist; creating it") | 57 logging.debug("VM object does not exist; creating it") |
| 58 vm = kvm_vm.VM(name, params, test.bindir, env.get("address_cache")) | 58 vm = kvm_vm.VM(name, params, test.bindir, env.get("address_cache")) |
| 59 kvm_utils.env_register_vm(env, name, vm) | 59 kvm_utils.env_register_vm(env, name, vm) |
| 60 | 60 |
| 61 start_vm = False | 61 start_vm = False |
| 62 for_migration = False | |
| 63 | 62 |
| 64 if params.get("start_vm_for_migration") == "yes": | 63 if params.get("restart_vm") == "yes": |
| 65 logging.debug("'start_vm_for_migration' specified; (re)starting VM " | |
| 66 "with -incoming option...") | |
| 67 start_vm = True | |
| 68 for_migration = True | |
| 69 elif params.get("restart_vm") == "yes": | |
| 70 logging.debug("'restart_vm' specified; (re)starting VM...") | 64 logging.debug("'restart_vm' specified; (re)starting VM...") |
| 71 start_vm = True | 65 start_vm = True |
| 72 elif params.get("start_vm") == "yes": | 66 elif params.get("start_vm") == "yes": |
| 73 if not vm.is_alive(): | 67 if not vm.is_alive(): |
| 74 logging.debug("VM is not alive; starting it...") | 68 logging.debug("VM is not alive; starting it...") |
| 75 start_vm = True | 69 start_vm = True |
| 76 elif vm.make_qemu_command() != vm.make_qemu_command(name, params, | 70 elif vm.make_qemu_command() != vm.make_qemu_command(name, params, |
| 77 test.bindir): | 71 test.bindir): |
| 78 logging.debug("VM's qemu command differs from requested one; " | 72 logging.debug("VM's qemu command differs from requested one; " |
| 79 "restarting it...") | 73 "restarting it...") |
| 80 start_vm = True | 74 start_vm = True |
| 81 | 75 |
| 82 if start_vm: | 76 if start_vm: |
| 83 # Start the VM (or restart it if it's already up) | 77 # Start the VM (or restart it if it's already up) |
| 84 if not vm.create(name, params, test.bindir, for_migration): | 78 if not vm.create(name, params, test.bindir): |
| 85 raise error.TestError("Could not start VM") | 79 raise error.TestError("Could not start VM") |
| 86 else: | 80 else: |
| 87 # Don't start the VM, just update its params | 81 # Don't start the VM, just update its params |
| 88 vm.params = params | 82 vm.params = params |
| 89 | 83 |
| 90 scrdump_filename = os.path.join(test.debugdir, "pre_%s.ppm" % name) | 84 scrdump_filename = os.path.join(test.debugdir, "pre_%s.ppm" % name) |
| 91 try: | 85 try: |
| 92 if vm.monitor: | 86 if vm.monitor: |
| 93 vm.monitor.screendump(scrdump_filename) | 87 vm.monitor.screendump(scrdump_filename) |
| 94 except kvm_monitor.MonitorError, e: | 88 except kvm_monitor.MonitorError, e: |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 try: | 432 try: |
| 439 image = PIL.Image.open(temp_filename) | 433 image = PIL.Image.open(temp_filename) |
| 440 image.save(screendump_filename, format="JPEG", quality=quali
ty) | 434 image.save(screendump_filename, format="JPEG", quality=quali
ty) |
| 441 cache[hash] = screendump_filename | 435 cache[hash] = screendump_filename |
| 442 except NameError: | 436 except NameError: |
| 443 pass | 437 pass |
| 444 os.unlink(temp_filename) | 438 os.unlink(temp_filename) |
| 445 if _screendump_thread_termination_event.isSet(): | 439 if _screendump_thread_termination_event.isSet(): |
| 446 break | 440 break |
| 447 _screendump_thread_termination_event.wait(delay) | 441 _screendump_thread_termination_event.wait(delay) |
| OLD | NEW |