Files
Renat Akhmerov f818f1f02c Add main entities related to action providers
* This patch adds the base infrastructure for the new concept
  that we call Action Providers. It will allow to refactor
  Mistral in a way that all action management will be encapsulated
  with action providers. For example, Mistral Engine needs to
  schedule actions while processing a workflow. Now it has to
  access DB itself to find an action definition (meta info about
  what this action is, like python class, input params etc.),
  then prepare input parameters, validate parameters and send a
  message to an executor to run it. In many other places, Mistral
  also directly access DB to fetch an action definition. It's
  not flexible because we assume that definitions of Mistral
  actions must always be stored in DB. The concept of an Action
  Provider allows moving away from that limitation. A particular
  implementation of the ActionProvider interface can store action
  definitions in any suitable way, even fetching them using
  various transport protocols like AMQP, HTTP, TCP, or anything
  else. An action provider may also generate action definitions
  dynamically, like creating wrappers around a set of operating
  system commands. But for the rest of the system it won't matter
  what happens inside action providers. All details will be
  hidden behind a unified interface.
* Added ActionDescriptor interface and its convenience base
  abstract implementation. ActionDescriptor is an entity
  representing an action before it's instantiated. It carries
  the most important meta information about an action like name,
  description, input parameters etc. It is also responsible for
  validating action input parameters and instantiating a real
  action.
* Added PythonActionDescriptor which represents a regular action
  written as a Python class.
* Added CompositeActionProvider that delegates calls find() and
  find_all() to a collection of other action providers.
* Minor style changes.

Partially implements: bp/mistral-action-providers

Change-Id: Ic9108c9293731b3576081c75f2786e1156ba0ccd
2020-09-03 17:16:50 +07:00
..
2016-07-15 09:29:11 -04:00
2016-07-15 09:29:11 -04:00