def render_template(template_filename, configuration_context):
    """
    parse the template file and return the content as a text

    :param template_filename: template filename path
    :param configuration_context: dictionary containing configurations loaded from module.ini
    :return populated template content
    """
    settings = configuration_context[constants.CONFIG_SETTINGS_KEY]
    # Converting multi-valued params to dictionary
    params_context = configuration_context[constants.CONFIG_PARAMS_KEY]

    if ConfigParserUtil.str_to_bool(settings[constants.CONFIG_READ_FROM_ENVIRONMENT_KEY]):
        log.info("READ_FROM_ENVIRONMENT is set to True. Reading template parameters from environment variables")
        template_source = template_environment.loader.get_source(template_environment, template_filename)[0]
        parsed_content = template_environment.parse(template_source)
        variables = meta.find_undeclared_variables(parsed_content)
        params_context_dict = ConfigParserUtil.get_context_from_env(variables, params_context)
    else:
        params_context_dict = ConfigParserUtil.get_multivalued_attributes_as_dictionary(params_context)

    log.info("Rendering template file: %s using template parameters: %s", template_filename, params_context_dict)
    return template_environment.get_template(template_filename).render(params_context_dict)