Mike Bayer 8c374b1e7f Use oslo_db for create_engine
The use of plain SQLAlchemy create_engine in Zaqar bypasses
lots of oslo_db features that are associated with its
version of create_engine, some useful and some critical.

Among favorable behaviors that are added:

* The SQLite PRAGMA FOREIGN KEYS call is abstracted into the
  sqlite_fk flag
* The engine is given a pessimistic "ping" event, which emits
  a "SELECT 1" upon connection checkout which will then recycle
  the connection if the backing database is no longer connected.
  As we are using a connection pool, if the database has been
  restarted, or in the case of MySQL a default timeout of eight
  hours idle has passed, existing pooled connections will be stale.
  Upcoming SQLAlchemy 1.2 includes this feature as a simple flag
  but for now, oslo_db implements the event listener as directed
  by SQLA docs
* The errors raised by the DBAPI, and then wrapped by SQLAlchemy,
  are further sub-classified.  In particular, Zaqar seems to use
  a lot of IntegrityError catches to detect duplicate entry and
  foreign key constraint conditions.  oslo_db parses these out on
  a per-database-basis into individual DBDuplicateEntry,
  DBReferenceError, and other error classes, allowing Zaqar to
  respond specifically to the sub-class of IntegrityError or
  allow it to propagate if the condition is unhandled.
* checks for MySQL SQL_MODE and best practice driver (pymysql)
  will emit warnings if these conditions are not met.
* Gets Zaqar ready for further oslo.db integration and guides
  new features into oslo_db, including a potential "mysql timezone"
  setting

Change-Id: I16c3ed89e006e132bbd0295be1dfd0b561b2037c
Resolves-bug: https://bugs.launchpad.net/tripleo/+bug/1691951
2017-06-12 21:29:11 -04:00
2017-04-25 16:12:10 +08:00
2017-02-02 20:20:29 +13:00
2017-06-12 21:29:11 -04:00
2017-02-27 01:52:38 +00:00
2017-04-10 16:01:48 +05:30
2016-02-18 20:41:07 -05:00
2014-06-04 22:31:55 +02:00
2015-11-16 00:27:43 +05:30
2014-09-08 13:55:13 +02:00
2017-01-09 20:10:49 +00:00
2014-03-21 10:16:28 +01:00
2016-12-24 03:27:09 +00:00
2017-06-12 21:29:11 -04:00
2017-03-04 19:59:54 +01:00
2017-03-10 03:40:58 +00:00
2017-03-04 18:58:42 +01:00

Team and repository tags

image

Zaqar

Zaqar is a multi-tenant cloud messaging and notification service for web and mobile developers. It combines the ideas pioneered by Amazon's SQS product with additional semantics to support event broadcasting.

The service features a fully RESTful API, which developers can use to send messages between various components of their SaaS and mobile applications, by using a variety of communication patterns. Underlying this API is an efficient messaging engine designed with scalability and security in mind.

Other OpenStack components can integrate with Zaqar to surface events to end users and to communicate with guest agents that run in the "over-cloud" layer. Cloud operators can leverage Zaqar to provide equivalents of SQS and SNS to their customers.

General information is available in wiki:

https://wiki.openstack.org/wiki/Zaqar

The API v2.0 (stable) specification and documentation are available at:

https://wiki.openstack.org/wiki/Zaqar/specs/api/v2.0

Zaqar Contributor Documentation, the source of which is in doc/source/, is available at:

http://docs.openstack.org/developer/zaqar/

Contributors are encouraged to join IRC (#openstack-zaqar channel on irc.freenode.net):

https://wiki.openstack.org/wiki/IRC

Information on how to run unit and functional tests is available at:

http://docs.openstack.org/developer/zaqar/running_tests.html

Information on how to run benchmarking tool is available at:

http://docs.openstack.org/developer/zaqar/running_benchmark.html

Using Zaqar

If you are new to Zaqar and just want to try it, you can set up Zaqar in the development environment.

Using Zaqar in production environment:

Coming soon!

Using Zaqar in development environment:

The instruction is available at:

http://docs.openstack.org/developer/zaqar/devref/development.environment.html

This will allow you to run local Zaqar server with MongoDB as database.

This way is the easiest, quickest and most suitable for beginners.

Description
OpenStack Messaging (Zaqar)
Readme 46 MiB
Languages
Python 96.1%
PHP 1.5%
Shell 1.2%
HTML 0.8%
Lua 0.3%