Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(447)

Side by Side Diff: client/tests/kvm/migration_control.srv

Issue 6883246: Merge autotest upstream from @5318 ~ @5336 (Closed) Base URL: ssh://gitrw.chromium.org:9222/autotest.git@master
Patch Set: patch Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « client/tests/kvm/kvm.py ('k') | client/tests/kvm/tests/balloon_check.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 AUTHOR = "Yolkfull Chow <yzhou@redhat.com>" 1 AUTHOR = "Yolkfull Chow <yzhou@redhat.com>"
2 TIME = "SHORT" 2 TIME = "SHORT"
3 NAME = "Migration across multiple hosts" 3 NAME = "Migration across multiple hosts"
4 TEST_CATEGORY = "Functional" 4 TEST_CATEGORY = "Functional"
5 TEST_CLASS = "Virtualization" 5 TEST_CLASS = "Virtualization"
6 TEST_TYPE = "Server" 6 TEST_TYPE = "Server"
7 DOC = """ 7 DOC = """
8 Migrate KVM guest between two hosts. It parses the base config file, restricts 8 Migrate KVM guest between two hosts. It parses the base config file, restricts
9 it with appropriate parameters, generates the test dicts, modify the test_dicts 9 it with appropriate parameters, generates the test dicts, modify the test_dicts
10 so there's a distinction between the migration roles ('dest' or 'source'). 10 so there's a distinction between the migration roles ('dest' or 'source').
11 """ 11 """
12 12
13 import sys, os, commands, glob, shutil, logging, random 13 import sys, os, commands, glob, shutil, logging, random
14 from autotest_lib.server import utils 14 from autotest_lib.server import utils
15 from autotest_lib.client.common_lib import cartesian_config
15 16
16 # Specify the directory of autotest before you start this test 17 # Specify the directory of autotest before you start this test
17 AUTOTEST_DIR = '/usr/local/autotest' 18 AUTOTEST_DIR = '/usr/local/autotest'
18 19
19 # Specify the root directory that on client machines 20 # Specify the root directory that on client machines
20 rootdir = '/tmp/kvm_autotest_root' 21 rootdir = '/tmp/kvm_autotest_root'
21 22
22 # Make possible to import the KVM test APIs
23 KVM_DIR = os.path.join(AUTOTEST_DIR, 'client/tests/kvm') 23 KVM_DIR = os.path.join(AUTOTEST_DIR, 'client/tests/kvm')
24 sys.path.append(KVM_DIR)
25 24
26 import common, kvm_config
27 25
28 def generate_mac_address(): 26 def generate_mac_address():
29 r = random.SystemRandom() 27 r = random.SystemRandom()
30 mac = "9a:%02x:%02x:%02x:%02x:%02x" % (r.randint(0x00, 0xff), 28 mac = "9a:%02x:%02x:%02x:%02x:%02x" % (r.randint(0x00, 0xff),
31 r.randint(0x00, 0xff), 29 r.randint(0x00, 0xff),
32 r.randint(0x00, 0xff), 30 r.randint(0x00, 0xff),
33 r.randint(0x00, 0xff), 31 r.randint(0x00, 0xff),
34 r.randint(0x00, 0xff)) 32 r.randint(0x00, 0xff))
35 return mac 33 return mac
36 34
37 35
38 def run(pair): 36 def run(pair):
39 logging.info("KVM migration running on source host [%s] and destination " 37 logging.info("KVM migration running on source host [%s] and destination "
40 "host [%s]\n", pair[0], pair[1]) 38 "host [%s]\n", pair[0], pair[1])
41 39
42 source = hosts.create_host(pair[0]) 40 source = hosts.create_host(pair[0])
43 dest = hosts.create_host(pair[1]) 41 dest = hosts.create_host(pair[1])
44 source_at = autotest.Autotest(source) 42 source_at = autotest.Autotest(source)
45 dest_at = autotest.Autotest(dest) 43 dest_at = autotest.Autotest(dest)
46 44
47 cfg_file = os.path.join(KVM_DIR, "tests_base.cfg") 45 cfg_file = os.path.join(KVM_DIR, "tests_base.cfg")
48 46
49 if not os.path.exists(cfg_file): 47 if not os.path.exists(cfg_file):
50 raise error.JobError("Config file %s was not found", cfg_file) 48 raise error.JobError("Config file %s was not found", cfg_file)
51 49
52 # Get test set (dictionary list) from the configuration file 50 # Get test set (dictionary list) from the configuration file
53 parser = kvm_config.Parser() 51 parser = cartesian_config.Parser()
54 test_variants = """ 52 test_variants = """
55 image_name(_.*)? ?<= /tmp/kvm_autotest_root/images/ 53 image_name(_.*)? ?<= /tmp/kvm_autotest_root/images/
56 cdrom(_.*)? ?<= /tmp/kvm_autotest_root/ 54 cdrom(_.*)? ?<= /tmp/kvm_autotest_root/
57 floppy ?<= /tmp/kvm_autotest_root/ 55 floppy ?<= /tmp/kvm_autotest_root/
58 Linux: 56 Linux:
59 unattended_install: 57 unattended_install:
60 kernel ?<= /tmp/kvm_autotest_root/ 58 kernel ?<= /tmp/kvm_autotest_root/
61 initrd ?<= /tmp/kvm_autotest_root/ 59 initrd ?<= /tmp/kvm_autotest_root/
62 qemu_binary = /usr/libexec/qemu-kvm 60 qemu_binary = /usr/libexec/qemu-kvm
63 qemu_img_binary = /usr/bin/qemu-img 61 qemu_img_binary = /usr/bin/qemu-img
(...skipping 28 matching lines...) Expand all
92 dest_params['role'] = "destination" 90 dest_params['role'] = "destination"
93 dest_params['migration_mode'] = "tcp" 91 dest_params['migration_mode'] = "tcp"
94 92
95 # Report the parameters we've received 93 # Report the parameters we've received
96 print "Test parameters:" 94 print "Test parameters:"
97 keys = params.keys() 95 keys = params.keys()
98 keys.sort() 96 keys.sort()
99 for key in keys: 97 for key in keys:
100 logging.debug(" %s = %s", key, params[key]) 98 logging.debug(" %s = %s", key, params[key])
101 99
102 source_control_file += "job.run_test('kvm', tag='%s', params=%s)" % (sou rce_params['shortname'], source_params) 100 source_control_file += ("job.run_test('kvm', tag='%s', params=%s)" %
103 dest_control_file += "job.run_test('kvm', tag='%s', params=%s)" % (dest_ params['shortname'], dest_params) 101 (source_params['shortname'], source_params))
102 dest_control_file += ("job.run_test('kvm', tag='%s', params=%s)" %
103 (dest_params['shortname'], dest_params))
104 104
105 logging.info('Source control file:\n%s', source_control_file) 105 logging.info('Source control file:\n%s', source_control_file)
106 logging.info('Destination control file:\n%s', dest_control_file) 106 logging.info('Destination control file:\n%s', dest_control_file)
107 dest_command = subcommand(dest_at.run, 107 dest_command = subcommand(dest_at.run,
108 [dest_control_file, dest.hostname]) 108 [dest_control_file, dest.hostname])
109 109
110 source_command = subcommand(source_at.run, 110 source_command = subcommand(source_at.run,
111 [source_control_file, source.hostname]) 111 [source_control_file, source.hostname])
112 112
113 parallel([dest_command, source_command]) 113 parallel([dest_command, source_command])
114 114
115 # Grab the pairs (and failures) 115 # Grab the pairs (and failures)
116 (pairs, failures) = utils.form_ntuples_from_machines(machines, 2) 116 (pairs, failures) = utils.form_ntuples_from_machines(machines, 2)
117 117
118 # Log the failures 118 # Log the failures
119 for failure in failures: 119 for failure in failures:
120 job.record("FAIL", failure[0], "kvm", failure[1]) 120 job.record("FAIL", failure[0], "kvm", failure[1])
121 121
122 # Now run through each pair and run 122 # Now run through each pair and run
123 job.parallel_simple(run, pairs, log=False) 123 job.parallel_simple(run, pairs, log=False)
OLDNEW
« no previous file with comments | « client/tests/kvm/kvm.py ('k') | client/tests/kvm/tests/balloon_check.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698