Code documentation

jobs module

This module implements classes for the different SLURM job types used in GfxLauncher.

Jobs module

This module provides classes for supported job types.

class lhpcdt.jobs.Job(account='', partition='', time='00:60:00')[source]

Class describing a SLURM jobs

add_constraint(constraint)[source]

Add constraint (feature)

class lhpcdt.jobs.JobPluginBase(account='', partition='', time='00:60:00')[source]

Base class for loadable job plugins.

class lhpcdt.jobs.JupyterLabJob(account='', partition='', time='00:30:00', jupyterlab_module='Anaconda3', use_localhost=False, conda_env='')[source]

Jupyter lab job

do_process_output(output_lines)[source]

Process job output

on_notebook_url_found(url)[source]

Event method called when notebook has been found

class lhpcdt.jobs.JupyterNotebookJob(account='', partition='', time='00:30:00', notebook_module='Anaconda3', use_localhost=False, conda_env='')[source]

Jupyter notebook job

do_process_output(output_lines)[source]

Process job output

on_notebook_url_found(url)[source]

Event method called when notebook has been found

class lhpcdt.jobs.PlaceHolderJob(account='', partition='', time='00:30:00')[source]

Placeholder job running acting as master process

class lhpcdt.jobs.VMJob(account='', partition='', time='00:30:00')[source]

Special Job for starting VM:s

do_update_processing()[source]

Check for vm job ip file

on_vm_available(hostname)[source]

Callback when job ib file found.

lhpcdt.jobs.find_remote_port(url)[source]

Extract port information from a url.

conda_utils module

Module implementing conda integration.

job_ui module

This module provide job user interface functionality.

Job User Interface module

This module provide job user interface functionality.

class lhpcdt.job_ui.JupyterNotebookJobPropWindow(parent=None)[source]

Resource specification window

disable_controls()[source]

Disable controls on dialog

enable_controls()[source]

Enable all controls on dialog

get_data()[source]

Get values from controls

modules_supports_anaconda()[source]

Check for anaconda support

on_browse_modules_button_clicked()[source]

Start ml-browse as a separate thread

on_cancel_button_clicked()[source]

Event method for Cancel button

on_ok_button_clicked()[source]

Event method for OK button

on_process_thread_finished()[source]

Handle output from ml-browse

on_query_completed()[source]

Conda queryt callback when query is completed

on_query_env(conda_env)[source]

Conda query callback for updating UI

on_timeout()[source]

Timeout for starting conda query

set_data()[source]

Assign values to controls

showEvent(event)[source]

Disable controls and start timer for querying modules

update_controls()[source]

Update user interface controls

update_list()[source]

Update list box

class lhpcdt.job_ui.ProcessThread(cmd)[source]

Job submission thread

run()[source]

Main thread method

launcher module (Main user interface)

This module implements the main user interface of GfxLauncher.

LUNARC HPC Desktop Launcher Module

This module implements the main user interface of the application launcher.

class lhpcdt.launcher.GfxLaunchWindow(parent=None)[source]

Main launch window user interface

closeEvent(event)[source]

Handle window close event

disable_extras_panel()[source]

Clear user interface components in extras panel

dump_error_log()[source]

Dump errors on standard output

enable_extras_panel()[source]

Clear user interface components in extras panel

enable_silent_ui()[source]

Hides controls for running in silent mode.

get_defaults_from_cmdline()[source]

Get properties from command line

has_project()[source]

Check for user in grantfile

init_defaults()[source]

Basic property defaults

launch_browser(url)[source]

Open a configured browser for the url.

on_append_text(text)[source]

Callback for to update status output from standard output

on_autostart_timeout()[source]

Automatically submit jobn

on_cancelButton_clicked()[source]

Cancel running job

on_closeButton_clicked()[source]

User asked to close window

on_helpButton_clicked()[source]

Open help page if set

on_notebook_url_found(url)[source]

Callback when notebook url has been found.

on_reconnect_notebook()[source]

Reopen connection to notebook.

on_reconnect_vm()[source]

Reopen connection to vm

on_resourceDetailsButton_clicked()[source]

Open resources specification window

on_showDetails_clicked()[source]

Show details on job and script

on_show_job_settings_button_clicked()[source]

Open help page if set

on_startButton_clicked()[source]

Submit job

on_status_timeout()[source]

Status timer callback. Updates job status.

on_submit_finished()[source]

Event called from submit thread when job has been submitted

on_vm_available(hostname)[source]

Start an RDP session to host

submit_job()[source]

Submit placeholder job

time_to_decimal(time_string)[source]

Time to decimal conversion routine

update_controls()[source]

Update user interface from properties

update_feature_combo()[source]

Update only feature combo box.

update_properties()[source]

Get properties from user interface

class lhpcdt.launcher.OutputReceiver(queue, *args, **kwargs)[source]

Receiver thread for synchronised access to queued output

class lhpcdt.launcher.SubmitThread(job, cmd='xterm', opengl=False, vglrun=True, vgl_path='')[source]

Job submission thread

run()[source]

Main thread method

class lhpcdt.launcher.TunnelThread(ssh_tunnel)[source]

Job submission thread

disconnect(a0: QMetaObject.Connection) bool[source]
disconnect(self) None
run()[source]

Main thread method

class lhpcdt.launcher.WriteStream(queue)[source]

Class for synchronised stream writing

desktop module - Menu generation classes

Module for generating menu items and menus in Linux.

class lhpcdt.desktop.DesktopEntry(dryrun)[source]

Implements a XDG menu entry

write()[source]

Write desktop entry

class lhpcdt.desktop.Menu(dryrun=False)[source]

XDG Menu class

write()[source]

Write menu XML

scripts module - Run script generation

config module - Configuration management classes

Module for managing application configuration.

Configuration module

This reads the configuration file and maintains a configuration singleton for other parts of the application to access configuration options.

lrms module - SLURM interface classes

Module for interfacing with SLURM.

Base classes for interacting with resource management systems.

class lhpcdt.lrms.Accounting[source]

sacct -o jobid%20,jobname%50,state%30,exitcode%20

class lhpcdt.lrms.GrantFile(filename)[source]

Class for accessing LUNARC grantfiles

query_active_projects(user)[source]

Query for an active project for user

class lhpcdt.lrms.Queue[source]

Class for encapsuling a SLURM queue

job_info(jobid)[source]

Return information on job jobid

update()[source]

Update queue information

class lhpcdt.lrms.Slurm[source]

SLURM Interface class

cancel_job(job)[source]

Cancel job

cancel_job_with_id(jobid)[source]

Cancel job

has_started(job)[source]

Query if job has started

is_waiting(job)[source]

Query if job is in an non-running state

job_output(job)[source]

Query job output

job_status(job)[source]

Query status of job

query_features(part, exclude_set={})[source]

Query features of partition

query_gres(part)[source]

Query features of partition

query_node(node)[source]

Query information on node

query_nodes()[source]

Query information on node

query_partitions(exclude_set={})[source]

Query partitions in slurm.

submit(job)[source]

Submit job to SLURM

wait_for_start(job)[source]

Wait for job to start

lhpcdt.lrms.execute_cmd(cmd)[source]

Wrapper function for calling an external process

remote module - Remote execution classes

This module implements several remote execution methods (SSH, VGLConnect and XfreeRDP).

Remote launch module

This module implements different classes for remote launch methods.

class lhpcdt.remote.SSH(local_exec=False)[source]

Implements a SSH connection

execute(node, command, re_count=0)[source]

Execute command on a node/host

execute_again()[source]

Execute again with the same command and node

execute_with_output(node, command, re_count=0)[source]

Execute command node, capturing output.

is_active()[source]

Return SSH connection status

terminate()[source]

Terminate SSH connection process

wait()[source]

Blocking wait for process to finish.

class lhpcdt.remote.StatusProbe(local_exec=False)[source]
check_cpu_usage(node)[source]

Check cpu usage of node

check_memory(node)[source]

Check memory status of node

print_summary()[source]

Print probe summary

class lhpcdt.remote.VGLConnect[source]

Implements a remote connecting supporting VirtualGL

execute(node, command, re_count=0)[source]

Execute a command on a host

execute_again()[source]

Execute command again with same parameters.

is_active()[source]

Return status of VGL connection

terminate()[source]

Terminate connection process

wait()[source]

Wait for process to finish.

class lhpcdt.remote.XFreeRDP(hostname)[source]

Implements a RDP connection

execute()[source]

Execute command on a node/host

get_xfreerdp_cmd()[source]

Get method for xfreerdp_cmd property

get_xfreerdp_path()[source]

Get method for xfreerdp_path property

is_active()[source]

Return RDP connection status

set_xfreerdp_cmd(c)[source]

Set method for xfreerdp_cmd property

set_xfreerdp_path(p)[source]

Set method for xfreerdp_path property

terminate()[source]

Terminate RDP connection process

wait()[source]

Wait for the process to exit

property xfreerdp_cmd

Get method for xfreerdp_cmd property

property xfreerdp_path

Get method for xfreerdp_path property

lhpcdt.remote.find_available_port()[source]

Find an available tcp port.