Aller au contenu

Squash Orchestrator 4.13.0 Release Note

Introduction

Squash Orchestrator is a set of micro-services to perform automated test execution workflows described in a specific format.

This release note describes the changes of Squash Orchestrator version 4.13.0 compared to 4.12.0.

Squash Orchestrator 4.13.0 was released on September 23, 2024.

New features

  • Issue micronaut-java-toolkit #74 Show the 'running' status for ITPIs
    Issue micronaut-java-plugins #80 🔑 Show the 'running' status for ITPIs
    Modifications have been made so that the ITPIs now display a RUNNING status in Squash TM when a test is actively running. This status is visible in the execution popup, detail screen, and any other relevant areas. This feature is available starting from Squash TM 8.

  • Issue orchestrator #382 [Postman, Cypress ] : an incorrect test reference will stop the workflow
    Depending on the test technology, a workflow could be stopped if one of the tests had an incorrect test reference. The behavior is now consistent, it will continue on the remaining tests even if one is blocked for a technical reason.

  • Issue python-toolkit #160 Context parameters should be settable via environment variables
    Issue python-toolkit #161 Make some low-level parameters configurable
    Context parameters usually defined in a service configuration file (e.g. max_jobs for the arranger) can now be set from an environment variable using the {SERVICE_NAME}_{PARAMETER_NAME} syntax. The available ones for each service are detailed in their own service configuration page. Services can also configure the waitress_threads_count via the {SERVICE_NAME}_WAITRESS_THREADS_COUNT environment variable. Default value is 4, except for the event bus and agent channel handler (10). This can help to simplify the deployment.

  • Issue python-plugins #15 🔑 Adjust to the new token handling on TM's side
    Starting from Squash TM 8, API calls will now support authentication by tokens. In Squash DEVOPS, the new parameter automatedServerToken can be used in place of automatedServerLogin and automatedServerPassword. If both token and login/password are provided, the bearer token will be used for authentication.

  • Issue orchestrator #557 Killswitch should move from WorkflowCanceled to WorkflowCancellation
    Issue orchestrator #589 Propagate Workflow Cancellation reason, if any
    The killswitch service has been updated to use the WorkflowCancellation message. This is used to differentiate a user-initiated cancellation from a technical cancellation (e.g. an error in the workflow). Additionally, it makes it possible to add a comment (reason and source) and supports a dryRun query parameter. If provided, the reason is also available in the WorkflowCancel message. More information can be found here.

  • Issue orchestrator #564 The eventbus should quarantine per endpoint, not subscription
    The eventbus now quarantines per endpoint instead of per subscription. It no longer attempts to resend on 4xx errors (except 429) and uses a throttling delay instead of a final quarantine. Additionally, event re-serialization has been removed to reduce unnecessary processing.

  • Issue orchestrator #569 Improve the agent protocol
    The agent protocol has been improved to reduce, in some cases, the commands necessary to execute an action. This means that there will be fewer requests between the orchestrator and the agent, potentially improving slightly the execution time. The agentchannel now also handles up to 10 requests at once and prevents ghost channels that could appear after a mass de-registration. This feature will be available for agents 1.8 or higher, with backward compatibility for older agents.

  • Issue orchestrator #559 Reduce the number of steps for common providers
    Action provider and Robot Framework provider have been optimized by reducing the number of generated steps. This means that there will be fewer back and forth between the orchestrator and the execution environment, potentially improving the execution time.

  • Issue orchestrator #560 Offload event publication from agent handling threads
    The publications now occur in their own threads. This improves the performance under load when using agents.

  • Issue orchestrator #568 Filter out events with no attachments
    The S3 publisher plugin now skips the validation of WorkflowResult and ExecutionCommand events that have no attachments. This implies a performance improvement.

  • Issue python-plugins #18 🔑 Adjust the worker wait period
    The default worker wait period has been increased from 60s to 300s to allow for more time before publishing items. This value remains user-configurable in the tm_executionlogpublisher configuration file.

  • Issue orchestrator #577 The insight collector should register its interest on a workflow on receiving a Workflow event, not after workflow completion
    In some cases it may happens that the publication was not done correctly. The insight collector used to register at the end of a workflow. This is not the case anymore, it is now done at the beginning.

  • Issue orchestrator #552 Handling of ExecutionError in generators
    Generators now fail specific jobs and propagate errors as needed, without canceling the entire workflow.

  • Issue python-toolkit #152 Allow for logging redirection
    Logs can now be redirected by setting the OPENTF_LOGGING_REDIRECT environment variable. This allows you to specify an alternative logging destination instead of the default sys.stderr.

  • Issue orchestrator #571 Handle 'outputs' in workflows, providers, and generators
    It is now possible to add an outputs section for provider and generator plugins. Outputs from previous jobs can now be referenced in workflows, and the WorkflowCompleted and WorkflowCanceled events include an outputs section if defined. More details can be found here.

  • Issue orchestrator #572 Allow for empty/missing 'runs-on' entries in jobs
    A job can now be ran without a runs-on entry. The job will then take any environment available.

  • Issue micronaut-java-toolkit #75 Keep the originating generator job ID on test plan generation failures
    Issue micronaut-java-plugins #83 🔑 Keep the originating generator job ID on test plan generation failures
    The ExecutionError message now includes the originating generator job ID in its metadata, helping identify the cause of failures in the test plan retriever.

  • python-toolkit #159 Reduce clutter in the execution log from certutil
    When executing on Windows, the execution log could contain a few unnecessary logs caused by certutil. They have been removed.

  • Issue orchestrator #549 [ WF control ] If jobs..needs points to itself there is no blocking error message
    An error message will now be shown if a job is referencing itself.

  • Issue micronaut-java-plugins #82 🔑 Error messages should be based on Squash TM version
    Generator error messages have been updated to be compatible with all Squash TM versions.

  • Issue python-plugins #19 🔑 Handle TM 8 new API endpoint
    The log publisher now handles Squash TM 8 updated publication endpoint /api/rest/latest/resultpublisher/{suiteId}/automated-executions/attachments. If version 8 or higher is detected, the new endpoint is used.

  • Issue python-plugins #17 🔑 Relax status code for report status publication
    Changes have been made to support a new status code returned from Squash TM 8 and higher.

  • Issue orchestrator #576 Observer should not raise errors for workflows without testResult notifications
    A workflow without any test result used to raise a few errors in the insightcollector. This is not the case anymore.

  • Issue python-toolkit #157 Generator and provider plugins helpers should provide an asynchronous dispatch queue
    Issue python-toolkit #155 Provide a detached publication queue, on demand
    Plugin helpers now provide an asynchronous dispatch queue. It retries failed publications with increasing delays up to 60 seconds until successful.

  • Issue python-toolkit #156 Improve and unify plugin support
    Channel handlers now filter out irrelevant ExecutionCommand messages. Additionally, generator handlers now log debug messages.

  • Issue orchestrator #573 Add datasources endpoint 202 response handling to qualitygate
    The qualitygate now handles the new 202 response from the datasource endpoint.

  • Issue orchestrator #583 Obsolete metadata in CHANNEL_RELEASE ExecutionCommand events
    Removed the unused metadata.step_origin_status field from ExecutionCommand events for channel releases.


Bug fixes

  • Issue orchestrator #570 InsightCollector times out when generating report for a voluminous workflows
    The insightcollector could time out with larger workflows. A cache has been implemented to improve this.

  • Issue micronaut-java-plugins #76 Update ITPI status when cancelling workflow from CLI
    Issue micronaut-java-plugins #84 🔑 Update ITPI status when cancelling workflow from CLI
    When a workflow is cancelled using the opentf-ctl command line, Squash TM now updates the ITPI status to "cancelled" along with the automated suite status.

  • Issue orchestrator #598 Channel setup hooks are not executed at the right time
    Channel setup hooks were executed after the job's steps. This has now been fixed.

  • Issue orchestrator #584 A workflow using an unknown generator remains in RUNNING status until exceeding its execution maximum duration
    Workflows referencing an unknown generator that previously remained stuck in RUNNING status until timeout can now be killed.

  • Issue orchestrator #562 HTML reports tables fail if no tags or jobs
    The HTML report tables now handle cases where there are no matching test cases gracefully. Internal errors have been resolved, and additional debug information is provided if no data is found.

  • Issue orchestrator #545 If the number of jobs exceeds the "max_jobs" value, the workflow is not killed
    The workflow is now cancelled if the number of jobs exceeds the max_jobs value specified in the arranger configuration file.

  • Issue orchestrator #580 Incorrect error handling when a step includes multiple attach workflow commands
    Error handling for steps containing multiple ::attach:: workflow commands has been improved. Previously, if one of the commands failed, the error was not properly managed. This issue is now resolved.

  • Issue orchestrator #575 Incorrect handling of dependency chains in generator jobs
    Dependency chains in generator jobs were not handled correctly. This could cause a workflow to be stuck as RUNNING. This is now fixed.

  • Issue orchestrator #553 A job cannot need itself
    A job is no longer allowed to include itself in its needs entry. This change prevents internal errors caused by such configurations.