Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
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
Esempio n. 7
0
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