用于管理和自动化Red Hat软件版本的cli工具
rh-elliott的Python项目详细描述
Elliott-Errata工具自动化
elliott是自动化勘误表几个方面的工具 生命周期。这是因为勘误表/咨询过程有钩子 进入其他几个系统,并手动协调所有这些 乏味且容易出错。
目录
基础和术语
要想熟练地操作埃利奥特,首先要了解 我们使用的语言,以及一些勘误表过程。让我们 介绍一些基本知识。
- Elliott是这个软件,写大写或小写 只要你记得它的结尾是two"t"s
- 埃利奥特最初是由
萨姆·穆尼拉是
提到史蒂芬·斯皮尔伯格1982年的夏季大片,
e.t.外星人
- "et"也是引用勘误表工具的一种快捷方式,请立即查看连接?
- 语法与同义词
- 勘误表-是单词"勘误表"的单独版本
- 勘误表-是复数形式,指"勘误表"的集合
- 建议-是我们使用的另一个词,它可以替换
勘误表
- 这个词主要用于人类的对话或印刷品中。 作为信息性消息("此错误已附加到 咨询RHBA-1337")
- 在幕后,api和代码通常使用术语erratum
- brew版本-nvrs(名称版本发布)和数字标识
- 在子命令中交替使用nvr或数字生成id
- 例如,
apb-1.1.16-1.el7
是构建的nvr 668623 - 这是
apb
包,版本1.1.16
,第一次发布(-1
), 对于RHEL 7(.el7
)
当软件 首次发布或更新。为每个新的 在产品系列中发布或更新。建议包含对 其他公共和私人系统中的项目。
- Bugzilla Bug被添加到Advisory中,它们的状态(
verified
,on_qa
等)会定期刷新,因为通知无法移动 转发以供发布,直到所有相关的错误都通过了测试 - Brew RPM版本附加到Advisory,其中包含最新的 软件和错误修复
- 签署RPM版本时,Brew映像(容器)版本是 使用新的/更新的并附加到一个单独的 咨询
设置和安装
pip安装rh elliott
认证
继续之前,请确保您有有效的kerberos票证。有效的 使用Elliott需要kerberos票证。请参阅以下链接 帮助您了解Red Hat的kerberos基础知识:
- doc-87898-mojo-使用kerberos身份验证
一旦你处理好了,你应该运行一个简单的命令 埃利奥特。我建议如下,它将验证您是否可以访问 通过尝试获取最近 创建的建议:
<elliott> $ ./elliott list
2018-11-20T04:23:44 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/38040
2018-11-15T14:36:55 QE OpenShift Container Platform 3.5 images update https://errata.devel.redhat.com/advisory/37969
2018-11-13T01:17:33 QE OpenShift Container Platform 3.6 images update https://errata.devel.redhat.com/advisory/37911
2018-10-31T15:23:47 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/37632
2018-10-18T11:11:25 NEW_FILES openshift3/jenkins-agent-nodejs-8-rhel7 Container Image Updates https://errata.devel.redhat.com/advisory/37441
用法
在这里,我们将介绍如何有效地使用Elliott。
注意:每个elliott<;foo>;
命令都有一个完整的
详细的"帮助"页。这包括所有
选项。我们不会列出每个
命令在这里。这将集中在让你适应
基础.
获取
-查看建议
您已经看到了如何列出最近创建的
带有列表的勘误表
使用
get
命令详细说明。
要开始,请复制从列表返回的一个id
命令,例如
32916
上一个例子。我们将直接传递给
get
。你会
查看与以前相同的简短输出。
<elliott> $ ./elliott get 32916
2018-03-02T15:19:08 NEW_FILES TEST OpenShift Container Platform 3.5 bug fix and enhancement update https://errata.devel.redhat.com/advisory/32916
假设您需要有关此特定咨询的其他信息。在
在这种情况下,您可以为命令提供--json
选项(这是
所有这些都记录在命令--help
输出中:
<elliott> $ ./elliott get 32916 --json
{
"diffs": {},
"jira_issues": {
"jira_issues": [],
"id_field": "key",
"id_prefix": "jira:",
"idsfixed": [],
"to_fetch": [],
"type": "jira_issues",
"errata": {
"rhba": {
"rating": 0,
"rhnqa": 0,
...
返回的json对象非常大,而且非常庞大。我推荐
如果您想修剪
输出。如果你想的话,把它放在传呼机里也不错
滚动它。例如,只查看内容
信息)从api返回,您可以使用
.content
过滤器
在jq中:
$ ./elliott get 32916 --json | jq '.content' | less
{
"content": {
"revision_count": 1,
"packages": null,
"errata_id": 32916,
"description": "Red Hat OpenShift Container Platform is the company's cloud ...
创建
-创建新的建议
与Elliott一起创建咨询只需要很少的投入 有关勘误表的细节。您必须提供:
- 产品发布(
openshift-3.y
)
将自动为您选择发布日期。但是,你可以
如果有问题,请重写此日期。这种咨询
必须指定。有效的选项包括rpm
和image
注意:此命令不会在没有 明确说明。
下面是--help
选项中的两个示例:
从现在起21天内预览RPM公告(默认发布日期) 对于OSE3.9。默认样板文本将打印到 以json对象的形式显示的屏幕,将提交 到API:
<elliott> $ ./elliott --group openshift-3.9 create --kind rpm
在中的第一个星期一为3.5系列创建图像提示
行军。日期以简单的格式给出,最后我们
通过提供
--是
选项:
<elliott> $ ./elliott --group openshift-3.5 create \
--kind image \
--date 2018-May-05 \
--yes
更改状态
-更改通知的状态
更改顾问的状态。例如,将顾问从
新的_文件
错误和构建仍在添加到qe中
说明测试人员可以接管的位置。
在这里,我们将把示例测试建议32916从new_files
移到
qe
:
<elliott> $ ./elliott change-state --state QE 32916
查找错误
-查找Bugzilla错误,添加到建议中
Bugzilla bug可以自动附加到一个公告。钍保持不变 跟踪哪些记录的问题/增强包括在 当它上船时提供咨询。另外,重要的是要知道 在附加的错误被 在一定程度上得到证实。勘误表工具ui将显示 以百分比形式提供给您的信息,说明 每个状态都有附加的错误。
Bugzilla查询是为给定的产品版本构造的(例如:
openshift-3.9)返回处于modified
状态的错误。在
Bugzilla,这个modified
状态表示工程师
编写代码来实现增强或修复特定的错误
关联的代码已合并到该组件git中
存储库。
从技术上讲,候选bug是处于modified
状态的bug
其目标版本设置为提供的产品版本(GA
或异步更新)。
查找错误
有两种操作模式:
- 自动查询bugzilla并附加所有发现的bug(作为 如上所述)
- 在命令行上手动提供错误ID
示例:自动查找openshift 3.9更新的bug(但是 不要附加它们)。请注意,我们不需要提供
<elliott> $ ./elliott --group openshift-3.9 find-bugs --auto
2018-03-19T17:49:44.573042 Searching group directory: /home/tbielawa/rhat/cd/enterprise-images/groups/openshift-3.9
2018-03-19T17:49:44.584135 Using branch from group.yml: rhaos-3.9-rhel-7
Would have added 7 bugs: 1537593, 1510212, 1519365, 1529482, 1550797, 1543647, 1551904
为了将bug添加到通知中,必须提供
作为--add
选项的值进行提示:
<elliott> $ ./elliott --group openshift-3.9 find-bugs --auto --add 32916
可以使用 使用 有关其他示例和说明,请参见 Brew RPM和图像生成可以附加到Advisory。正如我们注意到的
已经在 构建必须满足非常具体的标准,才能被认为是可行的
生成以添加到顾问中。例如,假设
也就是说,一个可行的构建被标记为"候选",而不是
已收到"已发货"标签,且未附加到任何打开的
咨询(允许关闭咨询)。 下面是一个例子,说明我们如何查找
附加到3.6 如果我们再次运行相同的命令并支持 我们还可以使用
有关其他示例和说明,请参见 Elliott依赖外部数据源为其提供咨询和搜索参数的样板
用于Bugzilla查询。这些数据以yaml文件的形式存储在本地,或者理想情况下存储在单独的
具有分支结构的git存储库与要使用的值匹配。 无论哪种情况,都必须使用 我通常使用此设置运行单元测试: 然后运行单元测试: 添加或删除您希望的任何其他 如果可以,您可以打开HTML覆盖率报告:--flag将标志添加到已识别的错误中
选项. < /P>
--id
选项手动提供一个或多个错误。--help
输出。查找版本
-查找brew RPM/image版本,添加到建议中create
命令中,我们处理了两个不同的
咨询类型、转速和图像。在附加生成时,请确保
您正在将正确的版本附加到匹配的公告。--group=openshift-3.7
,那么一个构建就是一个可行的构建
以下所有条件:rhaos-3.7-rhel7-candidate
rhaos-3.7-rhel7
0
<elliott> $ ./elliott list
2018-11-20T04:23:44 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/38040
2018-11-15T14:36:55 QE OpenShift Container Platform 3.5 images update https://errata.devel.redhat.com/advisory/37969
2018-11-13T01:17:33 QE OpenShift Container Platform 3.6 images update https://errata.devel.redhat.com/advisory/37911
2018-10-31T15:23:47 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/37632
2018-10-18T11:11:25 NEW_FILES openshift3/jenkins-agent-nodejs-8-rhel7 Container Image Updates https://errata.devel.redhat.com/advisory/37441
--attach
选项
以有效的advisory
number作为参数,然后发现
构建将附加到咨询而不是仅仅打印到
屏幕。--build
(-b
)选项。与自动发现一样,仍必须提供--kind{rpm,image}
选项。--help
输出。数据源
--data path
参数或其覆盖设置之一指向此数据源。erratatool.yml
1
<elliott> $ ./elliott list
2018-11-20T04:23:44 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/38040
2018-11-15T14:36:55 QE OpenShift Container Platform 3.5 images update https://errata.devel.redhat.com/advisory/37969
2018-11-13T01:17:33 QE OpenShift Container Platform 3.6 images update https://errata.devel.redhat.com/advisory/37911
2018-10-31T15:23:47 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/37632
2018-10-18T11:11:25 NEW_FILES openshift3/jenkins-agent-nodejs-8-rhel7 Container Image Updates https://errata.devel.redhat.com/advisory/37441
bugzilla.yml
2
<elliott> $ ./elliott list
2018-11-20T04:23:44 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/38040
2018-11-15T14:36:55 QE OpenShift Container Platform 3.5 images update https://errata.devel.redhat.com/advisory/37969
2018-11-13T01:17:33 QE OpenShift Container Platform 3.6 images update https://errata.devel.redhat.com/advisory/37911
2018-10-31T15:23:47 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/37632
2018-10-18T11:11:25 NEW_FILES openshift3/jenkins-agent-nodejs-8-rhel7 Container Image Updates https://errata.devel.redhat.com/advisory/37441
测试
工具如果您还没有
。./hack/env_setup.sh
3
<elliott> $ ./elliott list
2018-11-20T04:23:44 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/38040
2018-11-15T14:36:55 QE OpenShift Container Platform 3.5 images update https://errata.devel.redhat.com/advisory/37969
2018-11-13T01:17:33 QE OpenShift Container Platform 3.6 images update https://errata.devel.redhat.com/advisory/37911
2018-10-31T15:23:47 NEW_FILES Red Hat OpenShift Enterprise Container Image Updates https://errata.devel.redhat.com/advisory/37632
2018-10-18T11:11:25 NEW_FILES openshift3/jenkins-agent-nodejs-8-rhel7 Container Image Updates https://errata.devel.redhat.com/advisory/37441
*\u test.py
测试。xdg open cover/index.html
推荐PyPI第三方库