def _meta_forcemerge_index()

in src/es_pii_tool/helpers/steps.py [0:0]


def _meta_forcemerge_index(task: 'Task', var: DotMap, **kwargs) -> str:
    """Do some task logging around the forcemerge api call"""
    step = kwargs.pop('step', None)
    if step is None:
        raise MissingArgument('_meta_forcemerge_index', 'keyword argument', 'step')
    index = var.redaction_target
    msg = f'Before forcemerge, {api.report_segment_count(var.client, index)}'
    logger.info(msg)
    step.add_log(msg)
    fmkwargs = {}
    if 'forcemerge' in task.job.config:
        fmkwargs = task.job.config['forcemerge']
    fmkwargs['index'] = index
    if 'only_expunge_deletes' in fmkwargs and fmkwargs['only_expunge_deletes']:
        msg = 'Forcemerge will only expunge deleted docs!'
        logger.info(msg)
        step.add_log(msg)
    else:
        mns = 1  # default value
        if 'max_num_segments' in fmkwargs and isinstance(
            fmkwargs['max_num_segments'], int
        ):
            mns = fmkwargs['max_num_segments']
        msg = f'Proceeding to forcemerge to {mns} segments per shard'
        logger.info(msg)
        step.add_log(msg)
    logger.debug('forcemerge kwargs = %s', fmkwargs)
    # Do the actual forcemerging
    api.forcemerge_index(var.client, **fmkwargs)
    msg = f'After forcemerge, {api.report_segment_count(var.client, index)}'
    logger.info(msg)
    step.add_log(msg)
    return msg