def osm2mimir(self, autocomplete_instance, filename, job_id, dataset_uid): """ launch osm2mimir """ autocomplete_instance = models.db.session.merge( autocomplete_instance) #reatache the object logger = get_autocomplete_instance_logger(autocomplete_instance, task_id=job_id) logger.debug('running osm2mimir for {}'.format(job_id)) job = models.Job.query.get(job_id) cnx_string = current_app.config['MIMIR_URL'] working_directory = unzip_if_needed(filename) params = ['-i', working_directory, '--connection-string', cnx_string] for lvl in autocomplete_instance.admin_level: params.append('--level') params.append(str(lvl)) if autocomplete_instance.admin == 'OSM': params.append('--import-admin') if autocomplete_instance.street == 'OSM': params.append('--import-way') if autocomplete_instance.poi == 'OSM': params.append('--import-poi') params.append('--dataset') params.append(autocomplete_instance.name) try: res = launch_exec("osm2mimir", params, logger) if res != 0: #@TODO: exception raise ValueError('osm2mimir failed') except: logger.exception('') job.state = 'failed' models.db.session.commit() raise
def cosmogony2mimir(self, autocomplete_instance, filename, job_id, dataset_uid): """ launch cosmogony2mimir """ autocomplete_instance = models.db.session.merge( autocomplete_instance) # reattach the object logger = get_autocomplete_instance_logger(autocomplete_instance, task_id=job_id) logger.debug('running cosmogony2mimir for {}'.format(job_id)) job = models.Job.query.get(job_id) cnx_string = current_app.config['MIMIR_URL'] cosmo_file = unzip_if_needed(filename) params = [ '--input', cosmo_file, '--connection-string', cnx_string, '--dataset', autocomplete_instance.name, '--french-id-retrocompatibility', ] try: res = launch_exec("cosmogony2mimir", params, logger) if res != 0: # @TODO: exception raise ValueError('cosmogony2mimir failed') except: logger.exception('') job.state = 'failed' models.db.session.commit() raise
def bano2mimir(self, autocomplete_instance, filename, job_id, dataset_uid): """ launch bano2mimir """ autocomplete_instance = models.db.session.merge( autocomplete_instance) #reatache the object logger = get_autocomplete_instance_logger(autocomplete_instance, task_id=job_id) job = models.Job.query.get(job_id) cnx_string = current_app.config['MIMIR_URL'] working_directory = unzip_if_needed(filename) if autocomplete_instance.address != 'BANO': logger.warn( 'no bano data will be loaded for instance {} because the address are read from {}' .format(autocomplete_instance.name, autocomplete_instance.address)) return try: res = launch_exec("bano2mimir", [ '-i', working_directory, '--connection-string', cnx_string, '--dataset', autocomplete_instance.name ], logger) if res != 0: #@TODO: exception raise ValueError('bano2mimir failed') except: logger.exception('') job.state = 'failed' models.db.session.commit() raise
def osm2mimir(self, autocomplete_instance, filename, job_id, dataset_uid, autocomplete_version): """launch osm2mimir""" executable = "osm2mimir" if autocomplete_version == 2 else "osm2mimir7" autocomplete_instance = models.db.session.merge(autocomplete_instance) # reatache the object logger = get_autocomplete_instance_logger(autocomplete_instance, task_id=job_id) logger.debug('running {} for {}'.format(executable, job_id)) job = models.Job.query.get(job_id) data_filename = unzip_if_needed(filename) custom_config = "custom_config" working_directory = os.path.dirname(data_filename) custom_config_config_toml = '{}/{}.toml'.format(working_directory, custom_config) data = autocomplete_instance.config_toml.encode("utf-8") cosmogony_file = models.DataSet.get_cosmogony_file_path() with open(custom_config_config_toml, 'w') as f: f.write(data) params = get_osm2mimir_params( autocomplete_instance, data_filename, working_directory, custom_config, autocomplete_version, cosmogony_file, ) try: res = launch_exec(executable, params, logger) if res != 0: # @TODO: exception raise ValueError('{} failed'.format(executable)) except: logger.exception('') job.state = 'failed' models.db.session.commit() raise
def openaddresses2mimir(self, autocomplete_instance, filename, job_id, dataset_uid, autocomplete_version): """launch openaddresses2mimir""" executable = "openaddresses2mimir" if autocomplete_version == 2 else "openaddresses2mimir7" autocomplete_instance = models.db.session.merge(autocomplete_instance) # reatache the object logger = get_autocomplete_instance_logger(autocomplete_instance, task_id=job_id) if autocomplete_instance.address != 'OA': logger.warning( 'no open addresses data will be loaded for instance {} because the address are read from {}'.format( autocomplete_instance.name, autocomplete_instance.address ) ) return job = models.Job.query.get(job_id) working_directory = unzip_if_needed(filename) cosmogony_file = models.DataSet.get_cosmogony_file_path() params = get_openaddresses2mimir_params( autocomplete_instance, working_directory, autocomplete_version, cosmogony_file ) try: res = launch_exec(executable, params, logger) if res != 0: # @TODO: exception raise ValueError('{} failed'.format(executable)) except: logger.exception('') job.state = 'failed' models.db.session.commit() raise
def cosmogony2mimir(self, autocomplete_instance, filename, job_id, dataset_uid, autocomplete_version): executable = "cosmogony2mimir" if autocomplete_version == 2 else "cosmogony2mimir7" autocomplete_instance = models.db.session.merge(autocomplete_instance) # reattach the object logger = get_autocomplete_instance_logger(autocomplete_instance, task_id=job_id) logger.debug('running {} for {}, version autocomplete {}'.format(executable, job_id, autocomplete_version)) job = models.Job.query.get(job_id) cosmo_file = unzip_if_needed(filename) params = get_cosmogony2mimir_params(cosmo_file, autocomplete_instance, autocomplete_version) try: res = launch_exec(executable, params, logger) if res != 0: # @TODO: exception raise ValueError('{} failed'.format(executable)) except: logger.exception('') job.state = 'failed' models.db.session.commit() raise
def osm2mimir(self, autocomplete_instance, filename, job_id, dataset_uid): """ launch osm2mimir """ autocomplete_instance = models.db.session.merge( autocomplete_instance) # reatache the object logger = get_autocomplete_instance_logger(autocomplete_instance, task_id=job_id) logger.debug('running osm2mimir for {}'.format(job_id)) job = models.Job.query.get(job_id) cnx_string = current_app.config['MIMIR_URL'] data_filename = unzip_if_needed(filename) custom_config = "custom_config" working_directory = os.path.dirname(data_filename) custom_config_config_toml = '{}/{}.toml'.format(working_directory, custom_config) with open(custom_config_config_toml, 'w') as f: f.write(autocomplete_instance.config_toml.encode("utf-8")) params = [ '-i', data_filename, '--connection-string', cnx_string, '-D', "{}/".format(working_directory), '-s', custom_config, ] try: res = launch_exec("osm2mimir", params, logger) if res != 0: # @TODO: exception raise ValueError('osm2mimir failed') except: logger.exception('') job.state = 'failed' models.db.session.commit() raise