Index: bin/au_test_harness/vm_au_worker.py |
diff --git a/bin/au_test_harness/vm_au_worker.py b/bin/au_test_harness/vm_au_worker.py |
deleted file mode 100644 |
index 9788fddcb27e8cdf2132a4353060205c3d95bbd5..0000000000000000000000000000000000000000 |
--- a/bin/au_test_harness/vm_au_worker.py |
+++ /dev/null |
@@ -1,120 +0,0 @@ |
-# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-"""Module containing implementation of an au_worker for virtual machines.""" |
- |
-import os |
-import threading |
-import unittest |
- |
-import cros_build_lib as cros_lib |
- |
-import au_worker |
- |
- |
-class VMAUWorker(au_worker.AUWorker): |
- """Test harness for updating virtual machines.""" |
- |
- # Class variables used to acquire individual VM variables per test. |
- _vm_lock = threading.Lock() |
- _next_port = 9222 |
- |
- def __init__(self, options, test_results_root): |
- """Processes vm-specific options.""" |
- au_worker.AUWorker.__init__(self, options, test_results_root) |
- self.graphics_flag = '' |
- if options.no_graphics: self.graphics_flag = '--no_graphics' |
- if not self.board: cros_lib.Die('Need board to convert base image to vm.') |
- |
- self._AcquireUniquePortAndPidFile() |
- self._KillExistingVM(self._kvm_pid_file) |
- |
- def _KillExistingVM(self, pid_file): |
- """Kills an existing VM specified by the pid_file.""" |
- if os.path.exists(pid_file): |
- cros_lib.Warning('Existing %s found. Deleting and killing process' % |
- pid_file) |
- cros_lib.RunCommand(['./cros_stop_vm', '--kvm_pid=%s' % pid_file], |
- cwd=self.crosutilsbin) |
- |
- assert not os.path.exists(pid_file) |
- |
- def _AcquireUniquePortAndPidFile(self): |
- """Acquires unique ssh port and pid file for VM.""" |
- with VMAUWorker._vm_lock: |
- self._ssh_port = VMAUWorker._next_port |
- self._kvm_pid_file = '/tmp/kvm.%d' % self._ssh_port |
- VMAUWorker._next_port += 1 |
- |
- def CleanUp(self): |
- """Stop the vm after a test.""" |
- self._KillExistingVM(self._kvm_pid_file) |
- |
- def PrepareBase(self, image_path): |
- """Creates an update-able VM based on base image.""" |
- self.PrepareVMBase(image_path) |
- |
- def UpdateImage(self, image_path, src_image_path='', stateful_change='old', |
- proxy_port='', private_key_path=None): |
- """Updates VM image with image_path.""" |
- log_directory = self.GetNextResultsPath('update') |
- stateful_change_flag = self.GetStatefulChangeFlag(stateful_change) |
- if src_image_path and self._first_update: |
- src_image_path = self.vm_image_path |
- self._first_update = False |
- |
- cmd = ['%s/cros_run_vm_update' % self.crosutilsbin, |
- '--vm_image_path=%s' % self.vm_image_path, |
- '--update_log=%s' % os.path.join(log_directory, 'update_engine.log'), |
- '--snapshot', |
- self.graphics_flag, |
- '--persist', |
- '--kvm_pid=%s' % self._kvm_pid_file, |
- '--ssh_port=%s' % self._ssh_port, |
- stateful_change_flag, |
- ] |
- self.AppendUpdateFlags(cmd, image_path, src_image_path, proxy_port, |
- private_key_path) |
- self.RunUpdateCmd(cmd, log_directory) |
- |
- def UpdateUsingPayload(self, update_path, stateful_change='old', |
- proxy_port=None): |
- """Updates a vm image using cros_run_vm_update.""" |
- log_directory = self.GetNextResultsPath('update') |
- stateful_change_flag = self.GetStatefulChangeFlag(stateful_change) |
- cmd = ['%s/cros_run_vm_update' % self.crosutilsbin, |
- '--payload=%s' % update_path, |
- '--vm_image_path=%s' % self.vm_image_path, |
- '--update_log=%s' % os.path.join(log_directory, 'update_engine.log'), |
- '--snapshot', |
- self.graphics_flag, |
- '--persist', |
- '--kvm_pid=%s' % self._kvm_pid_file, |
- '--ssh_port=%s' % self._ssh_port, |
- stateful_change_flag, |
- ] |
- if proxy_port: cmd.append('--proxy_port=%s' % proxy_port) |
- self.RunUpdateCmd(cmd, log_directory) |
- |
- def VerifyImage(self, unittest, percent_required_to_pass=100): |
- """Runs vm smoke suite to verify image.""" |
- log_directory = self.GetNextResultsPath('verify') |
- (_, _, log_directory_in_chroot) = log_directory.rpartition('chroot') |
- # image_to_live already verifies lsb-release matching. This is just |
- # for additional steps. |
- commandWithArgs = ['%s/cros_run_vm_test' % self.crosutilsbin, |
- '--image_path=%s' % self.vm_image_path, |
- '--snapshot', |
- '--persist', |
- '--kvm_pid=%s' % self._kvm_pid_file, |
- '--ssh_port=%s' % self._ssh_port, |
- '--results_dir_root=%s' % log_directory_in_chroot, |
- self.verify_suite, |
- ] |
- if self.graphics_flag: commandWithArgs.append(self.graphics_flag) |
- output = cros_lib.RunCommand(commandWithArgs, error_ok=True, |
- enter_chroot=False, redirect_stdout=True) |
- return self.AssertEnoughTestsPassed(unittest, output, |
- percent_required_to_pass) |
- |