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 |