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

Side by Side Diff: server/hosts/chromiumos_host.py

Issue 1528044: bring machine_install() up to date with memento_updater flags. (Closed)
Patch Set: style fix Created 10 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
« no previous file with comments | « no previous file | 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 import logging 1 import logging
2 import socket 2 import socket
3 from urlparse import urljoin 3 from urlparse import urljoin
4 4
5 from autotest_lib.client.common_lib import error 5 from autotest_lib.client.common_lib import error
6 from autotest_lib.server import autoserv_parser 6 from autotest_lib.server import autoserv_parser
7 from autotest_lib.server.hosts import base_classes 7 from autotest_lib.server.hosts import base_classes
8 8
9 9
10 parser = autoserv_parser.autoserv_parser 10 parser = autoserv_parser.autoserv_parser
(...skipping 16 matching lines...) Expand all
27 Construct a ChromiumOSHost object 27 Construct a ChromiumOSHost object
28 28
29 Args: 29 Args:
30 hostname: network hostname or address of remote machine 30 hostname: network hostname or address of remote machine
31 """ 31 """
32 super(ChromiumOSHost, self)._initialize(hostname, *args, **dargs) 32 super(ChromiumOSHost, self)._initialize(hostname, *args, **dargs)
33 33
34 34
35 def machine_install(self, update_url=None, biosflash=None): 35 def machine_install(self, update_url=None, biosflash=None):
36 image = parser.options.image 36 image = parser.options.image
37 version_string = None
37 if image: 38 if image:
38 #TODO(seano): set version, deal with blank version elsewhere 39 #TODO(seano): set version, deal with blank version elsewhere
39 logging.info('Install %s to host: %s' % (image, self.hostname)) 40 logging.info('Install %s to host: %s' % (image, self.hostname))
40 version_string = image 41 version_string = image
41 else: 42 else:
42 logging.info('Install %s to host: %s' % ('latest', self.hostname)) 43 logging.info('Install %s to host: %s' % ('latest', self.hostname))
43 44
44 if not update_url: 45 if not update_url:
45 # Assume we're running the mock autoupdate server on the 46 # Assume we're running the mock autoupdate server on the
46 # autotest host. 47 # autotest host.
47 update_url = 'http://%s:8080/update/' % socket.gethostname() 48 update_url = 'http://%s:8080/update' % socket.gethostname()
48 # The mock autoupdater in devserver has been modified to 49 # The mock autoupdater in devserver has been modified to
49 # accept an additional url under /update/VERSION 50 # accept an additional url under /update/VERSION
50 update_url = urljoin(update_url, version_string) 51 if version_string:
52 update_url = urljoin(update_url, 'update/%s' % version_string)
51 53
52 # Prepare to host a update image. 54 # Prepare to host a update image.
53 # Check that a devserver is available on our preferred URL. 55 # Check that a devserver is available on our preferred URL.
54 # Check that requested image version exists. 56 # Check that requested image version exists.
55 57
56 # Run autoupdate command. This tells the autoupdate process on 58 # Run autoupdate command. This tells the autoupdate process on
57 # the host to look for an update at a specific URL and version 59 # the host to look for an update at a specific URL and version
58 # string. 60 # string.
59 61
60 # TODO(seano): remove reconfig_cmd, change autoupdate_cmd to use 62 # TODO(seano): remove reconfig_cmd, change autoupdate_cmd to use
61 # memento_updater's flags 63 # memento_updater's flags
62 reconfig_cmd = ('sudo mount -o remount,rw /;' 64 autoupdate_cmd = [UPDATER_BIN, '--omaha_url=%s' % update_url,
63 'echo "CHROMEOS_AUSERVER=%s" >> %s; ' % 65 '--force_update']
64 (update_url, UPDATER_CONFIG))
65
66 autoupdate_cmd = [reconfig_cmd, UPDATER_BIN, '-f']
67 if version_string:
68 autoupdate_cmd += ['-v', version_string]
69 try: 66 try:
70 cmd = ' '.join(autoupdate_cmd) 67 cmd = ' '.join(autoupdate_cmd)
71 logging.info(cmd) 68 logging.info(cmd)
72 self.run(cmd) 69 self.run(cmd)
73 except error.AutoservRunError, e: 70 except error.AutoservRunError, e:
74 raise ChromiumOSError('OS Updater failed on %s', self.hostname) 71 raise ChromiumOSError('OS Updater failed on %s', self.hostname)
75
76 # Now, check that the installer completed as expected. 72 # Now, check that the installer completed as expected.
77 try: 73 try:
78 cmd = '' 74 cmd = ''
79 #self.run(cmd) 75 #self.run(cmd)
80 except error.AutoservRunError, e: 76 except error.AutoservRunError, e:
81 raise ChromiumOSError('Failed to install OS image to host %s', 77 raise ChromiumOSError('Failed to install OS image to host %s',
82 self.hostname) 78 self.hostname)
83
84 # Updater has returned. reboot. 79 # Updater has returned. reboot.
85 self.reboot(timeout=30, wait=True) 80 self.reboot(timeout=30, wait=True)
86 # TODO(seano): verify that image version is in fact installed, 81 # TODO(seano): verify that image version is in fact installed,
87 # after reboot. 82 # after reboot.
88 83
89 84
90 def reset(self): 85 def reset(self):
91 """Reboots the machine.""" 86 """Reboots the machine."""
92 try: 87 try:
93 self.reboot(wait=False) 88 self.reboot(wait=False)
94 except error.AutoservRunError: 89 except error.AutoservRunError:
95 # TODO(seano): figure out possible hard resets. 90 # TODO(seano): figure out possible hard resets.
96 raise 91 raise
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698