Skip to content

unioslo/pybofh

Repository files navigation

bofh

bofh, short for brukerorganisering for hvermannsen, is a Cerebrum administration tool.

It is an interactive XML/RPC command line client for a Cerebrum.modules.bofhd server. It is unlikely you want to use this software unless you know what Cerebrum is.

Install

bofh is implemented in Python and supports Python runtimes 2.7 (>= 2.7.9, >= RHEL7 2.7.5), and 3.6 or newer.

If you are on RHEL we recommend that you install the bofh RPM package from the university package repository:

# dnf install python3-bofh

On other systems we recommend installing from the official Python package index (PyPI) into a virtualenv:

% virtualenv ~/venv
% source ~/venv/bin/activate
(venv) % pip install bofh

Use

pybofh --help
python -m bofh --help

Module usage

import bofh
from getpass import getuser, getpass

# Get a client by connecting to bofhd
url = 'https://example.org:8000'
client = bofh.connect(url=url)

# You'll need to authenticate to access restricted commands
client.login(getuser(), getpass())

# Call commands on the client object
try:
    # formatted output
    client.user.info('foo')

    # structured output
    client.run_command('user_info', 'foo')
finally:
    client.logout()

Documentation

You'll have to build the bofh documentation yourself (for now).

Documentation is built using sphinx, and build requirements are specified in the docs/requirements.txt file.

% python setup.py build_sphinx -b html
% cd build/sphinx/html
% python3 -m http.server

Then go to http://localhost:8000/.

There is also also a troff man-page for the pybofh script, which can be built with:

% python setup.py build_sphinx -b man
% man ./build/sphinx/man/pybofh.1

For other documentation formats, see docs/README.md and docs/Makefile.

About

bofh, short for "brukerorganisering for hvermannsen", is a Cerebrum administration tool

Topics

Resources

License

Stars

Watchers

Forks

Languages