Zenoss ZenPack开发的典型工作流程是什么?

ZenPack开发似乎涉及创建各种持久状态。有一些模型类代表显式持久状态。存在与模型对象相关联的皮肤。有组织者和持久类的实例(数据源,图形等)。 考虑到在开发过程中,许多事情在完成之前都做错了,并且考虑到加载一个做错事的ZenPack会对Zenoss实例造成持续影响,并且这些后果很难撤消,这是什么开发ZenPack的常用方法是什么?     
已邀请:
我对Zenoss没有具体了解,但这种情况对于任何以某种形式持续配置的系统来说都很常见,例如Zope和Plone。 工作流程是您创建一个可以删除和复制的测试环境,但部分和整体。例如,对于典型的Plone站点,您有一个buildout,可以复制开发环境,包括所有依赖项。然后在您开发的扩展模块中,您将拥有一个脚本/函数,允许您根据需要设置持久性配置。 这使您能够轻松地重新创建所需的状态。 您还有工作流程“阶段”。开发,通常在每个开发人员本地机器上完成。暂存/测试,在测试服务器上完成。这是通过将生产计算机持久状态复制到登台计算机,然后运行任何设置/升级脚本,并确保一切正常来完成的。最后你升级了生产服务器。     
我本周正在研究Zenoss 3.1这个问题。 警告- 如果你做了一个糟糕的zenpack - 没有等待 - 当你做一个糟糕的时候,它可能会被困在Zope的数据库中,并且没有办法把它拿出AFAIK。所以- 首先使用GUI对干净的Zenoss站点进行完整备份。 稍后您需要使用zenrestore进行恢复以清理混乱。 我认为有两个答案: 1)如果它是一个门户网站 - Portlet只能使用鸡蛋安装。通常,Zenoss文档建议您使用GUI界面创建鸡蛋,但这会产生一个荒谬的开发迭代。但是在其他方面的文档中有解释。如果您的代码(可能从知名社区portlet开始,如Show Graph或Google Maps)对于portlet而言是正确的,而不是常规zenpacks,那么 您在标准zenpack表单中命名代码的顶级目录, 与版本。 进入该目录并运行
python setup.py bdist_egg
这将创建dist和构建目录。 鸡蛋将在dist目录中。 使用GUI安装鸡蛋。 注意它没有完全安装...... grrrrrr。 重启守护进程 -
zopectl restart ; zenhub restart
测试。 使用GUI删除portlet。重复。 陷阱:   - 你必须在顶层目录中有setup.py和一个或多个--INSTALL.txt MANIFEST.in README.txt。 Setup.py必须与您的目录名称匹配。 如果您使用旧的或复制的init.py文件及其init.pyc版本,则可能需要删除这些pyc文件以强制python脚本重新创建它们。 我喜欢运行脚本如下以确定:
rm -f ./dist  ./build ; python setup.py bdist_egg
2)如果它是一个普通的zenpack 文档告诉你如何做到这一点。 从任何来源安装你的zenpack;通常,您将从GUI创建的空白开始。 将文件从
/usr/local/zenoss/zenoss/Zenpacks/yourzenpack
复制到代码开发区域。 使用GUI卸载zenpack。 在zenoss用户的命令行上,运行zpack install --link命令(查找语法)以安装实际位于代码区域中的zenpack。 测试 更新你的代码。 在命令行上作为zenoss,运行
zopectl restart ; zenhub restart
测试。 重复。要开心。     

要回复问题请先登录注册