Example #1
0
  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'),
    ])
Example #2
0
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
Example #3
0
    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/'),
        ])