* Allowed creating via API
* Added the corresponding processing
in the event engine
* Corresponding test
Closes-Bug: #1704111
Change-Id: I73a1d10fe684f1ec962e42e9700064d06cb0bcbe
* Added get event triggers for all projects
and the corresponding rule in policy.json
* Fixed corresponding policy rule names for
event triggers API
Change-Id: I74e65a1cee8d074cfd637e460465922b610237c5
We already supported role based api access control, this series patches
will implement resource access control for mistral, so that
administrator could define the rules of resource accessibility, e.g.
admin user could get/delete/update the workflows of other tenants
according to the policy.
TODO:
- Implement update workflow by admin
- Implement delete workflow by admin
- Implement for other resources(workfbook/execution/task/action, etc.)
Partially implements: blueprint mistral-rbac
Change-Id: I8b00e8a260a74457ad037ee7322a7cba9ae34fab
This patch adds the Mistral changes to support the new event trigger
REST API.
Change-Id: I8190ce81d46cc8296db29f41442354cdfe1a5bbd
Implements: blueprint event-notification-trigger
Co-Authored-By: Lingxian Kong <anlin.kong@gmail.com>
When using event trigger feature, some of the notification data may be
useful to end users in their workflows. However, the whole data can not
be visible to end users due to security reasons.
This patch will give operators a chance to define what information will
be available to end users. If the definition is not found, a 'safe'
default setting will be used.
Change-Id: I8b6e9cbe318011d2d11a2bb91aaff4d37222c7eb
Implements: blueprint event-notification-trigger
Mistral api access can be restricted base on role
by modifying /etc/mistral/policy.json file.
Change-Id: I4c78ca4cc04d25f46aea55948bce339cfe460ff0
Implements: blueprint mistral-customize-authorization
Add examples for logging.conf and wf_trace_logging.conf to setup rotating logs
for mistral.log and mistral_wf_trace.log.
Change-Id: I85be48f2e98f5b7e9b8dbc339fa8de2dd7e78449
Implements: blueprint mistral-conf-rotating-log
For two reasons:
* The configuration file can be generated by using oslo-config-generator
CLI command provided by oslo.config module, which is generally adopted
by OpenStack projects.
* Reduce maintenance effort for each configuration item change.
Change-Id: If2f2559d669275b5fd252790657521049296c156
A mechanism that remove old executions (expired) according to Admin policy: how old they are, when executing this policy.
By the default this task is disable.
Change-Id: I15433d176d8e4a499a4466fc9324ceef60ddc4b9
Implements: blueprint expiration-policies-for-executions
Allow the cloud provider to configure the
size limit of workflow input, action input,
action output, task publish and workflow params
This will allow users to execute workflows that
handle much bigger datasets from the ones which
are supported today.
The changes made in order to achieve that goal:
* Increase DB columns size so they will no longer
be the barrier
* Add configuration options to control the limit
* Add event listener on the columns to enforce
the size limitation
Change-Id: If7c29f9325e60ce456e23d5c7b6ceb3477a028d4
Implements: blueprint support-large-datasets
Modify run_tests.sh to run unit tests with PostgreSQL. Fix a number of
connection pool and deadlock related issues in the unit tests. Fix DB
clean up routine to remove records in the correct context and order.
Change-Id: If88c00a326c025af885d061ca95588939195b7c5
Implements: blueprint run-unit-tests-on-postgresql
Found the root of the problem:
Heat-engine uses queue 'engine' in rabbit, therefore we
need to rename our queue in order to increase uniqueness
Closes-Bug: #1324967
Change-Id: Iaf8a8f9f0357ae15ee4fc47d0031572a162526e6
- Changed all formats to look more like the default formatters. This simplifies parsing
in tools like logstash etc.
- Changed location of all log files to end up in /var/log instead of /tmp. /var/log is
a better default than /tmp for log files.
- In wf_trace_conf_logging.conf.sample using separate formatters for different handlers.
This accounts for the usecase of each handler having its own specific log format to
reduce redundancy in log statements.
Change-Id: I467f4d493cd379c11cf7e5e872e4baa4faeac674
Closes-Bug: 1322740
Removed outdated configuration options from mistral.config. Used
cfg.CONF.import_opt in engine to avoid NoSuchOptError. Removed
the imports of mistral.config using importutils. Generated new
sample configuration file.
Change-Id: I4b5ea7ef2a9b6717e6f33256107409c228575048
Implements: blueprint mistral-config-cleanup
Currently, Mistral registers the configuration options under
keystoneclient middleware auth_token twice: by default when the
keystoneclient.middleware.auth_token module is loaded and in mistral.config
under a separate keystone group. This change removes the keystone group
in mistral.config, modifies API to use the default opts registered under
keystone_authtoken, and adds unit tests to ensure the keystone middleware
is called when auth is enabled.
Change-Id: I18948f7fa8b93b458335eb08176427a75c568873
Implements: blueprint mistral-config-cleanup
Currently, the launch options are only all, api, engine, and
executor. We want to allow launch options to start any combination
of servers such as api and engine or engine and executor. The
launch script is modified to the --server command line option to
accept a comma delimited list.
Change-Id: I4ce31f5fabd4de3b2f8f0e4c5ef661ed4ec7e5b2
Implements: blueprint mistral-launch-options
Refactor current engine process to instantiate the concrete engine using
stevedore. The current engine uses importutils to load the concrete engine.
Since the executor is tightly coupled to the engine, it is also refactored
to use stevedore. The ScalableEngine is renamed to DefaultEngine and moved
to the mistral.engine.drivers.default namespace. The setup.cfg file is
updated to include entry points for the engine and executor plugins.
Change-Id: Ia9d15b25ca96387e5ac22c1a86cffc7a816e92fd
Implements: blueprint mistral-engine-plugin
* Rabbit configs are moved to 'default' section due to
oslo.messaging doesn't read these parameters from
section 'rabbit'
Change-Id: I39393a779076f36c6142d770efa268178437332b
Refactored engine to run as a standalone process. The engine is
modified to use the RPC client/server design pattern from
oslo.messaging. A new launch option is included to run the
engine separately. The API server communicates with the engine
via the RPC client. A pecan hook is used to pass a common client
instance with appropriate transport configuration to the API.
Change-Id: I9ca757aedad764fd38645a5b858800d69808bb95
Implements: blueprint mistral-engine-standalone-process
* Created new log configuration for pretty workflow output.
* Since this config opt is used before importing
executor.server, I include some refactor of unit tests.
Implements blueprint mistral-pretty-workflow-logging
Change-Id: Ia9b8b5d401afafe99d6133685a4d3abbcb8ba2e3
Refactored launch script to start the API and executor on the same process
so the transport for a oslo.messaging fake driver can be shared. A transport
attribute is added to the abstract engine as a class attribute to reference
the transport object.
Change-Id: I4b8684ebded9eb993749f2503380e078087edd7d
Implements: blueprint mistral-inproc-executor
To make it easy to set Mistral for debugging.
1) Make engine configurable.
2) Enable debugger via command line. Passing --use-debugger will make PyDev or PyCharm show
local variables in debugging session.
Also, a tiny fix in action_factory.
Change-Id: Id054ae5156649b1f6bbba7131e54bf21d71c659a
* Moved pecan configuration to oslo config
* Refactored functional base test
* Got rig of thread local related code in mistral/context.py
* Added new exception ApplicationContextNotFoundException
* Fixed example configuration file
* Made minor cosmetic changes (blank lines, naming)
Change-Id: I1899ce2562a34ebafa20c5735bdf4f0c80dd0175
* Asynchronous tasks
* Separate stateless task executors
* Notification of task executors via RabbitMQ
TODO:
* DB transaction management
* Analyzing graph of tasks to identify what should be started
* Thorough automated tests
Partially implements blueprint: mistral-poc
Partially implements blueprint: mistral-workflow-execution
Partially implements blueprint: mistral-engine-ha
Change-Id: I022e1b73b9a3c58f1fbc259ba3e5995acd2bf6c3
* Adding required dependencies to use and test pecan/wsme app
* Adding additional modules from oslo-incubator
* Adding configuration files mistral.conf and specific file
loggin.conf for logging
* Adding dependencies for testing: fixtures, testtools, mock
* Updating tox.ini to run nosetests for py26 and py27 environments
Change-Id: I4fd63820aaaf3b50fb1c981031f60faa68a6d307