Source code for drmaa.const

# -----------------------------------------------------------
#  Copyright (C) 2009 StatPro Italia s.r.l.
#
#  StatPro Italia
#  Via G. B. Vico 4
#  I-20123 Milano
#  ITALY
#
#  phone: +39 02 96875 1
#  fax:   +39 02 96875 605
#
#  email: info@riskmap.net
#
#  This program is distributed in the hope that it will be
#  useful, but WITHOUT ANY WARRANTY; without even the
#  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
#  PURPOSE. See the license for more details.
# -----------------------------------------------------------
#
#  Author: Enrico Sirola <enrico.sirola@statpro.com>
#
"""
drmaa constants
"""

from __future__ import absolute_import, print_function, unicode_literals

import locale

# Encoding to use for passing strings to C library
ENCODING = locale.getpreferredencoding()

# drmaa_get_attribute()
ATTR_BUFFER = 1024

# drmaa_get_contact()
CONTACT_BUFFER = 1024

# drmaa_get_DRM_system()
DRM_SYSTEM_BUFFER = 1024

# drmaa_get_DRM_system()
DRMAA_IMPLEMENTATION_BUFFER = 1024

# Agreed buffer length constants
# these are recommended minimum values
ERROR_STRING_BUFFER = 1024
JOBNAME_BUFFER = 1024
SIGNAL_BUFFER = 32

# Agreed constants
TIMEOUT_WAIT_FOREVER = -1
TIMEOUT_NO_WAIT = 0

JOB_IDS_SESSION_ANY = b"DRMAA_JOB_IDS_SESSION_ANY"
JOB_IDS_SESSION_ALL = b"DRMAA_JOB_IDS_SESSION_ALL"

SUBMISSION_STATE_ACTIVE = "drmaa_active"
SUBMISSION_STATE_HOLD = "drmaa_hold"

# Agreed placeholder names
PLACEHOLDER_INCR = b"$drmaa_incr_ph$"
PLACEHOLDER_HD = b"$drmaa_hd_ph$"
PLACEHOLDER_WD = b"$drmaa_wd_ph$"

# Agreed names of job template attributes
REMOTE_COMMAND = b"drmaa_remote_command"
JS_STATE = b"drmaa_js_state"
WD = b"drmaa_wd"
JOB_CATEGORY = b"drmaa_job_category"
NATIVE_SPECIFICATION = b"drmaa_native_specification"
BLOCK_EMAIL = b"drmaa_block_email"
START_TIME = b"drmaa_start_time"
JOB_NAME = b"drmaa_job_name"
INPUT_PATH = b"drmaa_input_path"
OUTPUT_PATH = b"drmaa_output_path"
ERROR_PATH = b"drmaa_error_path"
JOIN_FILES = b"drmaa_join_files"
TRANSFER_FILES = b"drmaa_transfer_files"
DEADLINE_TIME = b"drmaa_deadline_time"
WCT_HLIMIT = b"drmaa_wct_hlimit"
WCT_SLIMIT = b"drmaa_wct_slimit"
DURATION_HLIMIT = b"drmaa_duration_hlimit"
DURATION_SLIMIT = b"drmaa_duration_slimit"

# names of job template vector attributes
V_ARGV = b"drmaa_v_argv"
V_ENV = b"drmaa_v_env"
V_EMAIL = b"drmaa_v_email"

NO_MORE_ELEMENTS = 25


[docs]def job_state(code): return _JOB_PS[code]
[docs]class JobState(object): UNDETERMINED = 'undetermined' QUEUED_ACTIVE = 'queued_active' SYSTEM_ON_HOLD = 'system_on_hold' USER_ON_HOLD = 'user_on_hold' USER_SYSTEM_ON_HOLD = 'user_system_on_hold' RUNNING = 'running' SYSTEM_SUSPENDED = 'system_suspended' USER_SUSPENDED = 'user_suspended' USER_SYSTEM_SUSPENDED = 'user_system_suspended' DONE = 'done' FAILED = 'failed'
# Job control action
[docs]class JobControlAction(object): SUSPEND = 'suspend' RESUME = 'resume' HOLD = 'hold' RELEASE = 'release' TERMINATE = 'terminate'
_JOB_CONTROL = [JobControlAction.SUSPEND, JobControlAction.RESUME, JobControlAction.HOLD, JobControlAction.RELEASE, JobControlAction.TERMINATE]
[docs]def string_to_control_action(operation): return _JOB_CONTROL.index(operation)
[docs]def control_action_to_string(code): return _JOB_CONTROL[code]
[docs]def status_to_string(status): return _JOB_PS[status]
_JOB_PS = {0x00: JobState.UNDETERMINED, 0x10: JobState.QUEUED_ACTIVE, 0x11: JobState.SYSTEM_ON_HOLD, 0x12: JobState.USER_ON_HOLD, 0x13: JobState.USER_SYSTEM_ON_HOLD, 0x20: JobState.RUNNING, 0x21: JobState.SYSTEM_SUSPENDED, 0x22: JobState.USER_SUSPENDED, 0x23: JobState.USER_SYSTEM_SUSPENDED, 0x30: JobState.DONE, 0x40: JobState.FAILED} # State at submission time
[docs]class JobSubmissionState(object): HOLD_STATE = SUBMISSION_STATE_HOLD ACTIVE_STATE = SUBMISSION_STATE_ACTIVE
_SUBMISSION_STATE = [JobSubmissionState.HOLD_STATE, JobSubmissionState.ACTIVE_STATE]
[docs]def submission_state(code): return _SUBMISSION_STATE[code]