The watcher.decision_engine.planner.base Module

The watcher.decision_engine.planner.base Module

The Watcher Planner is part of the Watcher Decision Engine.

This module takes the set of Actions generated by a Strategy and builds the design of a workflow which defines how-to schedule in time those different Actions and for each Action what are the prerequisite conditions.

It is important to schedule Actions in time in order to prevent overload of the Cluster while applying the Action Plan. For example, it is important not to migrate too many instances at the same time in order to avoid a network congestion which may decrease the SLA for Customers.

It is also important to schedule Actions in order to avoid security issues such as denial of service on core OpenStack services.

Some default implementations are provided, but it is possible to develop new implementations which are dynamically loaded by Watcher at launch time.

See System Architecture for more details on this component.

class watcher.decision_engine.planner.base.BasePlanner(config)[source]

Bases: watcher.common.loader.loadable.Loadable

classmethod get_config_opts()[source]

Defines the configuration options to be associated to this loadable

Returns:A list of configuration options relative to this Loadable
Return type:list of oslo_config.cfg.Opt instances
schedule(context, audit_uuid, solution)[source]

The planner receives a solution to schedule

Parameters:
  • solution (BaseSolution subclass instance) – A solution provided by a strategy for scheduling
  • audit_uuid (str) – the audit uuid
Returns:

Action plan with an ordered sequence of actions such that all security, dependency, and performance requirements are met.

Return type:

watcher.objects.ActionPlan instance

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.