Class ExecutionRequestService

java.lang.Object
org.qubership.atp.ram.services.CrudService<ExecutionRequest>
org.qubership.atp.ram.services.ExecutionRequestService

@Service public class ExecutionRequestService extends CrudService<ExecutionRequest>
  • Constructor Details

    • ExecutionRequestService

      public ExecutionRequestService()
  • Method Details

    • repository

      protected org.springframework.data.mongodb.repository.MongoRepository<ExecutionRequest,UUID> repository()
      Specified by:
      repository in class CrudService<ExecutionRequest>
    • getAllSortedExecutionRequests

      public List<ExecutionRequest> getAllSortedExecutionRequests()
    • init

      @PostConstruct public void init()
      Creates property maps for proper execution request mapping.
    • getComparisonExecutionRequest

      public List<ComparisonExecutionRequest> getComparisonExecutionRequest(List<UUID> uuids)
      Returns list of ERs by list uuid for compare.
      Parameters:
      uuids - List uuid Execution Requests.
      Returns:
      Set comparison Execution Request.
    • getComparisonExecutionRequestWithSteps

      public List<ComparisonExecutionRequest> getComparisonExecutionRequestWithSteps(List<UUID> uuids)
      Returns list of ERs with steps by list uuid for compare.
      Parameters:
      uuids - List uuid Execution Requests.
      Returns:
      Set comparison Execution Request.
    • getAllTestRuns

      public List<TestRun> getAllTestRuns(UUID executionRequestId)
    • getAllTestRunUuidsByExecutionRequestId

      public List<UUID> getAllTestRunUuidsByExecutionRequestId(UUID executionRequestId)
      Get all Test Run ids by Execution Request id.
      Parameters:
      executionRequestId - Execution Request id.
      Returns:
      List of Test Run id's.
    • getAllEnrichedTestRuns

      public List<EnrichedTestRun> getAllEnrichedTestRuns(UUID executionRequestId)
    • getDataForTestResultByExecutionRequests

      public Map<UUID,TestRun> getDataForTestResultByExecutionRequests(List<ExecutionRequest> ers)
    • getAllFailedTestRuns

      public List<TestRun> getAllFailedTestRuns(UUID executionRequestId)
    • delete

      public void delete(UUID uuid)
    • findById

      public ExecutionRequest findById(UUID executionRequestId)
      Find execution request by id.
      Parameters:
      executionRequestId - execution request identifier
      Returns:
      execution request
    • findByIdMainInfo

      public ExecutionRequestMainInfoResponse findByIdMainInfo(UUID id)
      Find ExecutionRequest main info by specified identifier.
      Parameters:
      id - identifier
      Returns:
      info response
    • getExecutionRequestExecutor

      public ExecutionRequestMainInfoResponse.Executor getExecutionRequestExecutor(UUID id)
      Get ER executor info by identifier.
      Parameters:
      id - executor identifier
      Returns:
      executor info
    • getRequestsForStoppingOrTerminating

      public List<UUID> getRequestsForStoppingOrTerminating(List<UUID> executionRequestsIds)
      Find ExecutionRequests with In Progress status.
      Parameters:
      executionRequestsIds - set of ER ids.
      Returns:
      ids of ERs with In Progress status.
    • getRequestsForResuming

      public List<UUID> getRequestsForResuming(List<UUID> executionRequestsIds)
      Find ExecutionRequests with Suspended status.
      Parameters:
      executionRequestsIds - set of ER ids.
      Returns:
      ids of ERs with Suspended status.
    • getExecutionRequestsByIds

      public List<ExecutionRequest> getExecutionRequestsByIds(Collection<UUID> executionRequestsIds)
      Find ExecutionRequests with Suspended status.
      Parameters:
      executionRequestsIds - set of ER ids.
      Returns:
      ids of ERs with Suspended status.
    • getOrderedExecutionRequestsByIds

      public List<ExecutionRequest> getOrderedExecutionRequestsByIds(Collection<UUID> executionRequestsIds)
      Find ordered ExecutionRequests by ids.
      Parameters:
      executionRequestsIds - set of ER ids.
      Returns:
      ERs.
    • setLabel

      public ExecutionRequest setLabel(UUID uuid, List<UUID> uuidLabels)
      Set label to execution request and return updated object.
      Parameters:
      uuid - of execution request for update
      uuidLabels - uuid of labels for remove
      Returns:
      updated object ExecutionRequest
    • removeLabel

      public ExecutionRequest removeLabel(UUID uuidRequest, List<UUID> uuidLabels)
      Find and remove label from execution request and return updated execution request.
      Parameters:
      uuidRequest - uuid of execution request for update
      uuidLabels - uuid of labels for remove
      Returns:
      updated object ExecutionRequest
    • findStepBySearchValue

      public List<StepPath> findStepBySearchValue(UUID uuidRequest, String searchValue)
      Find test runs and log records with names, which contain searchValue.
      Returns:
      list of found objects
    • getLastErsByProjectUuidWithTestRuns

      public List<ExecutionRequestTestResult> getLastErsByProjectUuidWithTestRuns(UUID projectUuid)
      Returns list of ERs with qaHosts and taHosts by ProjectUuid.
      Parameters:
      projectUuid - Project Id
      Returns:
      List of ExecutionRequestTestResult
    • getLastErsByTestplanUuidWithQaHostsAndTaHosts

      public List<TestResult> getLastErsByTestplanUuidWithQaHostsAndTaHosts(UUID testPlanUuid)
      Return list of ERs with qaHosts and taHosts by TestPlanUuid.
      Parameters:
      testPlanUuid - for found ERs
      Returns:
      list of TestResult
    • getTestResultsByRestScopeUuid

      public List<TestResult> getTestResultsByRestScopeUuid(UUID testScopeUuid)
      Returns list of ERs with TestRuns by TestScopeUuid.
      Parameters:
      testScopeUuid - for found ERs
      Returns:
      list of TestResult
    • findByTestPlanId

      public List<ExecutionRequest> findByTestPlanId(UUID testPlanId)
      Return List of ER-s in standard format.
      Parameters:
      testPlanId - for found ER-s
      Returns:
      list of ER-s
    • findByTestPlanUuid

      public List<ExecutionRequestResponse> findByTestPlanUuid(UUID testPlanUuid)
      Returns list of ERs by TestPlanUuid.
    • findFinishedErByProjectAndSortByFinishDate

      public List<ExecutionRequest> findFinishedErByProjectAndSortByFinishDate(UUID projectUuid)
      Returns list of ERs by ProjectUuid.
    • findFinishedErByProjectAndSortByFinishDate

      public List<ExecutionRequest> findFinishedErByProjectAndSortByFinishDate(UUID projectUuid, Timestamp dateFilter)
      Returns list of ERs by ProjectUuid.
    • findPageByTestPlanUuidAndSort

      public List<ExecutionRequest> findPageByTestPlanUuidAndSort(UUID testPlanUuid, int startIndex, int endIndex, String columnType, String sortType)
      Find ER-s by test plan, sort and limit results.
      Parameters:
      testPlanUuid - for find ER-s
      startIndex - number of start element
      endIndex - number of finish element
      columnType - field for sorting
      sortType - direction of sorting
      Returns:
      sorted ER-s by test plan
    • findResponsePageByTestPlanUuidAndSort

      public List<ExecutionRequestResponse> findResponsePageByTestPlanUuidAndSort(UUID testPlanUuid, int startIndex, int endIndex, String columnType, String sortType)
      Returns list of ERs by TestPlanUuid and sort, shortened into DTOs.
    • buildExecutionRequestResponses

      public List<ExecutionRequestResponse> buildExecutionRequestResponses(List<ExecutionRequest> executionRequests)
      Returns list of short ERs.
    • getExecutionRequestEnvironments

      public List<Environment> getExecutionRequestEnvironments(UUID testPlanId)
      Get execution request environments.
      Parameters:
      testPlanId - test plan id search param
      Returns:
      found environments
    • getExecutionRequestEnvironments

      public List<Environment> getExecutionRequestEnvironments(List<ExecutionRequest> executionRequests)
      Get execution request environments.
      Returns:
      found environments
    • getExecutionRequestsLabels

      public List<Label> getExecutionRequestsLabels(List<ExecutionRequest> executionRequests)
      Get labels by list of execution requests.
      Parameters:
      executionRequests - list of execution requests
      Returns:
      list of found labels
    • getExecutionRequestsAndFilteredByLabelsMap

      public Map<UUID,List<Label>> getExecutionRequestsAndFilteredByLabelsMap(List<ExecutionRequest> executionRequests, List<Label> labels)
      Get map of execution request ids and execution request's labels.
      Parameters:
      executionRequests - list of execution requests
      labels - list of labels
      Returns:
      map of execution request ids and execution request's labels
    • getExecutionRequestExecutors

      public List<ExecutionRequestMainInfoResponse.Executor> getExecutionRequestExecutors(UUID testPlanId)
      Get execution request executor users.
      Parameters:
      testPlanId - test plan id search param
      Returns:
      found users
    • getExecutionRequestExecutors

      public List<ExecutionRequestMainInfoResponse.Executor> getExecutionRequestExecutors(Set<UUID> userIds)
      Get executors by user identifiers.
      Parameters:
      userIds - user identifiers
      Returns:
      list of executors
    • findPageByTestPlanUuidBetweenPeriodAndSort

      public List<ExecutionRequest> findPageByTestPlanUuidBetweenPeriodAndSort(UUID testPlanUuid, Timestamp startDate, Timestamp endDate, int startIndex, int endIndex, String columnType, String sortType)
      Returns list of ERs by TestPlanUuid and sort.
    • recursiveDeleteListRequests

      public void recursiveDeleteListRequests(List<UUID> requestsUuidList)
      Remove execution request with all test runs and log records.
      Parameters:
      requestsUuidList - list of uuid of execution request
    • getNotFinishedRequests

      public List<ExecutionRequest> getNotFinishedRequests()
      Returns list of ERs with filled only requestUuid field.
    • stopExecutionRequest

      @Deprecated public void stopExecutionRequest(ExecutionRequest er, long lastFinishDate)
      Deprecated.
      use ExecutionRequestLoggingController instead of this
      Stops ER with provided UUID.
    • findAllByJointExecutionKey

      public List<ExecutionRequest> findAllByJointExecutionKey(String jointExecutionKey)
    • getProjectId

      public Project getProjectId(UUID executionRequestId)
      Get execution request project.
      Parameters:
      executionRequestId - er id
      Returns:
      found project
    • getProjectId

      public UUID getProjectId(UUID projectId, UUID executionRequestId)
      Gets project id by execution request id if provided project id is Null.
    • getProjectIdByExecutionRequestId

      public UUID getProjectIdByExecutionRequestId(UUID id)
      Get project ID by execution request ID.
      Parameters:
      id - ID of Execution request
      Returns:
      UUID of project.
    • getSortedExecutionRequestsForTestPlan

      public List<ExecutionRequest> getSortedExecutionRequestsForTestPlan(UUID testPlanUuid)
      Get sorted and limited execution requests for current test plan.
      Parameters:
      testPlanUuid - for found
      Returns:
      sorted by start date and limited list of ExecutionRequest
    • updateExecutionStatus

      public ExecutionRequest updateExecutionStatus(UUID requestUuid, ExecutionStatuses executionStatus)
      Update execution status of ExecutionRequest.
      Parameters:
      requestUuid - for find ExecutionRequest
      executionStatus - new value of status
      Returns:
      updated ExecutionRequest
    • findAllRequestsNotFinished

      public List<ExecutionRequest> findAllRequestsNotFinished(UUID projectId)
    • findAllByUuidIn

      public List<ExecutionRequest> findAllByUuidIn(List<UUID> uuids)
      Returns all ERs with the specified ids.
    • findPageByTestPlanUuidBetweenPeriodAndAnalyzedByQa

      public List<ExecutionRequest> findPageByTestPlanUuidBetweenPeriodAndAnalyzedByQa(UUID testPlanUuid, Timestamp startDate, Timestamp endDate, Boolean analyzedByQa, int startIndex, int endIndex)
      Returns page of ERs by the specified test plan id with: specified analyzed by qa value, finish date between startDate and endDate, sorted in a descending order by finish date.
      Parameters:
      analyzedByQa - if null ignored
    • findPageByTestPlanUuidAndAnalyzedByQa

      public List<ExecutionRequest> findPageByTestPlanUuidAndAnalyzedByQa(UUID testPlanUuid, Boolean analyzedByQa, int startIndex, int endIndex)
      Returns page of ERs by the specified test plan id with specified analyzed by qa value and sorted in a descending order by finish date.
      Parameters:
      analyzedByQa - may be null in this case it is not taken into account
    • updateAnalyzedByQa

      public void updateAnalyzedByQa(Collection<UUID> executionRequestIds, boolean value)
      Update analysed by qa field in provided execution requests.
      Parameters:
      executionRequestIds - execution request ids
      value - analysed by qa value
    • getTestPlanIdByExecutionRequestId

      public UUID getTestPlanIdByExecutionRequestId(UUID id)
      Returns an Test Plan id by Execution Request Id.
      Parameters:
      id - Execution Request identifier
      Returns:
      Test Plan identifier
    • generateErLink

      public String generateErLink(UUID executionRequestId, UUID projectId)
      Create link for execution request.
      Parameters:
      executionRequestId - ID of execution request
      projectId - ID of project
      Returns:
      generated link
    • getExecutionRequestConfig

      public ExecutionRequestConfig getExecutionRequestConfig(UUID executionRequestId)
      Get execution request config.
      Parameters:
      executionRequestId - execution request identifier
      Returns:
      config
    • getExecutionRequestConfig

      public ExecutionRequestConfig getExecutionRequestConfig(ExecutionRequest executionRequest)
      Get execution request config.
      Parameters:
      executionRequest - execution request
      Returns:
      config
    • updateExecutionRequestConfig

      public void updateExecutionRequestConfig(UUID executionRequestId, ExecutionRequestConfigUpdateRequest request)
      Update execution request config.
      Parameters:
      executionRequestId - execution request
      request - update request
    • updateExecutionRequestConfig

      @CacheEvict(value="ATP_RAM-REPORTS",key="{#executionRequest.getUuid(), #executionRequest.getCountLogRecords(), T(org.qubership.atp.ram.enums.ExecutionRequestWidgets).SUMMARY_STATISTIC}") @CacheEvict(value="ATP_RAM-REPORTS",key="{#executionRequest.getUuid(), #executionRequest.getCountLogRecords(), T(org.qubership.atp.ram.enums.ExecutionRequestWidgets).SUMMARY_STATISTIC_FOR_USAGES}") @CacheEvict(value="ATP_RAM-REPORTS",key="{#executionRequest.getUuid(), #executionRequest.getCountLogRecords(), T(org.qubership.atp.ram.enums.ExecutionRequestWidgets).SUMMARY_STATISTIC_SCENARIO_TYPE}") @CacheEvict(value="ATP_RAM-REPORTS",key="{#executionRequest.getUuid(), #executionRequest.getCountLogRecords(), T(org.qubership.atp.ram.enums.ExecutionRequestWidgets).TEST_CASES}") @CacheEvict(value="ATP_RAM-REPORTS",key="{#executionRequest.getUuid(), #executionRequest.getCountLogRecords(), T(org.qubership.atp.ram.enums.ExecutionRequestWidgets).TOP_ISSUES}") public void updateExecutionRequestConfig(ExecutionRequest executionRequest, ExecutionRequestConfigUpdateRequest request)
      Update execution request config.
      Parameters:
      executionRequest - execution request
      request - update request
    • getExecutionRequests

      public PaginatedResponse<ExecutionRequest> getExecutionRequests(UUID testPlanUuid, ExecutionRequestSearchRequest request)
      Get ExecutionRequests by filtering, sorting and pagination.
      Parameters:
      testPlanUuid - testPlanId
      request - pagination, sorting and filtering params
      Returns:
      list of ExecutionRequest
    • getExecutionRequestsResponse

      public PaginatedResponse<ExecutionRequestResponse> getExecutionRequestsResponse(UUID testPlanUuid, ExecutionRequestSearchRequest req)
      Get ExecutionRequests by filtering, sorting and pagination and build ExecutionRequestResponse from it.
      Parameters:
      testPlanUuid - testPlanId
      req - pagination, sorting and filtering params
      Returns:
      list of ExecutionRequestResponse
    • getRates

      public ExecutionRequestRatesResponse getRates(UUID executionRequestId)
      Get execution request rates info.
      Parameters:
      executionRequestId - execution request id
      Returns:
      rates response
    • searchFailedLogRecords

      public LogRecordRegexSearchResponse searchFailedLogRecords(UUID executionRequestId, LogRecordRegexSearchRequest request)
      Search execution request failed log records by regex.
      Parameters:
      executionRequestId - execution request identifier
      request - search request
      Returns:
      search result
    • getMapTestRunsForExecutionRequests

      public Map<UUID,List<TestRun>> getMapTestRunsForExecutionRequests(List<UUID> executionRequests)
      Get map of Test Runs with ER Id's as keys.
      Parameters:
      executionRequests - List of Execution Request Id's.
      Returns:
      Map of Test Runs.
    • getMapTestRunsWithScreenShotsForExecutionRequests

      public Map<UUID,List<TestRun>> getMapTestRunsWithScreenShotsForExecutionRequests(List<UUID> executionRequests)
      Get map of Test Runs (with screenshots) with ER Id's as keys.
      Parameters:
      executionRequests - List of Execution Request Id's.
      Returns:
      Map of Test Runs.
    • searchTestRunsByValidationLabels

      public TestRunsByValidationLabelsResponse searchTestRunsByValidationLabels(UUID id, TestRunsByValidationLabelsRequest testRunsRequest, Integer page, Integer size)
      Searches test runs by names, statuses, labels, validation labels.
      Parameters:
      id - execution request id
      testRunsRequest - filter for search
      page - page
      size - size
      Returns:
      Found test runs with validation labels
    • getProjectIdsByExecutionRequestIds

      public Set<UUID> getProjectIdsByExecutionRequestIds(List<UUID> uuids)
      Returns project ids by execution request ids.
    • getProjectIdsByExecutionRequestIds

      public Set<UUID> getProjectIdsByExecutionRequestIds(String uuids)
      Returns project ids by execution request ids.
    • getProjectIdByTestScopeId

      public UUID getProjectIdByTestScopeId(UUID testScopeId)
      Returns project ids by testScopeId.
    • findByTestScopeUuid

      public List<ExecutionRequest> findByTestScopeUuid(UUID testScopeUuid)
    • getFailureReasons

      public Collection<RootCause> getFailureReasons(UUID executionRequestId)
      Get failure reasons for execution request.
    • findExpireExecutionRequest

      public List<ExecutionRequest> findExpireExecutionRequest(Timestamp qwe, UUID projectId)
      Find all Execution Requests by expired period.
    • deleteAllExecutionRequestByExecutionRequestId

      public void deleteAllExecutionRequestByExecutionRequestId(List<UUID> executionRequestIds)
      Deleted ExecutionRequest.