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

Side by Side Diff: server/site_tests/autoupdate_Host/autoupdate_Host.py

Issue 5626007: move chromiumos_update into client/common_lib/cros (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git@master
Patch Set: Created 10 years 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 | « server/hosts/chromiumos_host.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import logging, os, socket, time, zipfile 5 import logging, os, socket, time, zipfile
6 6
7 from autotest_lib.client.common_lib import error, chromiumos_updater 7 from autotest_lib.client.common_lib import error
8 from autotest_lib.client.common_lib.cros import autoupdater
8 from autotest_lib.server import autotest, test, autoupdate_utils 9 from autotest_lib.server import autotest, test, autoupdate_utils
9 10
10 IGNORE_PATTERNS = ('*.pyc', '^.git', '^.gitignore') 11 IGNORE_PATTERNS = ('*.pyc', '^.git', '^.gitignore')
11 POLL_INTERVAL = 5 12 POLL_INTERVAL = 5
12 13
13 class autoupdate_Host(test.test): 14 class autoupdate_Host(test.test):
14 version = 1 15 version = 1
15 16
16 def run_once(self, host=None, image_path=None): 17 def run_once(self, host=None, image_path=None):
17 localhost = socket.gethostname() 18 localhost = socket.gethostname()
18 base_update_url='http://%s:%s' % (localhost, 19 base_update_url='http://%s:%s' % (localhost,
19 autoupdate_utils.DEVSERVER_PORT) 20 autoupdate_utils.DEVSERVER_PORT)
20 logging.info('Using image at: %s' % image_path) 21 logging.info('Using image at: %s' % image_path)
21 logging.info('Base update url: %s' % base_update_url) 22 logging.info('Base update url: %s' % base_update_url)
22 23
23 # Initiate chromiumos_updater and retrieve old release version. 24 # Initiate autoupdater and retrieve old release version.
24 updater = chromiumos_updater.ChromiumOSUpdater(host, base_update_url) 25 updater = autoupdater.ChromiumOSUpdater(host, base_update_url)
25 old_release = updater.get_build_id() 26 old_release = updater.get_build_id()
26 27
27 # Setup client machine by overriding lsb-release. 28 # Setup client machine by overriding lsb-release.
28 client_host = autotest.Autotest(host) 29 client_host = autotest.Autotest(host)
29 client_host.run_test('autoupdate_SetUp', devserver=base_update_url) 30 client_host.run_test('autoupdate_SetUp', devserver=base_update_url)
30 31
31 image_name = 'chromiumos_test_image.bin' 32 image_name = 'chromiumos_test_image.bin'
32 33
33 tester = autoupdate_utils.AutoUpdateTester(image_path) 34 tester = autoupdate_utils.AutoUpdateTester(image_path)
34 35
35 # Starts devserver. 36 # Starts devserver.
36 devserver = tester.start_devserver() 37 devserver = tester.start_devserver()
37 38
38 # Initiate update process on client. 39 # Initiate update process on client.
39 update_engine_client_cmd = ('update_engine_client ' 40 update_engine_client_cmd = ('update_engine_client '
40 '--app_version ForcedUpdate') 41 '--app_version ForcedUpdate')
41 logging.info('Start update process on %s' % host.hostname) 42 logging.info('Start update process on %s' % host.hostname)
42 logging.info('Issuing command: %s' % update_engine_client_cmd) 43 logging.info('Issuing command: %s' % update_engine_client_cmd)
43 host.run(update_engine_client_cmd) 44 host.run(update_engine_client_cmd)
44 45
45 boot_id = host.get_boot_id() 46 boot_id = host.get_boot_id()
46 logging.info('Client boot_id: %s' % boot_id) 47 logging.info('Client boot_id: %s' % boot_id)
47 48
48 # Poll update process until it completes. 49 # Poll update process until it completes.
49 status = chromiumos_updater.UPDATER_IDLE 50 status = autoupdater.UPDATER_IDLE
50 while status != chromiumos_updater.UPDATER_NEED_REBOOT: 51 while status != autoupdater.UPDATER_NEED_REBOOT:
51 status = updater.check_update_status() 52 status = updater.check_update_status()
52 if status == chromiumos_updater.UPDATER_IDLE: 53 if status == autoupdater.UPDATER_IDLE:
53 raise error.TestFail('Could not initiate update process on clien t.') 54 raise error.TestFail('Could not initiate update process on clien t.')
54 logging.info('Update status: %s' % status) 55 logging.info('Update status: %s' % status)
55 time.sleep(POLL_INTERVAL) 56 time.sleep(POLL_INTERVAL)
56 57
57 # Remove override lsb-release and reboot. 58 # Remove override lsb-release and reboot.
58 logging.info('Update completed, remove lsb-release and reboot machine') 59 logging.info('Update completed, remove lsb-release and reboot machine')
59 host.run('rm /mnt/stateful_partition/etc/lsb-release') 60 host.run('rm /mnt/stateful_partition/etc/lsb-release')
60 host.reboot() 61 host.reboot()
61 62
62 host.wait_for_restart(old_boot_id=boot_id) 63 host.wait_for_restart(old_boot_id=boot_id)
63 64
64 new_release = updater.get_build_id() 65 new_release = updater.get_build_id()
65 logging.info('old release: %s' % old_release) 66 logging.info('old release: %s' % old_release)
66 logging.info('new release: %s' % new_release) 67 logging.info('new release: %s' % new_release)
67 68
68 if new_release == old_release: 69 if new_release == old_release:
69 raise error.TestFail('Failed to update') 70 raise error.TestFail('Failed to update')
70 71
71 # Terminate devserver. 72 # Terminate devserver.
72 tester.kill_devserver(devserver) 73 tester.kill_devserver(devserver)
OLDNEW
« no previous file with comments | « server/hosts/chromiumos_host.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698