StackStorm v2.1.0 Release Notes
Release Date: 2016-12-05 // over 7 years ago-
โ Added
* ๐ New pack management: - Add new ``stackstorm_version`` and ``system`` fields to the pack.yaml metadata file. Value of the first field can contain a specific StackStorm version with which the pack is designed to work with (e.g. ``>=1.6.0,<2.2.0`` or ``>2.0.0``). This field is checked when installing / registering a pack and installation is aborted if pack doesn't support the currently running StackStorm version. Second field can contain an object with optional system / OS level dependencies. (new feature) - Add new ``contributors`` field to the pack metadata file. This field can contain a list of people who have contributed to the pack. The format is ``Name <email>``, e.g. ``Tomaz Muraus <[email protected]>`` (new feature) - Add support for default values and dynamic config values for nested config objects. (new feature, improvement) - Add new ``st2-validate-pack-config`` tool for validating config file against a particular config schema file. (new-feature) * โ Add new ``POST /v1/actionalias/match`` API endpoint which allows users to perform ChatOps action alias matching server-side. This makes it easier to build and maintain StackStorm ChatOps clients / adapters for various protocols and mediums. Clients can now be very thin wrappers around this new API endpoint. Also add two new corresponding CLI commands - ``st2 alias-execution match`` and ``st2 alias-execution execute``. Contribution by Anthony Shaw. (new feature) #2895. * โ Adding ability to pass complex array types via CLI by first trying to seralize the array as JSON and then falling back to comma separated array. * โ Add new ``core.pause`` action. This action behaves like sleep and can be used inside the action chain or Mistral workflows where waiting / sleeping is desired before proceeding with a next task. Contribution by Paul Mulvihill. (new feature) #2933. * ๐ Allow user to supply multiple resource ids using ``?id`` query parameter when filtering "get all" API endpoint result set (e.g. ``?id=1,2,3,4``). This allows for a better client and servers performance when user is polling and interested in multiple resources such as polling on multiple action executions. (improvement) * Add support for ssh config file for ParamikoSSHrunner. Now ``ssh_config_file_path`` can be set in st2 config and can be used to access remote hosts when ``use_ssh_config`` is set to ``True``. However, to access remote hosts, action parameters like username and password/private_key, if provided with action, will have precedence over the config file entry for the host. #2941 #3032 #3058 [Eric Edgar] (improvement) ๐ Changed
๐ Improved pack validation - now when the packs are registered we check that:
version
attribute in the pack metadata file matches valid semver format (e.g0.1.0
,2.0.0
, etc.)email
attribute (if specified) contains a valid email address. (improvement)- Only valid word characters (
a-z
,0-9
and_
) used for action parameter names. Previously, due to bug in the code, any character was allowed.
If validation fails, pack registration will fail. If you have an existing action or pack definition which uses invalid characters, pack registration will fail. You must update your packs.
- For consistency with new pack name validation changes, sample
hello-st2
pack has been renamed tohello_st2
. - โก๏ธ Update
packs.install
action (pack install
command) to only load resources from the packs which are being installed. Also update it and remove "restart sensor container" step from the install workflow. This step hasn't been needed for a while now because sensor container dynamically reads a list of available sensors from the database and starts the sub processes. (improvement) - ๐ Improve API exception handling and make sure 400 status code is returned instead of 500 on mongoengine field validation error. (improvement)
- ๐ง Throw a more user-friendly exception if rendering a dynamic configuration value inside the config fails. (improvement)
- ๐ Change st2api so that a full execution object is returned instead of an error message, when an API client requests cancellation of an execution that is already canceled
- Speed up short-lived Python runner actions by up to 70%. This way done by re-organizing and re-factoring code to avoid expensive imports such as jsonschema, jinja2, kombu and mongoengine in the places where those imports are not actually needed and by various other optimizations. (improvement)
- ๐ Improve performance of
GET /executions/views/filters
by creating additional indexes on executions collection - โฌ๏ธ Upgrade various internal Python library dependencies to the latest stable versions (gunicorn, kombu, six, appscheduler, passlib, python-gnupg, semver, paramiko, python-keyczar, virtualenv).
โ Removed
* โ Remove ``packs.info`` action because ``.gitinfo`` file has been deprecated with the new pack management approach. Now pack directories are actual checkouts of the corresponding pack git repositories so this file is not needed anymore. ๐ Fixed ~~~~~ * ๐ Fix ``packs.uninstall`` action so it also deletes ``configs`` and ``policies`` which belong to the pack which is being uninstalled. (bug fix) * When a policy cancels a request due to concurrency, it leaves end_timestamp set to None which the notifier expects to be a date. This causes an exception in "isotime.format()". A patch was released that catches this exception, and populates payload['end_timestamp'] with the equivalent of "datetime.now()" when the exception occurs. * โ Adding check for datastore Client expired tokens used in sensor container * ๐ Fix python action runner actions and make sure that modules from ``st2common/st2common/runners`` directory don't pollute ``PYTHONPATH`` for python runner actions. (bug fix)