Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/ansys/hps/client/jms/resource/task_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,8 @@ class TaskDefinition(Object):
:class:`ResourceRequirements` object.
worker_context : WorkerContext, optional
:class:`WorkerContext` object.
debug : bool, optional
Enable debug logging and retain Task working directory.

"""

Expand Down Expand Up @@ -353,6 +355,7 @@ def __init__(
software_requirements: list[Software] = missing,
resource_requirements: ResourceRequirements = missing,
worker_context: WorkerContext = missing,
debug: bool = missing,
**kwargs,
):
self.id = id
Expand All @@ -377,6 +380,7 @@ def __init__(
self.software_requirements = software_requirements
self.resource_requirements = resource_requirements
self.worker_context = worker_context
self.debug = debug

self.obj_type = self.__class__.__name__

Expand Down
5 changes: 5 additions & 0 deletions src/ansys/hps/client/jms/schema/task_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,3 +260,8 @@ class Meta(ObjectSchemaWithModificationInfo.Meta):
allow_none=True,
metadata={"description": ":class:`WorkerContext` object."},
)

debug = fields.Bool(
allow_none=True,
metadata={"description": "Enable debug logging and retain Task working directory."},
)
3 changes: 3 additions & 0 deletions tests/jms/test_job_definitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,12 @@ def test_task_definition_fields(client):
compute_resource_set_id="abc123",
),
worker_context=WorkerContext(max_runtime=3600, max_num_parallel_tasks=4),
debug=True,
)
assert task_def.resource_requirements.hpc_resources.num_cores_per_node == 2

task_def = project_api.create_task_definitions([task_def])[0]

assert task_def.store_output
assert task_def.resource_requirements.memory == 274877906944
assert task_def.resource_requirements.disk_space == 2199023255552
Expand All @@ -95,6 +97,7 @@ def test_task_definition_fields(client):
assert task_def.resource_requirements.compute_resource_set_id == "abc123"
assert task_def.modified_by is not missing
assert task_def.created_by is not missing
assert task_def.debug
assert auth_api.get_user(id=task_def.created_by).username == client.username
assert auth_api.get_user(id=task_def.modified_by).username == client.username

Expand Down
4 changes: 4 additions & 0 deletions tests/jms/test_task_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,14 @@ def test_task_definition_deserialization():
"return_code": 0,
},
"use_execution_script": False,
"debug": True,
}

task_def = TaskDefinitionSchema().load(task_def_dict)

assert task_def.name == "test_task_def"
assert task_def.execution_command == "echo 'hello world'"
assert task_def.debug

assert not task_def.use_execution_script
assert task_def.execution_script_id is None
Expand Down Expand Up @@ -214,12 +216,14 @@ def test_task_definition_serialization():
return_code=0,
),
use_execution_script=False,
debug=True,
)

serialized_task_def = TaskDefinitionSchema().dump(task_def)

assert serialized_task_def["name"] == "test_task_def"
assert serialized_task_def["execution_command"] == "echo 'hello world'"
assert serialized_task_def["debug"]

assert not serialized_task_def["use_execution_script"]
assert serialized_task_def["execution_level"] == 0
Expand Down
Loading