Skip to main content

Client library for Hashicorp Nomad

Project description

python-nomad

Python Nomad Test and Publish codecov PyPI version PyPI pyversions Downloads Downloads PyPI license

Installation

pip install python-nomad

Documentation

https://python-nomad.readthedocs.io/en/latest/

Examples

import nomad
# For HTTP Nomad instances
n = nomad.Nomad(host="172.16.100.10", timeout=5)

# For HTTPS Nomad instances with non-self-signed SSL certificates
n = nomad.Nomad(host="172.16.100.10", secure=True, timeout=5, verify=True)

# For HTTPS Nomad instances with self-signed SSL certificates and no validate the cert
n = nomad.Nomad(host="172.16.100.10", secure=True, timeout=5, verify=False)

# For HTTPS Nomad instances with self-signed SSL certificates that must validate with cert
n = nomad.Nomad(host="172.16.100.10", secure=True, timeout=5, verify=True, cert="/path/to/certfile") # See http://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verification

# For HTTPS Nomad instances with cert file and key
n = nomad.Nomad(host="https://172.16.100.10", secure=True, timeout=5, verify=True, cert=("/path/to/certfile", "/path/to/key")) # See http://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verification

# For HTTPS Nomad instances with namespace and acl token
n = nomad.Nomad(host="172.16.100.10", secure=True, timeout=5, verify=False, namespace='Namespace-example',token='3f4a0fcd-7c42-773c-25db-2d31ba0c05fe')

"example" in n.jobs

j = n.jobs["example"]["ID"]

example_allocation = n.job.get_allocations(j)

n.job.deregister_job(j)

Environment Variables

This library also supports environment variables: NOMAD_ADDR, NOMAD_NAMESPACE, NOMAD_TOKEN, NOMAD_REGION, NOMAD_CLIENT_CERT, and NOMAD_CLIENT_KEY for ease of configuration and unifying with nomad cli tools and other libraries.

NOMAD_ADDR=http://127.0.0.1:4646
NOMAD_NAMESPACE=default
NOMAD_TOKEN=xxxx-xxxx-xxxx-xxxx
NOMAD_REGION=us-east-1a
NOMAD_CLIENT_CERT=/path/to/tls/client.crt
NOMAD_CLIENT_KEY=/path/to/tls/client.key

Class Dunders

Class contains len getitem iter
agent N N N N
allocation Y N Y N
allocations N Y N Y
client N N N N
evaluation Y N Y N
evaluations Y Y Y Y
event N N N N
job Y N Y N
jobs Y Y Y Y
node Y N Y N
nodes Y Y Y Y
regions Y Y Y Y
status.leader Y Y N N
status.peers Y Y Y Y
system N N N N
validate N N N N
deployments Y Y Y Y
deployment Y N Y N
namespace Y N Y N
namespaces Y Y Y Y
acl Y N Y N
sentinel Y N Y N

Development

  • create virtualenv and activate
  • install requirements-dev.txt
  • can either use the Vagrantfile for local integration testing or create environment variables NOMAD_IP and NOMAD_PORT that are assigned to a nomad binary that is running
virtualenv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt

Testing with vagrant and virtualbox

vagrant up --provider virtualbox
py.test --cov=nomad --cov-report=term-missing --runxfail tests/

Testing with nomad binary

./nomad agent -dev -node pynomad1 --acl-enabled
NOMAD_IP=127.0.0.1 NOMAD_VERSION=<SEMNATIC_VERSION> py.test --cov=nomad --cov-report=term-missing --runxfail tests/

Project details


Download files

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

Source Distribution

python_nomad-2.0.1.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

python_nomad-2.0.1-py3-none-any.whl (37.5 kB view details)

Uploaded Python 3

File details

Details for the file python_nomad-2.0.1.tar.gz.

File metadata

  • Download URL: python_nomad-2.0.1.tar.gz
  • Upload date:
  • Size: 33.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for python_nomad-2.0.1.tar.gz
Algorithm Hash digest
SHA256 4d70a6e85c58a1abe33770128a843bc97415b030d779d0ca0601863fc82141d3
MD5 42fe8f31d5563c9cd03d08324780b06f
BLAKE2b-256 8a8b7396450ddbe2d08b4893029e756b466a98e2c13f377b2ef2e61c721caba5

See more details on using hashes here.

File details

Details for the file python_nomad-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: python_nomad-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 37.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for python_nomad-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 014721a65b42cc8aa04f2822663dbbc19c79a67d77aede20607fdb6834c29a94
MD5 160e6bcc20c335e03326eb265127a744
BLAKE2b-256 9aad17b7138eb26795249518a28287f72b6c0743d8d9fc7280e40a78d0d9861d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page