def testProduceFilteredCandidatesReleases(self): protected_prefixes = ( 'gs://chromeos-releases/Attic', 'gs://chromeos-releases/stable-channel', 'gs://chromeos-releases/beta-channel', 'gs://chromeos-releases/dev-channel', 'gs://chromeos-releases/logs', 'gs://chromeos-releases/tobesigned', 'gs://chromeos-releases/canary-channel/arkham/6301.1.0/', 'gs://chromeos-releases/canary-channel/auron/6301.18.0/', ) self.patchSafeList() result = purge_lib.ProduceFilteredCandidates( self.ctx, 'gs://chromeos-releases/', protected_prefixes, 3) self.assertEqual(list(result), [ self.mockResult( 'gs://chromeos-releases/canary-channel/arkham/6301.0.0/'), self.mockResult( 'gs://chromeos-releases/canary-channel/arkham/7023.0.0/'), self.mockResult( 'gs://chromeos-releases/canary-channel/arkham/noparse/'), self.mockResult( 'gs://chromeos-releases/canary-channel/plain_file'), self.mockResult( 'gs://chromeos-releases/canary-channel/x86-alex/1.2.3/'), self.mockResult( 'gs://chromeos-releases/canary-channel/x86-alex/1.2.4/'), self.mockResult( 'gs://chromeos-releases/top-level-file'), ])
def main(argv): parser = GetParser() options = parser.parse_args(argv) options.Freeze() ctx = gs.GSContext() ctx.GetDefaultGSUtilBin() # To force caching of gsutil pre-forking. now = datetime.datetime.now() expired_cutoff = now - BUILD_CLEANUP logging.info('Cutoff: %s', expired_cutoff) if options.chromeos_image_archive: archiveExcludes = purge_lib.LocateChromeosImageArchiveProtectedPrefixes( ctx) logging.info('Excluding:%s', '\n '.join(archiveExcludes)) archiveCandidates = purge_lib.ProduceFilteredCandidates( ctx, 'gs://chromeos-image-archive/', archiveExcludes, 2) Examine(ctx, options.dry_run, expired_cutoff, archiveCandidates) if options.chromeos_releases: remote_branches = purge_lib.ListRemoteBranches() protected_branches = purge_lib.ProtectedBranchVersions(remote_branches) logging.info('Protected branch versions: %s', '\n '.join(protected_branches)) releasesExcludes = purge_lib.LocateChromeosReleasesProtectedPrefixes( ctx, protected_branches) logging.info('Excluding:%s', '\n '.join(releasesExcludes)) releasesCandidates = purge_lib.ProduceFilteredCandidates( ctx, 'gs://chromeos-releases/', releasesExcludes, 3) Examine(ctx, options.dry_run, expired_cutoff, releasesCandidates) return
def testProduceFilteredCandidatesArchive(self): protected_prefixes = ( 'gs://chromeos-image-archive/foo-firmware', 'gs://chromeos-image-archive/bar-firmware', 'gs://chromeos-image-archive/trybot-whirlwind-test-ap/', 'gs://chromeos-image-archive/trybot-stumpy-test-ap/', ) self.patchSafeList() result = purge_lib.ProduceFilteredCandidates( self.ctx, 'gs://chromeos-image-archive/', protected_prefixes, 2) self.assertEqual(list(result), [ self.mockResult( 'gs://chromeos-image-archive/foo-paladin/plain_file'), self.mockResult('gs://chromeos-image-archive/foo-paladin/1.2.3/'), ])