def METHOD_NAME(error_log=api.current_logger().error,
                          debug_log=api.current_logger().debug,
                          op=FileOperations(),
                          consume_function=_get_facts):
    """
    Migrate CUPS configuration based on gathered facts
    :param func error_log: sends error messages
    :param func debug_log: sends debug messages
    :param obj op: IO operations
    :param func consume_function: receives data object from a model
    """
    facts = consume_function(CupsChangedFeatures)
    error_list = []
    if not facts:
        return
    if facts.include:
        debug_log('Migrating CUPS configuration - Include directives.')
        include_errors = []
        include_errors = migrate_include(facts.include_files, op)
        if include_errors:
            error_list += include_errors
    if facts.digest:
        debug_log('Migrating CUPS configuration - BasicDigest/Digest directives.')
        try:
            migrate_digest(op)
        except IOError as error:
            error_list.append('Digest/BasicDigest values: {}'.format(error))
    if facts.env:
        debug_log('Migrating CUPS configuration - PassEnv/SetEnv directives.')
        try:
            move_directives(['PassEnv', 'SetEnv'],
                            op)
        except IOError as error:
            error_list.append('PassEnv/SetEnv directives: {}'.format(error))
    if facts.certkey:
        debug_log('Migrating CUPS configuration - '
                  'ServerKey/ServerCertificate directive.')
        try:
            migrate_certkey(op)
        except IOError as error:
            error_list.append('ServerKey/ServerCertificate directives: {}'.format(error))
    if facts.printcap:
        debug_log('Migrating CUPS configuration - PrintcapFormat directive.')
        try:
            move_directives(['PrintcapFormat'],
                            op)
        except IOError as error:
            error_list.append('PrintcapFormat directive: {}'.format(error))
    if error_list:
        error_log('Following errors happened during CUPS migration:'
                  + ''.join(['\n   - {}'.format(err) for err in error_list]))