def __capture_tags_for_configs(cids, pathbuilder, configs, tagsizes=settings.DEFAULT.tagsizes, tagtypes=settings.DEFAULT.tagtypes, capture_existing=False): all_tags = placelocal.get_tags_for_campaigns(cids=cids) if not all_tags: LOGGER.warn("No tags found to capture!") return LOGGER.info("Capturing tags for %s campaigns over %s configs", len(cids), len(configs)) # TODO: Implement progress bar errors = [] pool = ThreadPool(processes=MAX_REMOTE_JOBS) results = {} all_configs = settings.DEFAULT.all_configs for config_name in configs: config_data = all_configs[config_name] if not config_data['enabled']: LOGGER.debug("Skipping disabled config %s" % config_name) continue pathbuilder.config = config_name capabilities = config_data['capabilities'] capabilities['name'] = config_name capabilities['build'] = "tagcompare_" + pathbuilder.build capabilities['maxDuration'] = 3 * 60 * 60 # 3h max duration cpb = pathbuilder.clone() results[config_name] = pool.apply_async(func=__capture_tags, args=(capabilities, all_tags, cpb, tagsizes, tagtypes, capture_existing)) for config_name in results: errors += results[config_name].get() if errors: LOGGER.error("%s found console errors:\n%s", pathbuilder.build, errors) return errors
def capture_tags_for_all_configs(cids, pathbuilder): all_tags, num_tags = placelocal.get_tags_for_campaigns(cids=cids) if not all_tags: LOGGER.warn("No tags found to capture!") return LOGGER.info( "Capturing {} tags for {} campaigns".format(num_tags, len(cids))) # Use remote browsers all_configs = settings.DEFAULT.configs config_names = settings.DEFAULT.configs_in_comparison() for config in config_names: config_data = all_configs[config] if not config_data['enabled']: LOGGER.debug("Skipping disabled config %s" % config) continue capabilities = config_data['capabilities'] pathbuilder.config = config __capture_tags(capabilities, all_tags, pathbuilder, capture_existing=False)