class CheckDependenciesPass(Pass): """Check that the dependencies are self-consistent.""" def __init__(self): Pass.__init__(self) def register_artifacts(self): self._register_temp_file_needed(config.PROJECTS) self._register_temp_file_needed(config.SYMBOL_DB) self._register_temp_file_needed(config.CVS_PATHS_DB) def iter_cvs_items(self): raise NotImplementedError() def get_cvs_item(self, item_id): raise NotImplementedError() def run(self, run_options, stats_keeper): Ctx()._projects = read_projects( artifact_manager.get_temp_file(config.PROJECTS)) Ctx()._cvs_path_db = CVSPathDatabase(DB_OPEN_READ) self.symbol_db = SymbolDatabase() Ctx()._symbol_db = self.symbol_db logger.quiet("Checking dependency consistency...") fatal_errors = [] for cvs_item in self.iter_cvs_items(): # Check that the pred_ids and succ_ids are mutually consistent: for pred_id in cvs_item.get_pred_ids(): pred = self.get_cvs_item(pred_id) if not cvs_item.id in pred.get_succ_ids(): fatal_errors.append( '%s lists pred=%s, but not vice versa.' % ( cvs_item, pred, )) for succ_id in cvs_item.get_succ_ids(): succ = self.get_cvs_item(succ_id) if not cvs_item.id in succ.get_pred_ids(): fatal_errors.append( '%s lists succ=%s, but not vice versa.' % ( cvs_item, succ, )) if fatal_errors: raise FatalException('Dependencies inconsistent:\n' '%s\n' 'Exited due to fatal error(s).' % ('\n'.join(fatal_errors), )) self.symbol_db.close() self.symbol_db = None Ctx()._cvs_path_db.close() logger.quiet("Done")
class CheckDependenciesPass(Pass): """Check that the dependencies are self-consistent.""" def __init__(self): Pass.__init__(self) def register_artifacts(self): self._register_temp_file_needed(config.PROJECTS) self._register_temp_file_needed(config.SYMBOL_DB) self._register_temp_file_needed(config.CVS_PATHS_DB) def iter_cvs_items(self): raise NotImplementedError() def get_cvs_item(self, item_id): raise NotImplementedError() def run(self, run_options, stats_keeper): Ctx()._projects = read_projects( artifact_manager.get_temp_file(config.PROJECTS) ) Ctx()._cvs_path_db = CVSPathDatabase(DB_OPEN_READ) self.symbol_db = SymbolDatabase() Ctx()._symbol_db = self.symbol_db logger.quiet("Checking dependency consistency...") fatal_errors = [] for cvs_item in self.iter_cvs_items(): # Check that the pred_ids and succ_ids are mutually consistent: for pred_id in cvs_item.get_pred_ids(): pred = self.get_cvs_item(pred_id) if not cvs_item.id in pred.get_succ_ids(): fatal_errors.append( '%s lists pred=%s, but not vice versa.' % (cvs_item, pred,)) for succ_id in cvs_item.get_succ_ids(): succ = self.get_cvs_item(succ_id) if not cvs_item.id in succ.get_pred_ids(): fatal_errors.append( '%s lists succ=%s, but not vice versa.' % (cvs_item, succ,)) if fatal_errors: raise FatalException( 'Dependencies inconsistent:\n' '%s\n' 'Exited due to fatal error(s).' % ('\n'.join(fatal_errors),) ) self.symbol_db.close() self.symbol_db = None Ctx()._cvs_path_db.close() logger.quiet("Done")
def run(self, run_options, stats_keeper): Ctx()._projects = read_projects( artifact_manager.get_temp_file(config.PROJECTS)) Ctx()._cvs_path_db = CVSPathDatabase(DB_OPEN_READ) self.symbol_db = SymbolDatabase() Ctx()._symbol_db = self.symbol_db logger.quiet("Checking dependency consistency...") fatal_errors = [] for cvs_item in self.iter_cvs_items(): # Check that the pred_ids and succ_ids are mutually consistent: for pred_id in cvs_item.get_pred_ids(): pred = self.get_cvs_item(pred_id) if not cvs_item.id in pred.get_succ_ids(): fatal_errors.append( '%s lists pred=%s, but not vice versa.' % ( cvs_item, pred, )) for succ_id in cvs_item.get_succ_ids(): succ = self.get_cvs_item(succ_id) if not cvs_item.id in succ.get_pred_ids(): fatal_errors.append( '%s lists succ=%s, but not vice versa.' % ( cvs_item, succ, )) if fatal_errors: raise FatalException('Dependencies inconsistent:\n' '%s\n' 'Exited due to fatal error(s).' % ('\n'.join(fatal_errors), )) self.symbol_db.close() self.symbol_db = None Ctx()._cvs_path_db.close() logger.quiet("Done")
def prime_ctx(): def rf(filename): artifact_manager.register_temp_file(filename, None) from cvs2svn_lib.common import DB_OPEN_READ from cvs2svn_lib.symbol_database import SymbolDatabase from cvs2svn_lib.cvs_path_database import CVSPathDatabase rf(config.CVS_PATHS_DB) rf(config.SYMBOL_DB) from cvs2svn_lib.cvs_item_database import OldCVSItemStore from cvs2svn_lib.metadata_database import MetadataDatabase rf(config.METADATA_DB) rf(config.CVS_ITEMS_STORE) rf(config.CVS_ITEMS_FILTERED_STORE) rf(config.CVS_ITEMS_FILTERED_INDEX_TABLE) artifact_manager.pass_started(None) Ctx()._projects = ProjectList() Ctx()._symbol_db = SymbolDatabase() Ctx()._cvs_path_db = CVSPathDatabase(DB_OPEN_READ) Ctx()._cvs_items_db = OldCVSItemStore( artifact_manager.get_temp_file(config.CVS_ITEMS_STORE)) Ctx()._metadata_db = MetadataDatabase(DB_OPEN_READ)
def run(self, run_options, stats_keeper): Ctx()._projects = read_projects( artifact_manager.get_temp_file(config.PROJECTS) ) Ctx()._cvs_path_db = CVSPathDatabase(DB_OPEN_READ) self.symbol_db = SymbolDatabase() Ctx()._symbol_db = self.symbol_db logger.quiet("Checking dependency consistency...") fatal_errors = [] for cvs_item in self.iter_cvs_items(): # Check that the pred_ids and succ_ids are mutually consistent: for pred_id in cvs_item.get_pred_ids(): pred = self.get_cvs_item(pred_id) if not cvs_item.id in pred.get_succ_ids(): fatal_errors.append( '%s lists pred=%s, but not vice versa.' % (cvs_item, pred,)) for succ_id in cvs_item.get_succ_ids(): succ = self.get_cvs_item(succ_id) if not cvs_item.id in succ.get_pred_ids(): fatal_errors.append( '%s lists succ=%s, but not vice versa.' % (cvs_item, succ,)) if fatal_errors: raise FatalException( 'Dependencies inconsistent:\n' '%s\n' 'Exited due to fatal error(s).' % ('\n'.join(fatal_errors),) ) self.symbol_db.close() self.symbol_db = None Ctx()._cvs_path_db.close() logger.quiet("Done")