Fix database tasks when detached database is used

This patch essentially reverts change sets
Ia1d45f45cbbd91b7c6cacd4aa46dae0a92e4156e and
I38ad9d5fd63dda374274858632710c121d721451 which were created because
of the regression introduced by
Icc27b6701726afb98df71050c344c6cd9525301e. But we are also reducing
the cross-depends to only match the primary-database and database
tasks to prevent possible loops.

We can only wait on the mysql backend if it's configured and we don't
configure the mysql haproxy backend if mysql is not enabled on a node.
Additionally we need to wait until the database is actually setup before
running any of the db tasks.

Change-Id: I4b9bc29b4134872908af1900f6a3e5ccbdb9e392
Closes-Bug: #1591256
This commit is contained in:
Alex Schultz 2016-06-10 13:32:11 -06:00
parent a83d3016d9
commit bedd29639a
11 changed files with 13 additions and 37 deletions

View File

@ -51,9 +51,7 @@
version: 2.1.0
groups: [primary-controller]
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
required_for: [aodh]
condition:
yaql_exp: >

View File

@ -44,9 +44,7 @@
changedAny($.glance, $.mysql, $.network_metadata.vips,
$.get('database_vip'))
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/glance/db.pp
puppet_modules: /etc/puppet/modules

View File

@ -64,9 +64,7 @@
$.network_metadata.get('vips',{}).get('management'),
$.get('database_vip'), $.get('mysql_custom_setup_class'))
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/heat/db.pp
puppet_modules: /etc/puppet/modules

View File

@ -30,9 +30,7 @@
version: 2.1.0
groups: [primary-controller]
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
condition:
yaql_exp: >
$.ironic.enabled and changedAny($.ironic, $.mysql, $.get('database_vip'),

View File

@ -84,9 +84,7 @@
changedAny($.network_metadata, $.keystone, $.mysql,
$.get('database_vip'))
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/keystone/db.pp
puppet_modules: /etc/puppet/modules

View File

@ -35,9 +35,7 @@
version: 2.1.0
groups: [primary-controller]
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
condition:
yaql_exp: >
$.murano.enabled and changedAny(

View File

@ -38,9 +38,7 @@
changedAny($.cinder, $.mysql, $.network_metadata.vips,
$.get('mysql_custom_setup_class'))
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/openstack-cinder/db.pp
puppet_modules: /etc/puppet/modules

View File

@ -62,9 +62,7 @@
changedAny($.nova, $.mysql, $.network_metadata.vips,
$.get('database_vip'))
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/openstack-controller/db.pp
puppet_modules: /etc/puppet/modules

View File

@ -9,9 +9,7 @@
changedAny($.quantum, $.quantum_settings, $.mysql,
$.network_metadata.vips, $.get('database_vip'))
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/openstack-network/db.pp
puppet_modules: /etc/puppet/modules

View File

@ -34,9 +34,7 @@
version: 2.1.0
groups: [primary-controller]
cross-depends:
- name: primary-database
- name: database
role: self
- name: /^(primary-)?database$/
required_for: [sahara]
condition:
yaql_exp: >

View File

@ -44,13 +44,6 @@ class osnailyfacter::database::database {
validate_string($mysql_root_password)
validate_string($status_password)
# NOTE(aschultz): wait for backend is outside of the $enabled so that in the
# case of detached-db, the database task on the controllers simply waits
# until the database is up on the other systems. This will prevent the
# various tasks from the primary controller from continuing until the database
# is available.
include ::osnailyfacter::database::database_backend_wait
if $enabled {
if '/var/lib/mysql' in $::mounts {
@ -335,6 +328,9 @@ class osnailyfacter::database::database {
Class['::cluster::galera_grants'] ->
Class['::cluster::galera_status']
}
include ::osnailyfacter::database::database_backend_wait
Class['::cluster::mysql'] ->
Class['::cluster::galera_status'] ->
::Osnailyfacter::Wait_for_backend['mysql']