pulsar.managers.util package¶
Subpackages¶
Submodules¶
pulsar.managers.util.aws_batch module¶
Interface layer for Boto’s batch library shared between Galaxy and Pulsar.
pulsar.managers.util.env module¶
-
pulsar.managers.util.env.
env_to_statement
(env)[source]¶ Return the abstraction description of an environment variable definition into a statement for shell script.
>>> env_to_statement(dict(name='X', value='Y')) 'X="Y"; export X' >>> env_to_statement(dict(name='X', value='Y', raw=True)) 'X=Y; export X' >>> env_to_statement(dict(name='X', value='"A","B","C"')) 'X="\\"A\\",\\"B\\",\\"C\\""; export X' >>> env_to_statement(dict(file="Y")) '. "Y"' >>> env_to_statement(dict(file="'RAW $FILE'", raw=True)) ". 'RAW $FILE'" >>> # Source file takes precedence >>> env_to_statement(dict(name='X', value='"A","B","C"', file="S")) '. "S"' >>> env_to_statement(dict(execute="module load java/1.5.1")) 'module load java/1.5.1'
pulsar.managers.util.external module¶
-
pulsar.managers.util.external.
parse_external_id
(output, type=None)[source]¶ Attempt to parse the output of job submission commands for an external id.__doc__
>>> parse_external_id("12345.pbsmanager") '12345.pbsmanager' >>> parse_external_id('Submitted batch job 185') '185' >>> parse_external_id('Submitted batch job 185', type='torque') 'Submitted batch job 185' >>> parse_external_id('submitted to cluster 125.') '125' >>> parse_external_id('submitted to cluster 125.', type='slurm') >>>
pulsar.managers.util.kill module¶
pulsar.managers.util.process_groups module¶
pulsar.managers.util.pykube_util module¶
Interface layer for pykube library shared between Galaxy and Pulsar.
-
pulsar.managers.util.pykube_util.
find_job_object_by_name
(pykube_api, job_name, namespace=None)[source]¶
-
pulsar.managers.util.pykube_util.
find_pod_object_by_name
(pykube_api, pod_name, namespace=None)[source]¶
-
pulsar.managers.util.pykube_util.
galaxy_instance_id
(params)[source]¶ Parse and validate the id of the Galaxy instance from supplied dict.
This will be added to Jobs and Pods names, so it needs to be DNS friendly, this means: The Internet standards (Requests for Comments) for protocols mandate that component hostname labels may contain only the ASCII letters ‘a’ through ‘z’ (in a case-insensitive manner), the digits ‘0’ through ‘9’, and the minus sign (‘-‘).
It looks for the value set on params[‘k8s_galaxy_instance_id’], which might or not be set. The idea behind this is to allow the Galaxy instance to trust (or not) existing k8s Jobs and Pods that match the setup of a Job that is being recovered or restarted after a downtime/reboot.
pulsar.managers.util.retry module¶
pulsar.managers.util.sudo module¶
pulsar.managers.util.tes module¶
-
class
pulsar.managers.util.tes.
TesClient
(url: str)[source]¶ Bases:
object
-
cancel_task
(has_task_id: Union[pydantictes.models.TesCreateTaskResponse, pydantictes.models.TesTask, str]) → pydantictes.models.TesCancelTaskResponse[source]¶
-
-
class
pulsar.managers.util.tes.
TesState
[source]¶ Bases:
enum.Enum
An enumeration.
-
CANCELED
= 'CANCELED'¶
-
COMPLETE
= 'COMPLETE'¶
-
EXECUTOR_ERROR
= 'EXECUTOR_ERROR'¶
-
INITIALIZING
= 'INITIALIZING'¶
-
PAUSED
= 'PAUSED'¶
-
QUEUED
= 'QUEUED'¶
-
RUNNING
= 'RUNNING'¶
-
SYSTEM_ERROR
= 'SYSTEM_ERROR'¶
-
UNKNOWN
= 'UNKNOWN'¶
-