Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Implements parser for otopi machine dialog.

Project description

Build Status Code Coverage Code Health

python-otopi-mdp

otopi Machine Dialog Parser for python

This module allows you automate installation process based on otopi installator.

Requirements

six
otopi

WARNING: The otopi package is not hosted on PyPi site, so it couldn’t be included as dependency of this package. It is maintaned by oVirt community, they ship this module for several package managements.

Usage

  1. Set otopi environment to enable machine dialect
DIALOG/dialect=str:machine
  1. Spawn desired installer and pass stdin and stdout to parser
  2. Process all otopi events in the loop

Example for oVirt Hosted Engine

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)

Run tests

tox

NOTE: For testing purposes, the otopi package is being run from sources.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-otopi-mdp, version 0.2.2
Filename, size File type Python version Upload date Hashes
Filename, size python-otopi-mdp-0.2.2-1.noarch.rpm (22.0 kB) File type RPM Python version any Upload date Hashes View
Filename, size python-otopi-mdp-0.2.2-1.src.rpm (26.8 kB) File type RPM Python version any Upload date Hashes View
Filename, size python_otopi_mdp-0.2.2-py2.7.egg (16.0 kB) File type Egg Python version 2.7 Upload date Hashes View
Filename, size python-otopi-mdp-0.2.2.zip (25.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page