账户和服务器管理库
项目描述
ocflib
ocflib是一个用于与Open Computing Facility服务(尤其是账户和服务器管理)一起工作的Python库。
该库针对Python 3.5.3和3.7(在Debian stretch和buster中可用的版本)。
该库的目标是使重用OCF Python代码更容易。过去,代码在approve、atool、create、chpass、sorry、signat等之间分割,这使得像共享常用密码要求这样的操作变得困难。
这里属于什么
一般来说,可重用的代码应该在这里,但独立的程序或二进制文件不应该。例如,ocfweb使用ocflib代码更改密码和创建账户,但Django Web应用不属于这里。
在OCF上使用
ocflib在OCF上由Puppet安装,因此您可以直接从系统python3安装中导入import ocflib.lab.stats
。我们不会将其安装到python2 site-packages。
我们构建了一个由Puppet安装的Debian软件包。我们还将其发布到PyPI,这对于便于安装到virtualenvs中非常有用。
关于锁文件说明
此仓库包含一个poetry.lock
文件。锁文件通常用于确保不同机器上安装的依赖项版本完全相同。然而,由于这是一个库,我们不希望强制下游用户使用与我们完全相同的依赖项版本,实际上,在分发时锁文件会被忽略。我们仍然将其包含在仓库中,以简化ocflib的开发、测试和调试。
本地安装
测试更改
ocflib的开发使用Poetry。测试ocflib更改的最简单方法是让Poetry为您管理虚拟环境
poetry install
poetry shell
现在,如果您从ocflib导入某些内容,您将使用工作副本中的版本。
测试和代码检查
我们使用pytest测试我们的代码,并使用pre-commit进行检查。在推送之前,您应该运行make test
以运行这两个步骤。
tests
目录包含自动化测试,鼓励您添加到(并不要破坏)。tests-manual
目录包含用于测试的脚本。
使用pre-commit
我们在提交之前使用pre-commit来检查我们的代码。虽然一些规则可能看起来有些武断,但它有助于保持风格一致,并确保诸如尾随空格等讨厌的事情不会渗入。
您只需运行make install-hooks
即可安装必要的git钩子;一旦安装,pre-commit将在每次提交时运行。
或者,如果您不想安装任何钩子,您也可以像往常一样运行make test
,这也会运行钩子。
故障排除:Cracklib错误
如果您尝试在ocfweb(或相关仓库)上运行make install-hooks并遇到此错误
./_cracklib.c:40:10: fatal error: 'crack.h' file not found
#include <crack.h>
^~~~~~~~~
1 error generated.
问题与cracklib包找不到安装所需的头文件有关。请确保您的机器上已安装cracklib(如果您使用Mac,请运行brew install cracklib
)。
部署更改
部署更改包括
Jenkins将自动为您执行所有这些步骤,包括自动生成新的版本号。只要make test
通过,您的代码将被自动部署。您可以通过此处监控部署进度。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。