class genvid.toolbox.NomadTool(use_wan=False, **kwargs)

Bases: genvid.toolbox.consul.ConsulTool

A class for handling Nomad jobs.

Changed in version 1.19.0: Now, have a use_wan parameter to replace the service address with the TaggedAddress “wan”. The default is now to use the internal registered address.

get_nomad_client_addr(*, timeout=0.0) → tuple

Get the nomad-client services address and port from Consul.

Return the first service found.

Parameters:timeout – The timeout for the service.
get_nomad_client_url(*, timeout=0.0, nomad_url: str = None, **kwargs) → str

Query Consul for the Nomad client URL.

Parameters:timeout – Timeout of the service to return.
Returns:The URL for nomad-client.
get_nomad_ip() → str

Get the Nomad IP address.


A Nomad client from the python-nomad package.

run_nomad(action: str, *args, nomad_url: str = None, **kwargs)

Run Nomad with a specified action and other arguments.

This method ensurse the correct address from get_nomad_client_url() is passed to Nomad.

Parameters:action – The action to do (‘run’, ‘plan’, ‘stop’, etc.).
static check_alloc(alloc, allocid=None, task=None, group=None, job=None, index=None, state=None)

Check if an allocation matches specific criteria.

Possible matches are:

allocid: Allocation ID starts with this prefix.

task: Task is part of the allocation.

group: Group is part of the allocation.

job: Job is the allocation Job ID.

index: Index of the allocation.

state: If a task is specified, check if the task is in this state.
If no tasks are specified, check if any task is in this state.

Get the last allocation that fits all the criteria.

show_alloc_log(follow=False, tail=False, lines=10, logfilename=None, stdout=False, **kwargs)

Get the latest allocation which fits all the criteria and show its logs.

The criteria are the same as check_alloc(). The other parameters do the following:

follow: Don’t stop when end of file is reached, but instead wait
for additional content.

tail: Just display the last lines of text.

lines: For tail, adjust the number of lines to display (default
is 10).
logfilename: The name of the file to display. Default is to show
stdout: If no logfile is specified, display stdout instead of
run_nomad_fs(*args, **kwargs) → int

Run nomad fs with the arguments, and return the return code.


Add the log commands to the parser.

Run from add_commands() to add the log commands to the parser.

run_logs_command(command, options)

Detect if the command is a log command and execute it.

Call it from run_command() to handle logs commands. Job commands are added with the help of add_logs_commands().


handled, result: A tuple with a boolean saying if the
command was handled and its result if it was.
class nomad.NomadTool

Implementation of genvid.toolbox.NomadTool