def METHOD_NAME(model_context):
    """
    The main entry point for the injectVariables tool.
    :param model_context: The model context object
    :return: exit code
    """
    _method_name = 'main'
    __logger.entering(class_name=_class_name, method_name=_method_name)
    _exit_code = ExitCode.OK
    model_file = model_context.get_model_file()
    model = None
    try:
        model = FileToPython(model_file, True).parse()
    except TranslateException, te:
        __logger.severe('WLSDPLY-20009', _program_name, model_file, te.getLocalizedMessage(), error=te,
                        class_name=_class_name, method_name=_method_name)
        _exit_code = ExitCode.ERROR
    if _exit_code == ExitCode.OK:
        inserted, model = __inject(model, model_context)
        if inserted:
            __logger.info('WLSDPLY-19604', class_name=_class_name, method_name=_method_name)
            try:
                __persist_model(model, model_context)
            except TranslateException, ex:
                __logger.severe('WLSDPLY-20024', _program_name, model_context.get_archive_file_name(),
                                ex.getLocalizedMessage(), error=ex, class_name=_class_name, method_name=_method_name)
                _exit_code = ExitCode.ERROR
    __logger.exiting(class_name=_class_name, method_name=_method_name, result=_exit_code)
    return _exit_code