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

Side by Side Diff: client/tests/kvm/kvm_scheduler.py

Issue 6246035: Merge remote branch 'cros/upstream' into master (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git@master
Patch Set: patch Created 9 years, 10 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
OLDNEW
1 import os, select 1 import os, select
2 import kvm_utils, kvm_vm, kvm_subprocess 2 import kvm_utils, kvm_vm, kvm_subprocess
3 3
4 4
5 class scheduler: 5 class scheduler:
6 """ 6 """
7 A scheduler that manages several parallel test execution pipelines on a 7 A scheduler that manages several parallel test execution pipelines on a
8 single host. 8 single host.
9 """ 9 """
10 10
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 test_iterations = int(test.get("iterations", 1)) 67 test_iterations = int(test.get("iterations", 1))
68 status = run_test_func("kvm", params=test, 68 status = run_test_func("kvm", params=test,
69 tag=test.get("shortname"), 69 tag=test.get("shortname"),
70 iterations=test_iterations) 70 iterations=test_iterations)
71 w.write("done %s %s\n" % (test_index, status)) 71 w.write("done %s %s\n" % (test_index, status))
72 w.write("ready\n") 72 w.write("ready\n")
73 73
74 # The scheduler wants this worker to free its used resources 74 # The scheduler wants this worker to free its used resources
75 elif cmd[0] == "cleanup": 75 elif cmd[0] == "cleanup":
76 env_filename = os.path.join(self.bindir, self_dict["env"]) 76 env_filename = os.path.join(self.bindir, self_dict["env"])
77 env = kvm_utils.load_env(env_filename, {}) 77 env = kvm_utils.Env(env_filename)
78 for obj in env.values(): 78 for obj in env.values():
79 if isinstance(obj, kvm_vm.VM): 79 if isinstance(obj, kvm_vm.VM):
80 obj.destroy() 80 obj.destroy()
81 elif isinstance(obj, kvm_subprocess.kvm_spawn): 81 elif isinstance(obj, kvm_subprocess.Spawn):
82 obj.close() 82 obj.close()
83 kvm_utils.dump_env(env, env_filename) 83 env.save()
84 w.write("cleanup_done\n") 84 w.write("cleanup_done\n")
85 w.write("ready\n") 85 w.write("ready\n")
86 86
87 # There's no more work for this worker 87 # There's no more work for this worker
88 elif cmd[0] == "terminate": 88 elif cmd[0] == "terminate":
89 break 89 break
90 90
91 91
92 def scheduler(self): 92 def scheduler(self):
93 """ 93 """
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 self.s2w_w[worker].write("cleanup\n") 221 self.s2w_w[worker].write("cleanup\n")
222 idle_workers.remove(worker) 222 idle_workers.remove(worker)
223 closing_workers.append(worker) 223 closing_workers.append(worker)
224 224
225 # If there are no more new tests to run, terminate the workers and 225 # If there are no more new tests to run, terminate the workers and
226 # the scheduler 226 # the scheduler
227 if len(idle_workers) == self.num_workers: 227 if len(idle_workers) == self.num_workers:
228 for worker in idle_workers: 228 for worker in idle_workers:
229 self.s2w_w[worker].write("terminate\n") 229 self.s2w_w[worker].write("terminate\n")
230 break 230 break
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698