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.g 0.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 to hello_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)