StackStorm v2.9.0 Release Notes
Release Date: 2018-09-16 // over 5 years ago-
➕ Added
* ➕ Add new runners: ``winrm-cmd``, ``winrm-ps-cmd`` and ``winrm-ps-script``. The ``winrm-cmd`` runner executes Command Prompt commands remotely on Windows hosts using the WinRM protocol. The ``winrm-ps-cmd`` and ``winrm-ps-script`` runners execute PowerShell commands and scripts on remote Windows hosts using the WinRM protocol. To accompany these new runners, there are two new actions ``core.winrm_cmd`` that executes remote Command Prompt commands along with ``core.winrm_ps_cmd`` that executes remote PowerShell commands. (new feature) #1636 Contributed by Nick Maludy (Encore Technologies). * ➕ Add new ``?tags``, query param filter to the ``/v1/actions`` API endpoint. This query parameter allows users to filter out actions based on the tag name . By default, when no filter values are provided, all actions are returned. (new feature) #4219 * ➕ Add a new standalone standalone ``st2-pack-install`` CLI command. This command installs a pack (and sets up the pack virtual environment) on the server where it runs. It doesn't register the content. It only depends on the Python, git and pip binary and ``st2common`` Python package to be installed on the system where it runs. It doesn't depend on the database (MongoDB) and message bus (RabbitMQ). It's primary meant to be used in scenarios where the content (packs) are baked into the base container / VM image which is deployed to the cluster. Keep in mind that the content itself still needs to be registered with StackStorm at some later point when access to RabbitMQ and MongoDB is available by running ``st2ctl reload --register-all``. (new feature) #3912 #4256 * ➕ Add new ``/v1/stream/executions/<id>/output[?output_type=all|stdout|stderr]`` stream API endpoint. This API endpoint returns event source compatible response format. For running executions it returns any output produced so far and any new output as it's produced. Once the execution finishes, the connection is automatically closed. For completed executions it returns all the output produced by the execution. (new feature) * ➕ Add new ``core.inject_trigger`` action for injecting a trigger instance into the system. Keep in mind that the trigger which is to be injected must be registered and exist in the system. (new feature) #4231 #4259 * ➕ Add support for ``?include_attributes`` query param filter to all the content pack resource get all (list) API endpoints (actions, rules, trigger, executions, etc.). With this query parameter user can control which API model attributes (fields) to receive in the response. In situations where user is only interested in a subset of the model attributes, this allows for a significantly reduced response size and for a better performance. (new feature) (improvement) #4300 * Add new ``action_sensor.emit_when`` config option which allows user to specify action status for which actiontrigger is emitted. For backward compatibility reasons it defaults to all the action completed states. (improvement) #4312 #4315 Contributed by Shu Sugimoto. * 👌 Improve performance of schedule action execution (``POST /v1/executions``) API endpoint. Performance was improved by reducing the number of duplicated database queries, using atomic partial document updates instead of full document updates and by improving database document serialization and de-serialization performance. (improvement) #4030 #4331 * Ported existing YAQL and Jinja functions from st2common to Orquesta. (new feature) * ➕ Add error entry in Orquesta workflow result on action execution failure. (improvement) 🔄 Changed
- 0️⃣
st2 key list
command now defaults to--scope=all
aka displaying all the datastore values (system and current user scoped) . If you only want to display system scoped values (old behavior) you can do that by passing--scope=system
argument to thest2 key list
command (st2 key list --scope=system
). (improvement) #4221 - The orquesta conductor implemented event based state machines to manage state transition of workflow execution. Interfaces to set workflow state and update task on action execution completion have changed and calls to those interfaces are changed accordingly. (improvement)
- 🔄 Change
GET /v1/executions/<id>/output
API endpoint so it never blocks and returns data produced so far for running executions. Behavior for completed executions is the same and didn't change - all data produced by the execution is returned in the raw format.
The streaming (block until execution has finished for running executions) behavior has been moved to the new
/stream/v1/executions/<id>/output
API endpoint.This way we are not mixing non-streaming (short lived) and streaming (long lived) connections inside a single service (st2api). (improvement)
- ⬆️ Upgrade
mongoengine
(0.15.3) andpymongo
(3.7.1) to the latest stable version. Those changes will allow us to support MongoDB 3.6 in the near future.
New version of
mongoengine
should also offer better performance when inserting and updating larger database objects (e.g. executions). (improvement) #4292- 🛰 Trigger parameters and payload schema validation is now enabled by default
(
system.validate_trigger_parameters
andsystem.validate_trigger_payload
config options now default toTrue
).
This means that trigger parameters are now validated against the
parameters_schema
defined on the trigger type when creating a rule and trigger payload is validated againstpayload_schema
when dispatching a trigger via the sensor or via the webhooks API endpoint.This provides a much safer and user-friendly default value. Previously we didn't validate trigger payload for custom (non-system) triggers when dispatching a trigger via webhook which meant that webhooks API endpoint would silently accept an invalid trigger (e.g. referenced trigger doesn't exist in the database or the payload doesn't validate against the
payload_schema
), butTriggerInstanceDB
object would never be created because creation failed inside thest2rulesengine
service. This would make such issues very hard to troubleshoot because only way to find out about this failure would be to inspect thest2rulesengine
service logs. (improvement) #4231- 👌 Improve code metric instrumentation and instrument code and various services with more metrics. Also document various exposed metrics. Documentation can be found at https://docs.stackstorm.com/latest/reference/metrics.html (improvement) #4310
- ➕ Add new
metrics.prefix
config option. With this option user can specify an optional prefix which is prepended to each metric key (name). This comes handy in scenarios where user wants to submit metrics from multiple environments / deployments (e.g. testing, staging, dev) to the same backend instance. (improvement) #4310 - 👌 Improve
st2 execution tail
CLI command so it also supports Orquesta workflows and arbitrarily nested workflows. Also fix the command so it doesn't include data from other unrelated running executions. (improvement) #4328 - 🔄 Change default NGINX configuration to use HTTP 308 redirect, rather than 301, for plaintext requests. #4335
- 👌 Improve performance of the
GET /v1/actions/views/overview
API endpoint. (improvement) #4337
🛠 Fixed
* 🛠 Fix an issue with ``AttributeError: module 'enum' has no attribute 'IntFlag'`` error which would appear when using Python 3 for a particular pack virtual environment and running on RHEL / CentOS. (bug fix) #4297 * 🛠 Fix a bug with action runner throwing an exception and failing to run an action if there was an empty pack config inside ``/opt/stackstorm/configs/``. (bug fix) #4325 * 🛠 Fix ``action_sensor.enable`` config option so it works correctly if user sets this option to a non-default value of ``True``. (bug fix) #4312 #4315 Contributed by Shu Sugimoto. * ⚡️ Update ``GET /v1/actions/views/entry_point/<action ref>`` to return correct ``Content-Type`` response header based on the entry point type / file extension. Previously it would always incorrectly return ``application/json``. (improvement) #4327 🗄 Deprecated
- 🚚 The CloudSlang runner is now deprecated. In StackStorm 3.1 it will be removed from the core StackStorm codebase. The runner code will be moved to a separate repository, and no longer maintained by the core StackStorm team. Users will still be able to install and use this runner, but it will require additional steps to install.
- 🏁 The
winexe
-based Windows runners are now deprecated. They will be removed in StackStorm 3.1. They have been replaced bypywinrm
-based Windows runners. See https://docs.stackstorm.com/latest/reference/runners.html#winrm-command-runner-winrm-cmd for more on using these new runners.
- 0️⃣