diff --git a/src/ansys/hps/client/jms/resource/task_definition.py b/src/ansys/hps/client/jms/resource/task_definition.py index 26c20c408..2080f16e3 100644 --- a/src/ansys/hps/client/jms/resource/task_definition.py +++ b/src/ansys/hps/client/jms/resource/task_definition.py @@ -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. """ @@ -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 @@ -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__ diff --git a/src/ansys/hps/client/jms/schema/task_definition.py b/src/ansys/hps/client/jms/schema/task_definition.py index 65c86bb97..7a66d6205 100644 --- a/src/ansys/hps/client/jms/schema/task_definition.py +++ b/src/ansys/hps/client/jms/schema/task_definition.py @@ -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."}, + ) diff --git a/tests/jms/test_job_definitions.py b/tests/jms/test_job_definitions.py index be3423217..34d24f7df 100644 --- a/tests/jms/test_job_definitions.py +++ b/tests/jms/test_job_definitions.py @@ -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 @@ -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 diff --git a/tests/jms/test_task_definition.py b/tests/jms/test_task_definition.py index 1972a124d..a8335e849 100644 --- a/tests/jms/test_task_definition.py +++ b/tests/jms/test_task_definition.py @@ -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 @@ -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