OLD | NEW |
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 511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 def GenerateUpdatePayloadForNonFactory(self, board_id, client_version, | 522 def GenerateUpdatePayloadForNonFactory(self, board_id, client_version, |
523 static_image_dir): | 523 static_image_dir): |
524 """Generates an update for non-factory image. | 524 """Generates an update for non-factory image. |
525 | 525 |
526 Returns: | 526 Returns: |
527 file name relative to static_image_dir on success. | 527 file name relative to static_image_dir on success. |
528 """ | 528 """ |
529 if self.forced_payload: | 529 if self.forced_payload: |
530 # If the forced payload is not already in our static_image_dir, | 530 # If the forced payload is not already in our static_image_dir, |
531 # copy it there. | 531 # copy it there. |
532 if (os.path.dirname(os.path.abspath(self.forced_payload)) != | 532 src_path = os.path.abspath(self.forced_payload) |
533 os.path.abspath(static_image_dir)): | 533 dest_path = os.path.join(static_image_dir, UPDATE_FILE) |
534 self._Copy(self.forced_payload, os.path.join(static_image_dir, | |
535 UPDATE_FILE)) | |
536 | 534 |
537 self._Copy(os.path.join(os.path.dirname(self.forced_payload), | 535 src_stateful = os.path.join(os.path.dirname(src_path), |
538 STATEFUL_FILE), | 536 STATEFUL_FILE) |
539 os.path.join(static_image_dir, | 537 dest_stateful = os.path.join(static_image_dir, |
540 STATEFUL_FILE)) | 538 STATEFUL_FILE) |
| 539 |
| 540 # Only copy the files if the source directory is different from dest. |
| 541 if os.path.dirname(src_path) != os.path.abspath(static_image_dir): |
| 542 self._Copy(src_path, dest_path) |
| 543 |
| 544 # The stateful payload is optional. |
| 545 if os.path.exists(src_stateful): |
| 546 self._Copy(src_stateful, dest_stateful) |
| 547 else: |
| 548 _LogMessage('WARN: %s not found. Expected for dev and test builds.' % |
| 549 STATEFUL_FILE) |
| 550 if os.path.exists(dest_stateful): |
| 551 os.remove(dest_stateful) |
541 | 552 |
542 return UPDATE_FILE | 553 return UPDATE_FILE |
543 elif self.forced_image: | 554 elif self.forced_image: |
544 return self.GenerateUpdateImageWithCache( | 555 return self.GenerateUpdateImageWithCache( |
545 self.forced_image, | 556 self.forced_image, |
546 static_image_dir=static_image_dir) | 557 static_image_dir=static_image_dir) |
547 elif self.serve_only: | 558 elif self.serve_only: |
548 return self.GenerateImageFromZip(static_image_dir) | 559 return self.GenerateImageFromZip(static_image_dir) |
549 else: | 560 else: |
550 if board_id: | 561 if board_id: |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
637 is_delta_format = self._IsDeltaFormatFile(filename) | 648 is_delta_format = self._IsDeltaFormatFile(filename) |
638 if label: | 649 if label: |
639 url = '%s/%s/%s' % (static_urlbase, label, payload_path) | 650 url = '%s/%s/%s' % (static_urlbase, label, payload_path) |
640 else: | 651 else: |
641 url = '%s/%s' % (static_urlbase, payload_path) | 652 url = '%s/%s' % (static_urlbase, payload_path) |
642 | 653 |
643 _LogMessage('Responding to client to use url %s to get image.' % url) | 654 _LogMessage('Responding to client to use url %s to get image.' % url) |
644 return self.GetUpdatePayload(hash, sha256, size, url, is_delta_format) | 655 return self.GetUpdatePayload(hash, sha256, size, url, is_delta_format) |
645 else: | 656 else: |
646 return self.GetNoUpdatePayload() | 657 return self.GetNoUpdatePayload() |
OLD | NEW |