Squash Orchestrator 4.6.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.6.0 compared to 4.5.0.
Squash Orchestrator 4.6.0 was released on September 27, 2023.
New features
-
Issue orchestrator #408 Switch to a deadletter queue for problematic dispatches
A dead letter queue has been implemented: some deadletter threads will try to redispatch publications whose first dispatch failed.
The delay before considering that a thread failed to respond, the number of deadletter threads, and the maximum number of retries are configurable. -
Issue orchestrator #420 Expose runs-on tags on job context
Hooks can now access the tags defined in theruns-on
job property. -
Issue orchestrator #421 Allow filtering on `status.phase` for workflows
TheGET /workflows
endpoint now supports filtering the workflows on their statuses:RUNNING
,FAILED
, orDONE
. -
Issue orchestrator #409 Allowing selectors in `GET /subscriptions` APIs
Issue orchestrator #410 Generalize selectors for observer endpoints
Issue orchestrator #411 Allowing selectors in `GET /agents` API
The following endpoints now support field and label selectors: -
Issue orchestrator #423 Adding handled query parameters to list endpoints
The answer of an endpoint supporting query parameters now contains the names of these ones in theX-Processed-Query
HTTP header. -
Issue python-toolkit #104 The launch_java_service script should handle proxy settings
TheHTTP_PROXY
,HTTPS_PROXY
, andNO_PROXY
environment variables are now taken into account by the Java micro-services. -
Issue python-toolkit #100 Allow for comments in IAM configuration files
Lines can now be commented out (using#
) in a trusted key authorization file, a token authorization file, or an authorization policy file. -
Issue orchestrator #415 Use the '--log-file' option instead of stdin redirect
The command line used to launch JUnit tests has been modified in order to work properly with Maven daemon (this FAQ describes how to set it up). -
Issue micronaut-java-plugins #47 Change property 'skippedStatus' default value to 'success'
In the Surefire parser configuration, the default value of theskippedStatus
property is nowsuccess
. -
Issue micronaut-java-plugins #46 Add validation on 'skippedStatus' property
An error is now reported when, in the Surefire parser configuration, theskippedStatus
property has an invalid value. -
Issue qualitygate #16 Clean up the logs for invalid scopes
More information is reported, byopentf-ctl get qualitygate
and in the logs, in case of usage errors such as providing an invalid scope. -
Issue orchestrator #417 Workflow completion/cancellation/failures should generate an info log at orchestrator level
Issue python-toolkit #111 Improve startup logs
Issue micronaut-java-plugins #43 Cleanup the log in Result aggregator
Issue java-toolkit #61 Add timestamps in notifications
Issue java-plugins #31 🔑 Cleanup the log in Squash-tm publisher
Issue python-toolkit #105 Remove spurious 'Le fichier de commandes est introuvable.' messages on job teardown
The logs have been further improved:- A workflow completion, cancellation, or failure is now logged as an
INFO
message, a timeout as aWARNING
one. - The
PYTHONPATH
value and the image components are now logged during the orchestrator startup. - A spurious message during a job teardown on Windows has been removed.
- Missing timestamps have been added.
- Some
DEBUG
logs have been moved to theTRACE
level. - Some useless information has been removed.
- …
- A workflow completion, cancellation, or failure is now logged as an
Bug fixes
-
Issue python-toolkit #110 Minor fix for consistency in boolean expressions handling
Some valid boolean expressions were generating an execution error. -
Issue orchestrator #226 get-files : Inconsistent behavior between Windows and Linux, a not found pattern does not always fail
Theget-files
action was not properly handling some cases where no files were matching the provided pattern. -
Issue orchestrator #166 get-files : The get-files action incorrectly attaches directories in addition to files.
Theget-files
action, when used with patterns such as**/*
, was improperly setting directories as attachments (it should only attach files). -
Issue orchestrator #168 The get-files action generates an error and stops the Workflow with a recursif pattern like '**/f*.txt'
Theget-files
action was failing for some patterns such as**/x*.ext
. -
Issue python-toolkit #98 Attaching namesake files generates only one occurrence locally
The orchestrator now prepends the name of each attachment with its UUID in order to mitigate file name collision. -
Issue orchestrator #225 The same `warn-if-not-found` input does not have the same effect in `actions/create-archive@v1` and in `actions/get-files@v1`
warn-if-not-found
can now be used to specify an error message for thecreate-archive
action, so it is now consistent withget-files
action behaviour. -
Issue orchestrator #259 create-archive : when warn-if-not-found is true then an empty file is generated not and empty tar
Thecreate-archive
action was generating an invalid empty tar file when there were no files to archive. It now generates a tar file containing an empty file namedintentionally_empty_archive
. -
Issue orchestrator #401 Switch to a defaultdict for localcleaner
A possible race condition resulted in some attachments being never deleted. -
Issue qualitygate #21 When using the API endpoint, if `mode` is not set, it defaults to `''`, whereas it should default to `strict`
When using theGET /qualitygate
endpoint, ifmode
is not present,strict
is now assumed. -
Issue python-toolkit #107 Incorrect workspace cleanup
The failure of abefore
step in a job hook was resulting in the workspace being cleaned up. -
Issue orchestrator #416 'publicationStatusSummary' keys in subscriptions should be strings, not integers
Keys in thestatus
part of subscription manifests were incorrectly set as integers, they are now strings.