def run(neo4j_session: neo4j.Session, config: Config) -> None: analysis_job_directory_path = config.analysis_job_directory if not analysis_job_directory_path: logger.info("Skipping analysis because no job path was provided.") return analysis_job_directory = pathlib.Path(analysis_job_directory_path) if not analysis_job_directory.exists(): logger.warning( "Skipping analysis because the provided job path '%s' does not exist.", analysis_job_directory, ) return if not analysis_job_directory.is_dir(): logger.warning( "Skipping analysis because the provided job path '%s' is not a directory.", analysis_job_directory, ) return logger.info("Loading analysis jobs from directory: %s", analysis_job_directory) for path in analysis_job_directory.glob("**/*.json"): logger.info("Running discovered analysis job: %s", path) try: GraphJob.run_from_json_file( path, neo4j_session, {"UPDATE_TAG": config.update_tag}, ) except (KeyboardInterrupt, SystemExit): raise except Exception: logger.exception( "An exception occurred while executing discovered analysis job: %s", path)
def run_cleanup_job(filename, neo4j_session, common_job_parameters): GraphJob.run_from_json( neo4j_session, read_text( 'cartography.data.jobs.cleanup', filename, ), common_job_parameters, )
def run_analysis_job(filename, neo4j_session, common_job_parameters, package='cartography.data.jobs.analysis'): GraphJob.run_from_json( neo4j_session, read_text( package, filename, ), common_job_parameters, )
def run_analysis_job(filename, session, common_job_parameters): GraphJob.run_from_json( session, read_text( 'cartography.data.jobs.analysis', filename, ), common_job_parameters, )
def run_cleanup_job( filename: str, neo4j_session: neo4j.Session, common_job_parameters: Dict, package: str = 'cartography.data.jobs.cleanup', ) -> None: GraphJob.run_from_json( neo4j_session, read_text( package, filename, ), common_job_parameters, get_job_shortname(filename), )