Resource optimization service for OpenStack.
Go to file
Taylor Peoples 9a6811ae6b Create OpenStackClients convenience class
The OpenStackClients class provides a convenient way to create and
cache client instances.  The idea behind this code comes from Magnum
[0].

The OpenStackClients class will act as the manager of other project's
clients, providing an easy way to fetch instances of said clients. This
will allow the clients to be cached.

An instance of OpenStackClients is created for every call that comes
into the decision engine and the applier, using the request context to
pass needed (domain id) parameters to get a Keystone session.  This
instance should be shared as much as possible to avoid additional
unneccessary connections to the other services.

This class will also allow for the version of each client to be
configurable via the watcher.conf file.

The method by which a Keystone session is also changed to use the
keystoneauth1.loading library.  In order to avoid DuplicateOptErrors
with the keystone_authtoken group used for the keystonemiddleware in the
API code, a new conf group named "watcher_clients_auth" is created.  A
typical configuration using a password authentication scheme will look
like:
  [watcher_clients_auth]
  auth_type = password
  auth_url = http://<server-ip>:<port>
  username = <username>
  password = <password>
  project_domain_id = default
  user_domain_id = default

[0]: https://github.com/openstack/magnum/blob/master/magnum/common/clients.py

DocImpact
Change-Id: Iab9d0b304099686da2e9e2b19e8b1de4332ff378
Implements: blueprint external-api-versioning
Closes-Bug: #1530790
Closes-Bug: #1539670
Closes-Bug: #1522774
2016-02-03 02:27:26 +01:00
devstack Create OpenStackClients convenience class 2016-02-03 02:27:26 +01:00
doc/source Create OpenStackClients convenience class 2016-02-03 02:27:26 +01:00
etc/watcher Create OpenStackClients convenience class 2016-02-03 02:27:26 +01:00
watcher Create OpenStackClients convenience class 2016-02-03 02:27:26 +01:00
watcher_tempest_plugin Tempest API tests on /actions 2016-01-27 10:02:59 +01:00
.coveragerc Remove pragma no cover from code 2015-12-15 10:14:40 +01:00
.gitignore Fix 'Module index' broken HTTP link 2016-01-22 12:58:53 +01:00
.gitreview fix dependencies version 2015-10-22 16:34:14 +02:00
.mailmap initial version 2015-06-04 15:27:57 +02:00
.testr.conf initial version 2015-06-04 15:27:57 +02:00
CONTRIBUTING.rst initial version 2015-06-04 15:27:57 +02:00
HACKING.rst Add Creative Commons Attribution header to documentation 2015-12-20 01:51:00 -06:00
LICENSE initial version 2015-06-04 15:27:57 +02:00
MANIFEST.in initial version 2015-06-04 15:27:57 +02:00
README.rst Add Creative Commons Attribution header to documentation 2015-12-20 01:51:00 -06:00
babel.cfg initial version 2015-06-04 15:27:57 +02:00
requirements.txt Create OpenStackClients convenience class 2016-02-03 02:27:26 +01:00
setup.cfg Fix 'Module index' broken HTTP link 2016-01-22 12:58:53 +01:00
setup.py initial version 2015-06-04 15:27:57 +02:00
test-requirements.txt Added doc8 2016-01-22 15:56:47 +01:00
tox.ini Added doc8 2016-01-22 15:56:47 +01:00

README.rst

Watcher

OpenStack Watcher provides a flexible and scalable resource optimization service for multi-tenant OpenStack-based clouds. Watcher provides a complete optimization loop—including everything from a metrics receiver, complex event processor and profiler, optimization processor and an action plan applier. This provides a robust framework to realize a wide range of cloud optimization goals, including the reduction of data center operating costs, increased system performance via intelligent virtual machine migration, increased energy efficiency—and more!