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

Side by Side Diff: autoupdate.py

Issue 6466001: Add ability to pass a private_key when generating a payload. (Closed) Base URL: http://git.chromium.org/git/dev-util.git@master
Patch Set: Use "%s" 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
« no previous file with comments | « no previous file | devserver.py » ('j') | 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) 2009-2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2009-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 from buildutil import BuildObject 5 from buildutil import BuildObject
6 from xml.dom import minidom 6 from xml.dom import minidom
7 7
8 import cherrypy 8 import cherrypy
9 import os 9 import os
10 import shutil 10 import shutil
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 vm: Set for VM images (doesn't patch kernel) 56 vm: Set for VM images (doesn't patch kernel)
57 board: board for the image. Needed for pre-generating of updates. 57 board: board for the image. Needed for pre-generating of updates.
58 copy_to_static_root: Copies images generated from the cache to 58 copy_to_static_root: Copies images generated from the cache to
59 ~/static. 59 ~/static.
60 """ 60 """
61 61
62 def __init__(self, serve_only=None, test_image=False, urlbase=None, 62 def __init__(self, serve_only=None, test_image=False, urlbase=None,
63 factory_config_path=None, client_prefix=None, 63 factory_config_path=None, client_prefix=None,
64 forced_image=None, forced_payload=None, 64 forced_image=None, forced_payload=None,
65 port=8080, proxy_port=None, src_image='', vm=False, board=None, 65 port=8080, proxy_port=None, src_image='', vm=False, board=None,
66 copy_to_static_root=True, 66 copy_to_static_root=True, private_key=None,
67 *args, **kwargs): 67 *args, **kwargs):
68 super(Autoupdate, self).__init__(*args, **kwargs) 68 super(Autoupdate, self).__init__(*args, **kwargs)
69 self.serve_only = serve_only 69 self.serve_only = serve_only
70 self.factory_config = factory_config_path 70 self.factory_config = factory_config_path
71 self.use_test_image = test_image 71 self.use_test_image = test_image
72 if urlbase: 72 if urlbase:
73 self.urlbase = urlbase 73 self.urlbase = urlbase
74 else: 74 else:
75 self.urlbase = None 75 self.urlbase = None
76 76
77 self.client_prefix = client_prefix 77 self.client_prefix = client_prefix
78 self.forced_image = forced_image 78 self.forced_image = forced_image
79 self.forced_payload = forced_payload 79 self.forced_payload = forced_payload
80 self.src_image = src_image 80 self.src_image = src_image
81 self.proxy_port = proxy_port 81 self.proxy_port = proxy_port
82 self.vm = vm 82 self.vm = vm
83 self.board = board 83 self.board = board
84 self.copy_to_static_root = copy_to_static_root 84 self.copy_to_static_root = copy_to_static_root
85 self.private_key = private_key
85 86
86 # Path to pre-generated file. 87 # Path to pre-generated file.
87 self.pregenerated_path = None 88 self.pregenerated_path = None
88 89
89 def _GetSecondsSinceMidnight(self): 90 def _GetSecondsSinceMidnight(self):
90 """Returns the seconds since midnight as a decimal value.""" 91 """Returns the seconds since midnight as a decimal value."""
91 now = time.localtime() 92 now = time.localtime()
92 return now[3] * 3600 + now[4] * 60 + now[5] 93 return now[3] * 3600 + now[4] * 60 + now[5]
93 94
94 def _GetDefaultBoardID(self): 95 def _GetDefaultBoardID(self):
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 233
233 def GenerateUpdateFile(self, src_image, image_path, output_dir): 234 def GenerateUpdateFile(self, src_image, image_path, output_dir):
234 """Generates an update gz given a full path to an image. 235 """Generates an update gz given a full path to an image.
235 236
236 Args: 237 Args:
237 image_path: Full path to image. 238 image_path: Full path to image.
238 Returns: 239 Returns:
239 Path to created update_payload or None on error. 240 Path to created update_payload or None on error.
240 """ 241 """
241 update_path = os.path.join(output_dir, UPDATE_FILE) 242 update_path = os.path.join(output_dir, UPDATE_FILE)
242 patch_kernel_flag = '--patch_kernel'
243 _LogMessage('Generating update image %s' % update_path) 243 _LogMessage('Generating update image %s' % update_path)
244 244
245 # Don't patch the kernel for vm images as they don't need the patch. 245 update_command = [
246 if self.vm: 246 '%s/cros_generate_update_payload' % self.scripts_dir,
247 patch_kernel_flag = '' 247 '--image="%s"' % image_path,
248 '--output="%s"' % update_path,
249 '--noold_style',
250 ]
248 251
249 mkupdate_command = ( 252 if src_image: update_command.append('--src_image="%s"' % src_image)
250 '%s/cros_generate_update_payload --image="%s" --output="%s" ' 253 if not self.vm: update_command.append('--patch_kernel')
251 '%s --noold_style --src_image="%s"' % ( 254 if self.private_key: update_command.append('--private_key="%s"' %
252 self.scripts_dir, image_path, update_path, patch_kernel_flag, 255 self.private_key)
253 src_image)) 256
254 _LogMessage(mkupdate_command) 257 update_string = ' '.join(update_command)
255 if os.system(mkupdate_command) != 0: 258 _LogMessage('Running ' + update_string)
259 if os.system(update_string) != 0:
256 _LogMessage('Failed to create update payload') 260 _LogMessage('Failed to create update payload')
257 return None 261 return None
258 262
259 return UPDATE_FILE 263 return UPDATE_FILE
260 264
261 def GenerateStatefulFile(self, image_path, output_dir): 265 def GenerateStatefulFile(self, image_path, output_dir):
262 """Generates a stateful update payload given a full path to an image. 266 """Generates a stateful update payload given a full path to an image.
263 267
264 Args: 268 Args:
265 image_path: Full path to image. 269 image_path: Full path to image.
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 is_delta_format = self._IsDeltaFormatFile(filename) 661 is_delta_format = self._IsDeltaFormatFile(filename)
658 if label: 662 if label:
659 url = '%s/%s/%s' % (static_urlbase, label, payload_path) 663 url = '%s/%s/%s' % (static_urlbase, label, payload_path)
660 else: 664 else:
661 url = '%s/%s' % (static_urlbase, payload_path) 665 url = '%s/%s' % (static_urlbase, payload_path)
662 666
663 _LogMessage('Responding to client to use url %s to get image.' % url) 667 _LogMessage('Responding to client to use url %s to get image.' % url)
664 return self.GetUpdatePayload(hash, sha256, size, url, is_delta_format) 668 return self.GetUpdatePayload(hash, sha256, size, url, is_delta_format)
665 else: 669 else:
666 return self.GetNoUpdatePayload() 670 return self.GetNoUpdatePayload()
OLDNEW
« no previous file with comments | « no previous file | devserver.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698