| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Archives or replays webpages and creates SKPs in a Google Storage location. | 6 """Archives or replays webpages and creates SKPs in a Google Storage location. |
| 7 | 7 |
| 8 To archive webpages and store SKP files (archives should be rarely updated): | 8 To archive webpages and store SKP files (archives should be rarely updated): |
| 9 | 9 |
| 10 cd skia | 10 cd skia |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 import traceback | 64 import traceback |
| 65 | 65 |
| 66 sys.path.insert(0, os.getcwd()) | 66 sys.path.insert(0, os.getcwd()) |
| 67 | 67 |
| 68 from common.py.utils import gs_utils | 68 from common.py.utils import gs_utils |
| 69 from common.py.utils import shell_utils | 69 from common.py.utils import shell_utils |
| 70 | 70 |
| 71 ROOT_PLAYBACK_DIR_NAME = 'playback' | 71 ROOT_PLAYBACK_DIR_NAME = 'playback' |
| 72 SKPICTURES_DIR_NAME = 'skps' | 72 SKPICTURES_DIR_NAME = 'skps' |
| 73 | 73 |
| 74 PARTNERS_GS_BUCKET = 'gs://chrome-partner-telemetry' |
| 74 | 75 |
| 75 # Local archive and SKP directories. | 76 # Local archive and SKP directories. |
| 76 LOCAL_PLAYBACK_ROOT_DIR = os.path.join( | 77 LOCAL_PLAYBACK_ROOT_DIR = os.path.join( |
| 77 tempfile.gettempdir(), ROOT_PLAYBACK_DIR_NAME) | 78 tempfile.gettempdir(), ROOT_PLAYBACK_DIR_NAME) |
| 78 LOCAL_REPLAY_WEBPAGES_ARCHIVE_DIR = os.path.join( | 79 LOCAL_REPLAY_WEBPAGES_ARCHIVE_DIR = os.path.join( |
| 79 os.path.abspath(os.path.dirname(__file__)), 'page_sets', 'data') | 80 os.path.abspath(os.path.dirname(__file__)), 'page_sets', 'data') |
| 80 TMP_SKP_DIR = tempfile.mkdtemp() | 81 TMP_SKP_DIR = tempfile.mkdtemp() |
| 81 | 82 |
| 82 # Location of the credentials.json file and the string that represents missing | 83 # Location of the credentials.json file and the string that represents missing |
| 83 # passwords. | 84 # passwords. |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 self._record = parse_options.record | 152 self._record = parse_options.record |
| 152 self._skia_tools = parse_options.skia_tools | 153 self._skia_tools = parse_options.skia_tools |
| 153 self._non_interactive = parse_options.non_interactive | 154 self._non_interactive = parse_options.non_interactive |
| 154 self._upload = parse_options.upload | 155 self._upload = parse_options.upload |
| 155 self._skp_prefix = parse_options.skp_prefix | 156 self._skp_prefix = parse_options.skp_prefix |
| 156 data_store_location = parse_options.data_store | 157 data_store_location = parse_options.data_store |
| 157 if data_store_location.startswith(gs_utils.GS_PREFIX): | 158 if data_store_location.startswith(gs_utils.GS_PREFIX): |
| 158 self.gs = GoogleStorageDataStore(data_store_location) | 159 self.gs = GoogleStorageDataStore(data_store_location) |
| 159 else: | 160 else: |
| 160 self.gs = LocalFileSystemDataStore(data_store_location) | 161 self.gs = LocalFileSystemDataStore(data_store_location) |
| 162 self._upload_to_partner_bucket = parse_options.upload_to_partner_bucket |
| 161 self._alternate_upload_dir = parse_options.alternate_upload_dir | 163 self._alternate_upload_dir = parse_options.alternate_upload_dir |
| 162 self._telemetry_binaries_dir = os.path.join(parse_options.chrome_src_path, | 164 self._telemetry_binaries_dir = os.path.join(parse_options.chrome_src_path, |
| 163 'tools', 'perf') | 165 'tools', 'perf') |
| 164 | 166 |
| 165 self._local_skp_dir = os.path.join( | 167 self._local_skp_dir = os.path.join( |
| 166 parse_options.output_dir, ROOT_PLAYBACK_DIR_NAME, SKPICTURES_DIR_NAME) | 168 parse_options.output_dir, ROOT_PLAYBACK_DIR_NAME, SKPICTURES_DIR_NAME) |
| 167 self._local_record_webpages_archive_dir = os.path.join( | 169 self._local_record_webpages_archive_dir = os.path.join( |
| 168 parse_options.output_dir, ROOT_PLAYBACK_DIR_NAME, 'webpages_archive') | 170 parse_options.output_dir, ROOT_PLAYBACK_DIR_NAME, 'webpages_archive') |
| 169 | 171 |
| 170 # List of SKP files generated by this script. | 172 # List of SKP files generated by this script. |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 | 363 |
| 362 self.gs.upload_dir_contents( | 364 self.gs.upload_dir_contents( |
| 363 LOCAL_PLAYBACK_ROOT_DIR, dest_dir=dest_dir_name, | 365 LOCAL_PLAYBACK_ROOT_DIR, dest_dir=dest_dir_name, |
| 364 upload_if=gs_utils.GSUtils.UploadIf.IF_MODIFIED, | 366 upload_if=gs_utils.GSUtils.UploadIf.IF_MODIFIED, |
| 365 predefined_acl=GS_PREDEFINED_ACL, | 367 predefined_acl=GS_PREDEFINED_ACL, |
| 366 fine_grained_acl_list=GS_FINE_GRAINED_ACL_LIST) | 368 fine_grained_acl_list=GS_FINE_GRAINED_ACL_LIST) |
| 367 | 369 |
| 368 print '\n\n=======New SKPs have been uploaded to %s =======\n\n' % ( | 370 print '\n\n=======New SKPs have been uploaded to %s =======\n\n' % ( |
| 369 posixpath.join(self.gs.target_name(), dest_dir_name, | 371 posixpath.join(self.gs.target_name(), dest_dir_name, |
| 370 SKPICTURES_DIR_NAME)) | 372 SKPICTURES_DIR_NAME)) |
| 373 |
| 374 if self._upload_to_partner_bucket: |
| 375 print '\n\n=======Uploading to Partner bucket %s =======\n\n' % ( |
| 376 PARTNERS_GS_BUCKET) |
| 377 partner_gs = GoogleStorageDataStore(PARTNERS_GS_BUCKET) |
| 378 partner_gs.upload_dir_contents( |
| 379 os.path.join(LOCAL_PLAYBACK_ROOT_DIR, SKPICTURES_DIR_NAME), |
| 380 dest_dir=posixpath.join(SKPICTURES_DIR_NAME, dest_dir_name), |
| 381 upload_if=gs_utils.GSUtils.UploadIf.IF_MODIFIED) |
| 382 print '\n\n=======New SKPs have been uploaded to %s =======\n\n' % ( |
| 383 posixpath.join(partner_gs.target_name(), SKPICTURES_DIR_NAME, |
| 384 dest_dir_name)) |
| 371 else: | 385 else: |
| 372 print '\n\n=======Not Uploading to %s=======\n\n' % self.gs.target_type() | 386 print '\n\n=======Not Uploading to %s=======\n\n' % self.gs.target_type() |
| 373 print 'Generated resources are available in %s\n\n' % ( | 387 print 'Generated resources are available in %s\n\n' % ( |
| 374 LOCAL_PLAYBACK_ROOT_DIR) | 388 LOCAL_PLAYBACK_ROOT_DIR) |
| 375 | 389 |
| 376 return 0 | 390 return 0 |
| 377 | 391 |
| 378 def _GetSkiaSkpFileName(self, page_set): | 392 def _GetSkiaSkpFileName(self, page_set): |
| 379 """Returns the SKP file name for Skia page sets.""" | 393 """Returns the SKP file name for Skia page sets.""" |
| 380 # /path/to/skia_yahooanswers_desktop.py -> skia_yahooanswers_desktop.py | 394 # /path/to/skia_yahooanswers_desktop.py -> skia_yahooanswers_desktop.py |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 '--non-interactive then the debugger is also run at the end. Debug ' | 541 '--non-interactive then the debugger is also run at the end. Debug ' |
| 528 'builds are recommended because they seem to catch more failures ' | 542 'builds are recommended because they seem to catch more failures ' |
| 529 'than Release builds.'), | 543 'than Release builds.'), |
| 530 default=None) | 544 default=None) |
| 531 option_parser.add_option( | 545 option_parser.add_option( |
| 532 '', '--upload', action='store_true', | 546 '', '--upload', action='store_true', |
| 533 help=('Uploads to Google Storage or copies to local filesystem storage ' | 547 help=('Uploads to Google Storage or copies to local filesystem storage ' |
| 534 ' if this is True.'), | 548 ' if this is True.'), |
| 535 default=False) | 549 default=False) |
| 536 option_parser.add_option( | 550 option_parser.add_option( |
| 551 '', '--upload_to_partner_bucket', action='store_true', |
| 552 help=('Uploads SKPs to the chrome-partner-telemetry Google Storage ' |
| 553 'bucket if true.'), |
| 554 default=False) |
| 555 option_parser.add_option( |
| 537 '', '--data_store', | 556 '', '--data_store', |
| 538 help=('The location of the file storage to use to download and upload ' | 557 help=('The location of the file storage to use to download and upload ' |
| 539 'files. Can be \'gs://<bucket>\' for Google Storage, or ' | 558 'files. Can be \'gs://<bucket>\' for Google Storage, or ' |
| 540 'a directory for local filesystem storage'), | 559 'a directory for local filesystem storage'), |
| 541 default='gs://chromium-skia-gm') | 560 default='gs://chromium-skia-gm') |
| 542 option_parser.add_option( | 561 option_parser.add_option( |
| 543 '', '--alternate_upload_dir', | 562 '', '--alternate_upload_dir', |
| 544 help= ('Uploads to a different directory in Google Storage or local ' | 563 help= ('Uploads to a different directory in Google Storage or local ' |
| 545 'storage if this flag is specified'), | 564 'storage if this flag is specified'), |
| 546 default=None) | 565 default=None) |
| (...skipping 20 matching lines...) Expand all Loading... |
| 567 '--skia_tools is specified then the debugger is not run.', | 586 '--skia_tools is specified then the debugger is not run.', |
| 568 default=False) | 587 default=False) |
| 569 option_parser.add_option( | 588 option_parser.add_option( |
| 570 '', '--skp_prefix', | 589 '', '--skp_prefix', |
| 571 help='Prefix to add to the names of generated SKPs.', | 590 help='Prefix to add to the names of generated SKPs.', |
| 572 default=None) | 591 default=None) |
| 573 options, unused_args = option_parser.parse_args() | 592 options, unused_args = option_parser.parse_args() |
| 574 | 593 |
| 575 playback = SkPicturePlayback(options) | 594 playback = SkPicturePlayback(options) |
| 576 sys.exit(playback.Run()) | 595 sys.exit(playback.Run()) |
| OLD | NEW |