跳转到主要内容

实现了otopi机器对话框的解析器。

项目描述

Build Status Code Coverage Code Health

python-otopi-mdp

python的otopi机器对话框解析器

此模块允许您基于otopi安装器自动执行安装过程。

需求

six
otopi

警告: otopi包不在PyPi网站上托管,因此无法将其作为此包的依赖项包含。它由oVirt社区维护,他们为多个包管理器提供此模块。

用法

  1. 设置otopi环境以启用机器方言

DIALOG/dialect=str:machine
  1. 启动所需的安装程序并将stdin和stdout传递给解析器

  2. 循环处理所有otopi事件

ovirt托管引擎示例

import subprocess
import otopimdp as mdp

# 1. Set machine dialog option
with open("/etc/ovirt-hosted-engine-setup.env.d/mycustom.env") as fd:
    fd.write(
        'export environment="${environment} DIALOG/dialect=str:machine"\n'
    )

# 2. Spawn installer
installer = subprocess.Popen(["hosted-engine", "--deploy"])
parser = mdp.MachineDialogParser(
    input_=installer.stdout, output=installer.stdin
)

# 3. Process events
while True:
    event = parser.next_event()
    if event is None:
        continue
    event_type = event[mdp.TYPE_KEY]
    if event_type == mdp.TERMINATE_EVENT:
        break

    event_name = event[mdp.ATTRIBUTES_KEY]['name']
    if event_name == "OVEHOSTED_HOST_ID":
        event[mdp.REPLY_KEY] = "1"
    ....
    parser.send_response(event)

运行测试

tox

注意:出于测试目的,otopi包是从源代码中运行的。

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面