pychef api pychef ChefServerNotFoundE

2024-05-14 15:16:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用chef服务器,配置几个不同的节点/环境。在

当使用pychef api请求env属性时,连续几次(当使用python服务器调用chef服务器刷新web页面时)im得到ChefServerNotFoundError(前几次没问题,第三次出现异常)

我猜这台服务器上有某种防火墙/防ddos攻击,但我不知道如何编辑这些设置。在

有人知道吗?在

这是方法的一部分(调用3次并引发异常):

env_nodes = Search('node').query('chef_environment:  {0}'.format(env_name))
nodes_dict = {}
for n in env_nodes:
    node = Node(n['name'])
    nodes_dict[node.name] = node['ipaddress']`

这是回溯:

^{pr2}$

Tags: name服务器envapiwebnode属性节点
1条回答
网友
1楼 · 发布于 2024-05-14 15:16:37

在webapp或其他多线程系统中使用PyChef时,应该显式地传递API对象。有一个系统可以跟踪threadlocal中的默认API目标,以便简化简单的脚本,但回想起来,这可能是一个错误,因为它会导致这些令人困惑的问题。这将是该代码的更好版本,也更快:

nodes_dict =  {row.object.name: row.object['ipaddress'] for row in Search('node', 'chef_environment:{}'.format(env_name), api=api)}

其中apichef.autoconfigure()或其他ChefAPI对象的返回值。在

相关问题 更多 >

    热门问题