As Openstack projects continue to have longer database migration
chains, the Puppet default timeout of 300 seconds for an execution
is becoming too short a duration on some hardware, leading to timeouts.
As projects continue to add more migration scripts without pruning
the base, timeouts will continue to become more frequent unless
this time can be expanded.
Change-Id: I19e62ec5f811b262b464815a5d7b6b7e2ed2eac1
Closes-Bug: #1904962
... and migrate it to openstacklib so that all logics about database
configuration are implemented in one common place.
Depends-on: https://review.opendev.org/#/c/728595/
Change-Id: I952e990e1f56d6e0226eac25397ab3062074551f
This changes all the puppet 3 validate_* functions
to use the validate_legacy function.
The validate_legacy function has been available since
about three years but require Puppet >= 4.4.0 and since
there is Puppet 4.10.12 as latest we should assume people
are running a fairly new Puppet 4 version.
This is the first step to then remove all validate function
calls and use proper types for parameter as described in spec [1].
[1] https://review.openstack.org/#/c/568929/
Change-Id: I5d1ebaf9a3b7f6637973ea846d3571c7364feb54
In order to make easy orchestration on all OpenStack db-sync, add this
tag so people can use this tag in composition layer.
A use case it to set some orchestration to make sure MySQL Galera is
ready before running any Exec with this tag.
Change-Id: I7baded10a128532f7267903fa8d14f576cd9f47a
Closes-Bug: #1755102
If db sync fails, it is never retried leading to errors. So, this
patch adds retries for db_sync to avoid sync fails.
Change-Id: I57496bae7a13a300cdc79b22780bce0f9134ddc4
Closes-Bug: #1628580
Move all dependency tracking to an external class which simplifies the
relationships and allows managing Trove without necessarily using
packages.
This change also cleans up how the client is handled to make
it more configurable and match other modules.
Finally the reference to the deprecated and non-functional
keystone::python class is dropped.
Change-Id: I943685fbeb114dead80b7465b8f5c564a0bc9fe0
Bug #1365561 has been marked as fixed so it should be safe to remove
hack adding group and file before installing package.
Change-Id: Id447a47a056a41d8c98b01d6769f4121a36d7aae
The db sync command resource title is not consistent with the title in
resource colector. This patch fixes the name for consistency.
Change-Id: I46e26f7afd1907ace4121bbf570c58d0939687ff
Because packaging is trying to run dbsync while default config is
broken, as a woraround we manage Trove config *before* installing the
package so we can continue the installation with Puppet.
Also add a require to Package['trove-api'] on trove::db::sync class to
make sure trove-manage is installed before running the actual command.
This is a workaround and it could be reverted later when packaging issue
is triaged.
Change-Id: I82dc8b653bbbdc28bd165292649332310f252916
Partial-bug: #1451134
Let migrate to the new openstacklib::db::postgresql helper for
postgresql backend. This commit also unpin postgresql fixture
(openstacklib support now the latest version of postgre module).
Change-Id: I9bf307d758c112a9b458dab3dfba26281278e38f
Implements: blueprint commmon-openstack-database-resource
Add puppet parameters lint (with puppet-lint-param-docs gem) and fix
missing documentations, this commit also fix manifest lint issues
(due to puppet-lint upgrade) and metadata.json file (SPDX license,
and open dependencies).
Change-Id: Iab6f84f42e8874a10a5fcc886b4a6556fe3e1ed0
- The trove module does not specify a 'trove' package resource, so use
the 'python-troveclient' package resource.
- The trove module does not specify a 'DEFAULT/sql_connection'
keystone_config resource and has no need to manage keystone configs,
so use trove_config.
- The trove module does not specify a 'trove' user. The trove user is
created by the trove client package, which is already related by the
subscribe metaparameter, so remove the require relationship.
Change-Id: I4e9ae0403439a51889e5fb884e689f91b874ad4d
When using version >= 2.2 of the MySQL module, setting up the database
for Trove depended on the MySQL service (Service['mysqld']). However,
if the service is not managed by Puppet (e.g. it is managed through
Pacemaker instead), this would cause catalog compilation to fail because
there is no Service['mysqld']. This is the case when the MySQL module is
called with service_manage => false. Requiring Class['mysql::server']
instead fixes this.
Change-Id: I455d8e11d5ec18661fd18e797df9e5c7b654700d
Closes-Bug: 1349316
Add MySQL Support in the module:
- manage user
- manage database
- manage db permissions
- manage the db_sync to fill Trove schema
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>