Index: autoupdate.py |
diff --git a/autoupdate.py b/autoupdate.py |
index 1618760cdd34406d9bdaf711b73514da6ab2ea19..b1d5ae779bb70ada4c159d1f7ba400caa55b2063 100644 |
--- a/autoupdate.py |
+++ b/autoupdate.py |
@@ -31,8 +31,8 @@ class Autoupdate(BuildObject): |
def __init__(self, serve_only=None, test_image=False, urlbase=None, |
factory_config_path=None, client_prefix=None, forced_image=None, |
- use_cached=False, port=8080, src_image='', vm=False, *args, |
- **kwargs): |
+ use_cached=False, port=8080, src_image='', vm=False, board=None, |
+ *args, **kwargs): |
super(Autoupdate, self).__init__(*args, **kwargs) |
self.serve_only = serve_only |
self.factory_config = factory_config_path |
@@ -47,6 +47,7 @@ class Autoupdate(BuildObject): |
self.use_cached = use_cached |
self.src_image = src_image |
self.vm = vm |
+ self.board = board |
def _GetSecondsSinceMidnight(self): |
"""Returns the seconds since midnight as a decimal value.""" |
@@ -296,16 +297,17 @@ class Autoupdate(BuildObject): |
""" |
_LogMessage('Generating update for image %s' % image_path) |
update_path = self.GenerateUpdateFile(image_path) |
- stateful_update_path = self.GenerateStatefulFile(image_path) |
- if not update_path or not stateful_update_path: |
- _LogMessage('Failed to generate update') |
- return False |
+ if update_path: |
+ stateful_update_path = self.GenerateStatefulFile(image_path) |
+ if stateful_update_path: |
+ if move_to_static_dir: |
+ return self.MoveImagesToStaticDir(update_path, stateful_update_path, |
+ static_image_dir) |
- if move_to_static_dir: |
- return self.MoveImagesToStaticDir(update_path, stateful_update_path, |
- static_image_dir) |
- else: |
- return True |
+ return True |
+ |
+ _LogMessage('Failed to generate update') |
+ return False |
def GenerateLatestUpdateImage(self, board_id, client_version, |
static_image_dir=None): |
@@ -473,28 +475,33 @@ class Autoupdate(BuildObject): |
has_built_image = self.GenerateUpdateImage( |
self.forced_image, move_to_static_dir=True, |
static_image_dir=static_image_dir) |
- # Now that we've generated it, force devserver to use it. |
- self.use_cached = True |
+ return has_built_image |
elif self.serve_only: |
return self.GenerateImageFromZip(static_image_dir) |
- elif board_id and client_version: |
- return self.GenerateLatestUpdateImage(board_id, |
- client_version, |
- static_image_dir) |
else: |
+ if board_id: |
+ return self.GenerateLatestUpdateImage(board_id, |
+ client_version, |
+ static_image_dir) |
+ |
+ _LogMessage('You must set --board for pre-generating latest update.') |
return False |
def PreGenerateUpdate(self): |
- """Pre-generates an update. Does not work for factory or label updates.""" |
+ """Pre-generates an update. Returns True on success.""" |
# Does not work with factory config. |
assert(not self.factory_config) |
_LogMessage('Pre-generating the update payload.') |
# Does not work with labels so just use static dir. |
- if self.GenerateUpdatePayloadForNonFactory(None, None, self.static_dir): |
+ if self.GenerateUpdatePayloadForNonFactory(self.board, '0.0.0.0', |
+ self.static_dir): |
# Force the devserver to use the pre-generated payload. |
self.use_cached = True |
+ _LogMessage('Pre-generated update successfully.') |
+ return True |
else: |
_LogMessage('Failed to pre-generate update.') |
+ return False |
def HandleUpdatePing(self, data, label=None): |
"""Handles an update ping from an update client. |