ondemandutils
is a collection of various utilities and APIs to make it easier
for you and your friends to interface with Open OnDemand, especially if you
are orchestrating the deployment of new Open OnDemand. Gone are the days of
seething over incomplete Jinja2 templates or misconfigured YAML documents.
Current utilities and APIs shipped in the ondemandutils
package include:
ood_portal
: An editor ood_portal.yml configuration files.nginx_stage
: An editor for nginx_stage.yml configuration files.
$ python3 -m pip install ondemandutils
We use the Poetry packaging and dependency manager to
manage this project. It must be installed on your system if installing ondemandutils
from source.
$ git clone https://github.com/charmed-hpc/ondemandutils.git
$ cd ondemandutils
$ poetry install
This module provides an API for editing ood_portal.yml configuration files, creating them if they do not exist. Here's some common Open OnDemand lifecycle management operations you can perform using this editor:
from ondemandutils.editors import ood_portal
# Open, edit, and save the ood_portal.yml file located at /etc/ood/config/ood_portal.yaml.
with ood_portal.edit("/etc/ood/config/ood_portal.yaml") as config:
config.servername = "ondemand-testing"
config.server_aliases = []
config.ssl = None
config.public_root = "/var/snap/ondemand/common/var/www/public"
config.log_root = "/var/snap/ondemand/common/var/logs/ondemand"
config.pun_stage_cmd = "sudo /snap/ondemand/current/nginx_stage/sbin/nginx_stage"
from ondemandutils.editors import ood_portal
from ondemandutils.models import DexConfig
with ood_portal.edit("/etc/ood/config/ood_portal.yaml") as config:
dex = DexConfig(
http_port = 5556,
tls_cert = "/var/snap/ondemand/common/tls.cert",
tls_key = "/var/snap/ondemand/common/tls.secret",
)
config.dex = dex
This module provides and API for editing nginx_stage.yml configuration files, creating them if they do not exist. Here's some common nginx operations you can perform on the nginx_stage.yml configuration file using this editor:
from ondemandutils.editors import nginx_stage
with nginx_stage.edit("/etc/ood/config/nginx_stage.yml") as config:
config.pun_access_log_path = "/var/snap/ondemand/common/var/log/nginx/%{user}/access.log"
config.pun_error_log_path = "/var/snap/ondemand/common/var/log/nginx/%{user}/error.log"
config.passenger_ruby = "/snap/ondemand/common/usr/bin/ruby"
config.passenger_nodejs = "/snap/ondemand/common/bin/node"
config.passenger_root = "/snap/ondemand/current/opt/passenger/locations.ini"
config.disable_bundle_user_config = False
config.pun_custom_env_declarations = ["CPATH"]
The ondemandutils
package is a project of the
Ubuntu HPC community.
It is an open-source project that is welcome to community involvement, contributions, suggestions, fixes,
and constructive feedback. Interested in being involved with the development of ondemandutils
?
Check out these links below:
The ondemandutils
package is free software, distributed under the GNU Lesser General Public License, v3.0.
See the LICENSE file for more information.