def _set_public_acl_if_needed(url): """Sets public ACL on the object with given URL, if it's not public yet.""" if storage.get_acl(url, 'allUsers'): logs.log('%s is already marked public, skipping.' % url) return True if not storage.set_acl(url, 'allUsers'): logs.log_error('Failed to mark %s public.' % url) return False return True
def _make_corpus_backup_public(target, corpus_fuzzer_name_override, corpus_backup_bucket_name): """Identifies old corpus backups and makes them public.""" corpus_backup_date = utils.utcnow().date() - datetime.timedelta( days=data_types.CORPUS_BACKUP_PUBLIC_LOOKBACK_DAYS) corpus_backup_url = corpus_manager.gcs_url_for_backup_file( corpus_backup_bucket_name, corpus_fuzzer_name_override or target.engine, target.project_qualified_name(), corpus_backup_date, ) try: result = storage.get(corpus_backup_url) except: result = None if not result: logs.log_warn("Failed to find corpus backup %s." % corpus_backup_url) return try: result = storage.get_acl(corpus_backup_url, "allUsers") except: result = None if result: # Backup is already marked public. Skip. logs.log("Corpus backup %s is already marked public, skipping." % corpus_backup_url) return try: result = storage.set_acl(corpus_backup_url, "allUsers") except: result = None if not result: logs.log_error("Failed to mark corpus backup %s public." % corpus_backup_url) return logs.log("Corpus backup %s is now marked public." % corpus_backup_url)