CHANGES
=======

2015.1.0b2
----------

* JavaScript action: part 2
* Allowing multiple hosts for ssh action
* Catch workflow errors
* Rename environment to env in start_workflow
* Fix action_context in with_items
* Fix sequential tasks publishing the same variable
* fix doc dsl v2
* JavaScript action: part 1
* Apply default to action inputs from environment
* Add full support for YAQL expressions
* Fixing a data flow bug with parallel tasks
* Changing publishing mechanism to allow referencing context variables
* Fix 500 error on wrong definition
* Pass action error to results
* Fixing problem with trust creation
* Working on secure DB access (part 4)
* Working on secure DB access (part 3)
* Working on secure DB access (part 2)
* Working on secure DB access (part 1)
* Concurrency: part 2
* Adding assertions for "updated_at" field in DB tests
* Fix imports due to changes in tempest
* Fixing environment tests
* Concurrency: part 1
* Change 'with-items' syntax
* Add validation on 'with-items' input
* Adding test on calculating multi-array input
* Adding more tests for YAQL length() function
* Implement workflow execution environment - part 3
* Implement workflow execution environment - part 2
* Implement workflow execution environment - part 1
* Small: remove polluting debug log
* Updating YAQL dependency to version 0.2.4
* Update README file with devstack installation instruction
* Small: refactor commands
* Fix mistralclient initialization
* Small fixes in default config
* small tox fixes
* Using 'with-items' instead of 'for-each'
* Fixing README
* Implementing "no-op" task
* Updating SQLAlchemy dependency

2015.1.0b1
----------

* Refacor resume algorithm
* Implement pause-before
* Fixing parsing inline syntax parameters
* Fix retry policy unit test
* Fixing a bug retry policy
* Updates logging configuration samples
* Changing target task property to singular form
* Add region name to OpenStack client initialization
* Fixing for-each
* API controllers should log requests at INFO level
* Add test case for dataflow to test action input
* Refactor for-each
* Style changes in launch.py
* Testing wait policies defined in "task-defaults" for reverse worklfow
* Testing timeout policy defined in "task-defaults" for reverse workflow
* Testing retry policy defined in "task-defaults" for reverse workflow
* Redesigning engine to move all remote calls from transactions
* Working on "join": making "one" join value work (discriminator)
* Working on "join": allowed value "one" for "join" property
* Add docs on task-affinity and configuring MySQL
* Working on "join": removing array type from "join" JSON schema
* Working on "join": making "join" trigger only once
* Working on "join": adding a test to verify that join triggers once
* Working on "join": fixing "partial join" test new "noop" engine command
* Working on "join": implementing partial join with numeric cardinality
* Modified install docs
* Fix creating triggers with the same pattern, wf and wf-input
* Working on "join": added a test for numbered partial join
* Refactor policies tests
* Working on "join": making "full join" work with conditional transitions
* Working on "join": making "full join" work with incoming errors
* Adding "std.fail" action that always throws ActionException
* Adding "std.noop" action (can be useful for testing)
* Raise human-readable exception if workflow_name is not a dict
* Working on "join": first basic implementation of full join
* Working on "join": add "join" property into task specification
* Working on "join": implement basic test for full join
* Fix trace with wrong input for action
* Fix Application context not found in tests
* Add advanced tests on workflow-resume
* Make able to resume workflow
* Refactor API tests for v2
* Fix creating std actions
* Renaming trusts.py to security.py and adding method add_security_info
* Refactoring workbooks service to be symmetric with other services
* Use YAML text instead of JSON in HTTP body
* Renaming "commands" to "cmds" in engine to avoid name conflicts
* Refactor std.email action
* Update README files
* Sort executions and tasks by time
* Add 'project_id' to Execution and Task
* Fill 'wf_name' task_db field
* Add cinder actions
* Add possibility to pass variables from context to for-each
* Implement for-each task property
* Updating AUTHORS file
* Refactoring getting one object from DB
* Fix creating objects with the same names
* Add API integration tests for actions

0.1.1
-----

* Construct and pass action_context to action
* Add passing auth info to std.http
* Adding print out of server information into launch script
* Adding method for authentication based on config keystone properties
* Add functional API tests for cron-triggers
* Docs fix - small structure fix
* Add documentation - part 3
* Add validating of 'for-each' task property DSL
* Cut too long task result in log
* Cleanup, refactoring and logging
* Fixing condition in workflow service
* Adding endpoint for cron triggers
* Refactoring workflow and action services
* Implementing cron cron trigger v2
* Adding DB model and DB api methods for cron triggers
* Provide workflow input via API
* Add for-each to task spec
* Now collections in the DB sorted by name
* Create standard workflows and actions
* Fixing order of commands and tasks in direct workflow
* Fix task-defaults correct work
* Removing saving raw action/workflow result under 'task.taskName'
* Making YAQL function length() work for generators
* Fixing a bug in inline expressions
* Adding length() YAQL function
* Whitelist binary 'rm' in tox.ini
* Add adding target via YAQL
* Add simple task affinity feature
* Fixing dsl v2 unit test
* Refactoring action service
* Use keystonemiddleware in place of keystoneclient
* Add generating parameters for openstack-actions
* Provide action-input via API
* Fix dataflow work
* Add documentation - part 2
* Add documentation - part 1
* Update tearDown methods in API integration tests
* Use $(COMMAND) instead of `COMMAND`
* Making execution context immutable
* Add workflow trace logging in engine v2
* Fix scheduler test
* Fix providing 'is_system' property in /actions
* Fix tasks in order of execution
* Stop using intersphinx
* Style changes in Scheduler and its tests
* Add script to run functional tests locally
* Adding 'tags' to action rest resource
* Modifying workflow and action services to save 'tags'
* Adding 'tags' to workflow and action specs
* Cleaning up obsolete TODOs and minor style changes
* Update requirements due to global requirements (master)
* Fix API tests for v2 version

0.1
---

* Style changes in policies and commands
* Fix race conditions in policies
* Fix workbook and workflow models
* Implementing policies in task-defaults property
* Add timeout policy
* Implementing 'task-defaults' workflow property
* Cosmetic changes in actions service
* Making action controller able to handler multiple actions
* Making workflow endpoint able to upload multiple workflows
* Fixing v2 workbooks controller not to deal with 'name'
* Modifying workbook service to infer name and tags from definition
* Adding 'name' to reverse_workflow.yaml workbook
* Add workflow service module
* Fix providing result (task-update API)
* Add param 'name' to the test definition
* Adding 'name' and 'tags' into workbook spec
* Cosmetic changes in executions v2 controller and tests
* Removing obsolete code related to ad-hoc actions
* Renaming 'parameters' to 'input' everywhere
* Cosmetic changes in Data Flow and commands
* Fix passing params to execution
* Fix dataflow work
* Adding workflow parameters validation
* Removing engine redundant parameter
* Adding tests for order of engine instructions
* Fixing db properties for testing purposes
* Add API integration tests for v2
* Trivial: improve ad-hoc action test
* Fix input on execution create
* Fixing task/workflow specs to do transformations with 'on-XXX' once
* Fixing v2 specs so 'on-XXX' clauses return lists instead of dicts
* Improving exceptions for OpenStack actions
* Getting rid of explicit 'start-task' property in workflow DSL
* Implementing workflow 'on-task-XXX' clauses
* Fix wrong passing parameter 'workflow_input'
* Fixing workflow specification to support 'on-task-XXX' clauses
* Fixing workflow handlers to return all possible commands
* Refactoring engine using abstraction of command
* Delete explicit raising DBError from transaction
* Fixing passing raw_result in v1
* Register v2 API on keystone by default
* Renaming 'stop_workflow' to 'pause_workflow'
* Adding unit for tests engine instructions
* Fixing task v2 specification
* Fix run workflow in case task state == ERROR
* Fixed retry-policy optional 'break-on' property
* Fix workflow update API
* Add mechanism for generation action parameters
* Implement short syntax for passing base-parameters into adhoc-action
* Changing all DSL keywords to lower case
* Additional testing of reverse workflow
* Pass output from task API to convey_task_result
* Moving all API tests under 'mistral.tests.unit' package
* Fixing workbook definition upload for v1
* Add check on config file in sync_db script
* Fixed Execution WSME model and to_dict()
* Saving description from definition in actions endpoint
* Fixing workflows controller to fill 'spec' property based on definition
* Adding actions endpoint
* Cosmetic changes
* Fixing engine to support adhoc actions
* Fixing workbook service to create actions
* Implement wait-after policy and retry
* Add test on passing expressions to parameters
* Fixed Engine v2 work on fake RPC backend
* Add posibillity to use different types in task parameters
* Adding necessary DB API methods for actions
* Creating ad-hoc actions engine test
* Removing obsolete namespace related methods from task v2 spec
* Fixing subworkflow resolution algorithm
* Removing 'workflow_parameters' from workflow spec
* Switching to using 'with db_api.transaction()'
* Removing redundant parameters from methods of policies
* Add 'description' field to specifications
* Add serializers to scheduler call
* Implement Wait-before policy
* Refactoring engine to build and call task policies
* Provide executor info about action
* Create action_factory without access to DB
* Delete code related to Namespaces
* Change instruction how to start Mistral
* Dividing get_action_class on two separate methods
* Rename action_factory to action_manager
* Modify action_factory to store actions in DB
* Work toward Python 3.4 support and testing
* Renaming 'on-finish' to 'on-complete' in task spec
* Adding "wait-before" and "wait-after" to task policies
* Fixing workflow spec to return start task spec instead its name
* Including "policies" into task spec
* Adjusting policy interfaces
* Renaming 'workflow_parameters' to 'workflow-parameters'
* Small optimizations and fixes
* Fixing processing subworkflow result
* Renaming 'class' to 'base' in action spec
* Renaming 'start_task' to 'start-task' in workflow spec
* Fix execution state ERROR if task_spec has on-finish
* Additional changes in Delayed calls
* Fixing services/workbooks.py to use create_or_update_workflow()
* Implement REST API v2.0
* Adding new methods to DB API v2 (load_xxx and create_or_update_xxx)
* Adding unit tests for workflow DB model
* Add service for delayed calls
* Improving services/workbooks
* Removing obsolete db.api.py module in favor of db.v1.api.py
* Introducing 'workflow' as an individual entity
* Removing 'Namespaces' section from DSL
* Renaming 'linear' workflow to 'direct'
* Implementing task execution infrastructure
* Add two more tests which check workflow execution
* Small updates to devstack integration
* Adding transaction context manager function for db transactions
* Fail workflow if any task fails
* Fixing validation for action specifications ('output' property)
* Working on linear workflow: on_task_result()
* Working on linear workflow: start_workflow()
* Working on engine implementation: on_task_result()
* Renaming base class for Mistral DB models
* Working on engine implementation: start_workflow()
* Fix small issues in tests
* Cosmetic changes in integration tests
* Rename resource directory
* Add integration test on Glance Action
* Add test on Keystone Action
* Add integration tests on nova actions
* Add tests which check task dependencies
* Move gate tests under mistral/tests
* Add neutron actions
* Small fixes in openstack-actions
* Moving TaskResult and states to 'workflow' package
* Adding implementation of method __repr__ for DB models
* Working on reverse workflow: on_task_result()
* Working on reverse workflow: implementing method start_workflow()
* Replacing NotImplemented with NotImplementedError
* Working on reverse workflow: fixing specification version injection
* Unit tests for v2 DB model
* Refactoring DB access layer
* Implementing DSL specification v2 (partially)
* Add heat actions
* Add openstack actions
* Switching from dicts to regular objects in DB API
* Initial commit for the new engine
* Fix mistral gate job
* Replace oslo-incubator's db with standalone oslo.db
* Move oslotest into test-requirements.txt
* Calculate context for tasks with dependencies
* Cleaning up index.rst file
* The schedule triggers need to setup admin context before run
* Add running mistralclient integrational tests
* Make executor able to work in isolated environment
* Add installation of mistralclient in devstack script
* Make plugins easier to use
* Update requirements due to global-requirements
* Fixing Mistral HTTP action to take care of empty headers
* Log action failures and exceptions

0.0.4
-----

* Fixing wrong access to Mistral security context in engine
* Make OpenStack related data available in actions
* Add project_id to the workbook and filter by it
* Make sure the context is correctly passed through the rpc
* Add Executions and Tasks root API endpoints
* Removing obsolete folder "scripts"
* Remove redundant convey_task_results arguments
* Remove redundant DB API arguments
* 'requires' should take a string or list
* Fix get task list of nonexistent execution
* Favor addCleanup() over tearDown()
* Make sure the api tests get a valid context
* Fix Hacking rule H306 and H307
* Fix hacking rule H236
* Fix Hacking rule H302 (import only modules)
* Expose Task's output and parameters through API
* Make the service_type more consistent
* Switch from unittest2 to oslotest(testtools)
* Fix hacking rules H101 and E265
* Temporarily disable the new hacking rules
* Renaming all example config files from *.conf.example to *.conf.sample
* Fixing obsolete file name in README.rst
* Fix devstack gate
* Add upload definition action in test
* Do a better job of quietening the logs
* All tests should call the base class setUp()
* Move all tests to use base.BaseTest
* Add OS_LOG_CAPTURE to testr.conf
* Fix create execution when workbook does not exist
* Fix getting action_spec in create tasks
* Added information about automated tests
* Refactor test_task_retry to not rely on start_task
* Clean up configuration settings
* Refactor test_engine to not rely on start_task
* Fix update nonexistent task
* Fix get execution list when workbook does not exist
* Fix keystone config group for trust creation
* fix mistral devstack scripts
* Fix bug with getting nonexistent task
* Fix duplicate keystone auth_token config options
* Move tests to testr
* Add negative functional tests
* Add new tests for executions and tasks
* Add lockutils to openstack/common
* Implement new mistral tests
* Remove unneccesary oslo modules
* Making "Namespaces" section truly optional
* Restore script update_env_deps in tools
* Fix devstack integration scripts
* Remove unused function get_state_by_http_status_code
* Sync code with oslo-incubator
* Small engine bugfixing/refactoring
* Make field 'Namespaces' optional
* Add support for plugin actions
* Add autogenerated API documentation
* Adding docstring for HTTPAction class
* Renaming 'events' to 'triggers'
* Adding more http standard action parameters
* Fix H404 multi line docstring should start without a leading new line
* Fix H233 Python 3.x incompatible use of print operator
* Fix pep H301 one import per line
* Fix pep H231 Python 3.x incompatible 'except x,y:' construct
* Fix pep H402 one line docstring needs punctuation
* Fix pep H201 no 'except:' at least use 'except Exception:'
* Fix pep E226 missing whitespace around arithmetic operator
* Add hacking to the flake8 tests
* Add/Fix all error handling mechanism on REST API
* Fix url in "get workbook definition" test
* Cleanup exceptions and add http code
* Throwing an error when workbook validation fails
* Throw NotFoundException when object not found
* Fix creating trust on workbook creation
* Allow launch script to start any combination of servers
* Fix 500 status code on DELETE request
* Fix issue with tempest tests
* Task.publish now is processed as arbitrary structure
* Fix demo.yaml example in tempest tests
* Add test on arbitrary output dict in action
* Fix mistral tests
* Update mistral tests
* Context contains results of all previous tasks now

0.0.2
-----

* Fixed issue with tarballs

0.0.1
-----

* Refactor engine to use plugins
* Fixes list of requirements
* Fixes README.rst formatting
* Making workflow trace logging more consistent
* Added Devstack integration
* Fixing setup.cfg
* Fix work on MySQL backend
* Replace rabbit config to 'default' section
* Additional workflow trace logging in abstract_engine.py
* Fixing wrong comparison in retry.py
* Engine as a standalone process
* Improved README file
* Fix evaluating task parameters
* Adding all conf files in etc/ to .gitignore
* Fix broken retry tests
* Remove etc/logging.conf
* Add workflow logging
* Fixing inline expressions evaluation
* Making execution data available in data flow context
* Fixing initialization of variable 'action_spec' in abstract_engine.py
* Remove redundant update task operation
* Fix convert params and result in AdHocAction
* Adding parameters to adhoc action namespaces
* Removing 'base_output' from ad-hoc actions specification
* Temporarily commenting assertions in task retry tests
* Temporarily commenting assertions in task retry tests
* Fix result of HTTP action
* Fix returning ERROR task state
* Fixing http action and abstract engine
* Moving expressions.py out of package 'engine'
* Change repeater to retry on error
* BP mistral-actions-design (raw action spec -> ActionSpec)
* BP mistral-actions-design (removing old actions, addressing previous comments)
* BP mistral-actions-design (add SSH action)
* BP mistral-actions-design (switch to new design)
* BP mistral-actions-design (ad-hoc actions in factory)
* BP mistral-actions-design (ad-hoc action)
* BP mistral-actions-design (Mistral HTTP action)
* BP mistral-actions-design (action creation)
* BP mistral-actions-design (add new actions package)
* BP mistral-actions-design
* Add SSH Action
* Remove local engine
* Fix repeatable task scheduling
* Add resolving inline expressions
* Cosmetic change
* Fixed issue with deprecated exception
* Fix minor issues
* Fix keystone trust client
* Add extracting action output
* Refactor the local engine to use an in process executor
* Implements: blueprint mistral-std-repeat-action
* Correct fake action test name
* Remove unneeded declarations in unit tests
* Add keystone auth_token in context
* Fix keystone config group name
* Add script to allow update dependencies in all envs
* Fixing ordering bugs in local engine tests
* Fixing ordering bugs in workbook model and tests
* Fixing executor launch script
* Fix getting task on-* properties
* Rename 'events' to 'triggers'
* Implement new object-model specification
* Use oslo.messaging for AMQP communications
* Working on Data Flow (step 5)
* Working on Data Flow (step 4)
* Working on Data Flow (step 3)
* Make engine configurable, make debugger show local variables
* Partially fixed the pylint errors
* Fix throwing exception when 'output' block is not defined
* Fixed critical pylint warnings
* Working on Data Flow (step 2)
* Working on Data Flow (step 1)
* Add scheduling specific task on sucess/error
* Send email action, part 2
* Rename "target_task" to "task"
* Send email action, step 1
* Add negative tests to api
* Fixing access to task "parameters" property in DSL
* Fix getting task on-* properties in DSL
* Fix task keys properties in DSL parser
* Add YAQL expression evaluation
* Modified Rest action for process 'input' property
* Add sync task execution
* Fixing and refactoring authentication
* Deleting client and demo app from main Mistral repo
* Fixed issue with tarballs
* Add integration tests
* Divide RestAction on two separated actions in DSL
* Add new access methods in DSL parser
* Refactoring local and scalable engines
* Adding Data Flow related code to REST API
* Fixing typo in an exception message in Mistral client
* Step 2 refactoring Mistral engines
* Step 1 refactoring Mistral engines
* Fix exceptions output when creating object in DB
* Add SQLAlchemy in requirements.txt
* Fix DB API import in scheduler.py
* Implement single (non-scalable) engine
* Fixing scheduler transactions
* Fixing workbook events creation
* Fixing flak8 excludes in tox.ini
* Adjusting all license headers in python files so they look the same
* Adding license and authors file
* context creation in periodic task to execute workbook
* Fix workbook POST duplicate exception
* Add demo app for Mistral
* Fix client for further patching
* Added trust for workbook runs
* Updating README.md file
* Fixing scalable engine algorithm
* Fixing scripts' headers to make them executable
* Various fixes related to end-to-end testing
* Fix resolving dependencies in workflow
* Add explicit DB transaction management
* Added context for application
* Added keystone token authorization
* Fix periodic tasks running over engine
* Add engine related features
* Implementing scalable Mistral Engine
* Add DSL parser
* Implementing Mistral Rest API Client
* Add SQLAlchemy models and access methods
* Connect DB implementation with DB interface
* Added periodic events
* Working on REST API
* Added initial database setup
* Adding REST API application skeleton based on pecan/wsme
* Adding pecan, wsme, oslo and adjusting packages
* Modify use case example
* Fixing licence in setyp.py
* Add example of using taskflow
* Add .gitreview, setup.py and other infrastructure
* Adding .gitignore
* Adding virtual environment tools
* Adjusting project name in readme file
* Initial commit
