The entity reservation feature has been added in TDM 7.4. This feature provides the user with a better control on the tested entities in their environments and enables the user to reserve (lock) entities on the testing environment and thus to prevent other users from re-provisioning or deleting these entities into/from the testing environment until the user completes the functional tests and can release these entities.
However, the user can still load a replica of the reserved entity using the replace sequence option in the TDM task.
The reserved entities are marked as reserved in the TDM DB. Note that the reserved entities are not physically locked in the target environment. Other users can still update the reserved entities in the target environment.
A TDM Task can reserve entities in one of two ways:
In both cases, the task execution marks the root target entity IDs as reserved. On load and reserve tasks, the task execution reserves each root entity ID before loading it to the target environment. If the reserve fails due to any reason, the entity is marked as failed and it is not loaded to the target environment.
If the loading of the root entity fails, the TDM orchestration process deletes the failed entity from the TDM DB tdm_reserved_entities table.
Note that entities can only be reserved by load or reserve tasks. A 'reservation' of entities by the extract task is implemented by the Data Versioning functionality.
Validate the number of reserved entities: Accumulate the number of reserved entities that are allowed for the user in the target environment. If the total number of reserved entities exceeds the user's permissions on the environment, return an error. For example, if the user is allowed to reserved up to 70 entities in ST1 and there are 50 entities that are already reserved for the user in ST1, the user can reserve up to additional 20 entities in ST1.
Validate the retention period to verify that the number of days does not exceed the maximum number of days allowed for the tester.
Validate the task's entities:
Click here for more information about the available task's selection methods.
The reserved entities are kept in a dedicated TDM DB table: tdm_reserved_entities. Each entity has its own record.
The key of each reserved entity consists of the combination of the following fields:
The table contains the following information:
Key fields - entity_id, be_id and env_id.
Task identifiers - task_id and task_execution_id. Identify the task execution that reserved the entities.
Reservation period - start_datetime and end_datetime. Note that admin and environment owner users can reserve entities for an unlimited period. In this case, the end_datetime will be empty.
reservation_owner - the user ID that reserved the entities.
reserve_notes - a free text concerning the reserved entity.
The Reserve Entities window enables the TDM users to run the following activities on the reserved entities:
View: Each user can view the list of entities, reserved on their environment, in order to avoid running functional tests on entities reserved by other users.
Release reserved entities:
Update reserved entities:
Explicit release: Release entities via the new Reserved Entities window. The entities are deleted from the reserved entities TDM table.
Implicit release: A reserved entity can be released by either one of the following scenarios:
The reservation period ends. The entity is automatically released and is no longer reserved. Note that in this case, the record is not deleted automatically from the TDM DB. However, when the entity is reserved again, the record is updated with the new owner and the new reservation period dates.
A delete only task releases the deleted entities and deletes them from the reserved entities TDM table.
The entity reservation feature has been added in TDM 7.4. This feature provides the user with a better control on the tested entities in their environments and enables the user to reserve (lock) entities on the testing environment and thus to prevent other users from re-provisioning or deleting these entities into/from the testing environment until the user completes the functional tests and can release these entities.
However, the user can still load a replica of the reserved entity using the replace sequence option in the TDM task.
The reserved entities are marked as reserved in the TDM DB. Note that the reserved entities are not physically locked in the target environment. Other users can still update the reserved entities in the target environment.
A TDM Task can reserve entities in one of two ways:
In both cases, the task execution marks the root target entity IDs as reserved. On load and reserve tasks, the task execution reserves each root entity ID before loading it to the target environment. If the reserve fails due to any reason, the entity is marked as failed and it is not loaded to the target environment.
If the loading of the root entity fails, the TDM orchestration process deletes the failed entity from the TDM DB tdm_reserved_entities table.
Note that entities can only be reserved by load or reserve tasks. A 'reservation' of entities by the extract task is implemented by the Data Versioning functionality.
Validate the number of reserved entities: Accumulate the number of reserved entities that are allowed for the user in the target environment. If the total number of reserved entities exceeds the user's permissions on the environment, return an error. For example, if the user is allowed to reserved up to 70 entities in ST1 and there are 50 entities that are already reserved for the user in ST1, the user can reserve up to additional 20 entities in ST1.
Validate the retention period to verify that the number of days does not exceed the maximum number of days allowed for the tester.
Validate the task's entities:
Click here for more information about the available task's selection methods.
The reserved entities are kept in a dedicated TDM DB table: tdm_reserved_entities. Each entity has its own record.
The key of each reserved entity consists of the combination of the following fields:
The table contains the following information:
Key fields - entity_id, be_id and env_id.
Task identifiers - task_id and task_execution_id. Identify the task execution that reserved the entities.
Reservation period - start_datetime and end_datetime. Note that admin and environment owner users can reserve entities for an unlimited period. In this case, the end_datetime will be empty.
reservation_owner - the user ID that reserved the entities.
reserve_notes - a free text concerning the reserved entity.
The Reserve Entities window enables the TDM users to run the following activities on the reserved entities:
View: Each user can view the list of entities, reserved on their environment, in order to avoid running functional tests on entities reserved by other users.
Release reserved entities:
Update reserved entities:
Explicit release: Release entities via the new Reserved Entities window. The entities are deleted from the reserved entities TDM table.
Implicit release: A reserved entity can be released by either one of the following scenarios:
The reservation period ends. The entity is automatically released and is no longer reserved. Note that in this case, the record is not deleted automatically from the TDM DB. However, when the entity is reserved again, the record is updated with the new owner and the new reservation period dates.
A delete only task releases the deleted entities and deletes them from the reserved entities TDM table.