This patch introduces a common rpc pattern to ensure
that the rpc transport is shared where possible. This
helps prevent rpc connection leaks and should ensure
that we are making the best possible use of all
available rpc connections.
Change-Id: Ib42e368cfda2b148a07df0bd74046739f40f7018
Add notifications about environment events that are required for
tracking. These are AMQP notifications and oslo.messaging library
is used for sending them.
The follow event types are provided:
- environment.deploy.end
This event is issued on successful finish of environment deployment,
provides general information about environment and also deployment
start and finish times
- environment.delete.end
This event is issued on environment delete (and abandon as well)
- environment.exists
This is a period event, it's issued for every existing environment
that has successful deployments
There are 2 new configuration options controlling these notifications:
- stats.env_audit_period
Controls how often to send environment.exists notification, by
it's once per hour (60 minutes)
- env_audit_enabled
Allows to completely disable environment-related notifications. By
default notifications are enabled.
Change-Id: I8dee2456b7ccab7c0c167aa21abb9710959ebb30
This patch fixes the murano gate to align with a recent change [0]
made to oslo.messaging in which the kwarg topic was changed to
topics.
[0] https://review.openstack.org/#/c/433950/
Change-Id: I9c70448914063976264dc40b10f238105bdfccc1
Co-Authored-By: zhurong <aaronzhu1121@gmail.com>
'oslo_utils.timeutils.isotime()' is deprecated in version '1.6' and
will be removed in a future version: use datetime.isoformat() instead.
Change-Id: I7ac6508510bc0fa131368c27dd8fdcababc37d0b
Closes-Bug: #1514331
We should separate transports for the RPC and Notifiers
in order to have a possibility of using different messaging
configurations, like rabbit for RPC and kafka for notifications.
e.g.
[DEFAULT]
rpc_backend = rabbit
[oslo_messaging_rabbit]
rabbit_hosts = ...
rabbit_password = ...
rabbit_userid = ...
[oslo_messaging_notifications]
driver = ...
transport_url = kafka://...
topics = ...
Change-Id: I965fdb4bb1883d05c43766cf12d620d7ab038e36
Closes-Bug: #1620545
We use DATETIME SQL type for created/updated columns
everywhere through the database. In SQL standard
DATETIME defaults to DATETIME(6) which is 6 digit
fraction second part. However MySQL defaults it
to DATETIME(0) for backward compatibility. In result
status messages timestamps get rounded to the
second boundary and if there are several status
messages were generated within a second
after table sort they might be shown in a different
order.
This commit adds MySQL migration that increases
resolution for the status table and adds subseconds
to the generated status repor timestamps.
Change-Id: Ice8c2d82c6a320c7f73c27f4c60c87bef55b8d95
Related-Bug: #1462270
Report status messages were ordered by the time
they were inserted into database. And that is the
time they were received and processed not the
time the report message was generated. So if
deployment generates reports faster than they
get processed it can be that they accumulate
in RabbitMQ and then received by the API not
in original order. Another possibility is that
several API instances would get those messages
and because of the race condition insert them
into database in wrong order.
With this fix report timestamp becomes part
of the report itself and is inserted into "created"
table column. Thus created is now when the
report was created, not the database record.
Change-Id: I1d41d644ed399cb9d58192e567f11187fa2cf593
Closes-Bug: #1462270
The builtin basestring abstract type was removed in python3,
use str instead, we need to use six.string_types to replace
the basestring for py3 compatibility.
This patch was generated by the following tool using 'basestring'
option.
https://github.com/haypo/sixer
Command:
python sixer.py -w basestring murano/
This also adds a check to murano/hacking/checks.py that should
catch this error in the future.
Blueprint murano-python-3-support
Change-Id: I26c236ce6dd2fffd6a4ca50e55ad62deb01bd9dd
Since python 2.2, use of types module is not prefered way to
access the type hence it is replaced by using names of built-in
factory functions.
Change-Id: Ibdcc1ae75204f67076edab5edcffe94a9f1f1d8e
Implements: blueprint replace-types-module-with-new-style-classes
* Code migrated to yaql 1.0.0
* New MuranoPL object initialization
* Lots of refactoring
See referenced specs for more information
Implements: blueprint migrate-to-yaql-vnext
Implements: blueprint object-construction
Depends-on: I7f314634ab5f08a521e51082d5c84dffca4b0b5c
Closes-Bug: #1454264
Change-Id: I740a4f83c76d8b56a1da585a739d770ef823a524
To follow latest community practices we need to use oslo_log in
murano instead of handcrafted libs.
Unsupported log level 'audit' was changed to 'info'.
Change-Id: I40c0f3790e34bf80d0b63554e86b3cbc019eefca
In the several places the CONF variable is used from the murano.config.
This patch declares the local CONF variable and uses the oslo_config library.
Change-Id: I1f9a42f7f2cf7fef2cf0d63b185428dfddd9e78e
The Oslo libraries have moved all of their code out of the 'oslo'
namespace package into per-library packages. The namespace package was
retained during kilo for backwards compatibility, but will be removed by
the liberty-2 milestone. This change removes the use of the namespace
package, replacing it with the new package names.
The patches in the libraries will be put on hold until application
patches have landed, or L2, whichever comes first. At that point, new
versions of the libraries without namespace packages will be released as
a major version update.
Please merge this patch, or an equivalent, before L2 to avoid problems
with those library releases.
Blueprint: remove-namespace-packages
https://blueprints.launchpad.net/oslo-incubator/+spec/remove-namespace-packages
Change-Id: I975592f3694be42d52685ebf606f6d3012caf1a8