Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未在yum插件中调用hook_Python_Plugins_Yum_Rhel6 - Fatal编程技术网

Python 未在yum插件中调用hook

Python 未在yum插件中调用hook,python,plugins,yum,rhel6,Python,Plugins,Yum,Rhel6,我已经编写了一个自定义插件,它具有不同的yum-viz挂钩。配置挂钩、后恢复设置挂钩、排除挂钩、预解析挂钩等。。。问题是,有时在执行yum命令时,新机器上不会调用postrepsetup和exclude挂钩。 我还编写了另一个插件,每个钩子中都有简单的print语句,该插件中的每个钩子都会被调用。我想不出是什么问题 下面是正在工作的简单插件,不幸的是,我无法在这里共享其他插件的代码,但它连接到postreposetup_hook中的服务器,exclude_hook执行包排除。任何指针都会非常有用

我已经编写了一个自定义插件,它具有不同的yum-viz挂钩。配置挂钩、后恢复设置挂钩、排除挂钩、预解析挂钩等。。。问题是,有时在执行yum命令时,新机器上不会调用postrepsetup和exclude挂钩。 我还编写了另一个插件,每个钩子中都有简单的print语句,该插件中的每个钩子都会被调用。我想不出是什么问题

下面是正在工作的简单插件,不幸的是,我无法在这里共享其他插件的代码,但它连接到postreposetup_hook中的服务器,exclude_hook执行包排除。任何指针都会非常有用

import yum
from yum.plugins import PluginYumExit, TYPE_CORE, TYPE_INTERACTIVE

requires_api_version='2.3'
plugin_type=(TYPE_CORE)
def config_hook(conduit):
    print 'In config'

def init_hook(conduit):
    print 'In init'
def prereposetup_hook(conduit):
    print 'In prereposetup'
def postreposetup_hook(conduit):
    print 'In postreposetup'
def exclude_hook(conduit):
    print 'In exclude'
def preresolve_hook(conduit):
    print 'In preresolve'
def postresolve_hook(conduit):
    print 'In postreposetup'

如果你将这些完全相同的打印行粘贴到另一个脚本中(我们会修改它们以指示它们首先来自哪个插件),并在同一台机器上启用这两个脚本,你会看到该脚本为每个钩子打印的行,而不是为另一个插件的每个钩子打印的行?我尝试了同样的方法。上述插件中的每个钩子都会被调用,但其他插件只会调用config_钩子、preresolve_钩子。未调用postreposetup_钩子和exclude_钩子。我从插件的钩子中清除了所有不起作用的代码,把这些打印语句放进去,它就起作用了,然后我把代码放回去,它就起作用了。所以我不知道为什么它在早期不起作用,后来又是如何开始起作用的。我需要找出这一点,因为这是显示的插件停止。你能给我一些关于如何找到根本原因的信息吗?听起来你的代码中有一个打字错误/错误/等等,导致了失败,插件在早期的钩子中爆炸了,所以后来的钩子没有运行。我相信,将yum调试调高到足够高的级别将向您展示这些失败,甚至可能导致yum立即终止它们。