From f5e0922b9282dccb5d79c80c58801f455495c4ce Mon Sep 17 00:00:00 2001
From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Date: Tue, 13 Sep 2016 15:07:20 +0000
Subject: Revert "patches, docs: Remove MySQL WSREP SST provider"

This reverts commit 8a696682b3fd0cb5f32ddaca8ede5db7b001a57f.

Change-Id: Ib1698643639436243768f4a8209c4d68314a97ca
---
 ...llow-configuring-MySQL-WSREP-SST-provider.patch | 58 ++++++++++++++++++++++
 ...configuration-item-for-WSREP-SST-provider.patch | 45 +++++++++++++++++
 2 files changed, 103 insertions(+)
 create mode 100644 patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch
 create mode 100644 patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch

(limited to 'patches')

diff --git a/patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch b/patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch
new file mode 100644
index 00000000..6d9bc8c7
--- /dev/null
+++ b/patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch
@@ -0,0 +1,58 @@
+From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Date: Wed, 20 Apr 2016 14:54:42 -0700
+Subject: [PATCH] Allow configuring MySQL WSREP SST provider
+
+On some arm64 platforms xtrabackup is broken due to an outdated
+MySQL/InnoDB code that it uses which is missing. To work around that
+this patch allows choosing which WSREP SST provider to use. Aside of
+already supported `xtrabackup-v2` and `mysqldump`, the `rsync` method
+has been added as it is comparable to xtrabackup in terms of speed (or
+is faster), has been validated to work on arm64 platforms where
+xtrabackup is broken and it doesn't rely on db mechanisms to perform the
+state transfer.
+
+This patch is tied to a patch in fuel-web that introduces configuration
+options for WSREP SST provider and in case nothing is specified, it
+will choose `xtrabackup-v2`.
+
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+---
+ deployment/puppet/osnailyfacter/manifests/database/database.pp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/deployment/puppet/osnailyfacter/manifests/database/database.pp b/deployment/puppet/osnailyfacter/manifests/database/database.pp
+index 1755c34..0cfbc8c 100644
+--- a/deployment/puppet/osnailyfacter/manifests/database/database.pp
++++ b/deployment/puppet/osnailyfacter/manifests/database/database.pp
+@@ -8,4 +8,5 @@ class osnailyfacter::database::database {
+   $use_syslog               = hiera('use_syslog', true)
+   $primary_controller       = hiera('primary_controller')
+   $mysql_hash               = hiera_hash('mysql', {})
++  $wsrep_hash               = hiera_hash('mysql_wsrep', {})
+   $debug                    = pick($mysql_hash['debug'], hiera('debug', false))
+@@ -22,6 +23,7 @@ class osnailyfacter::database::database {
+ 
+   $mysql_root_password       = $mysql_hash['root_password']
+   $enabled                   = pick($mysql_hash['enabled'], true)
++  $wsrep_sst_method          = pick($wsrep_hash['wsrep_method'], 'xtrabackup-v2')
+ 
+   $galera_node_address       = get_network_role_property('mgmt/database', 'ipaddr')
+   $galera_nodes              = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('database_nodes'), 'mgmt/database'))
+@@ -216,7 +218,7 @@ class osnailyfacter::database::database {
+         'wsrep_cluster_name'             => $galera_cluster_name,
+         'wsrep_provider_options'         => $wsrep_provider_options,
+         'wsrep_slave_threads'            => $wsrep_slave_threads,
+-        'wsrep_sst_method'               => 'xtrabackup-v2',
++        'wsrep_sst_method'               => $wsrep_sst_method,
+         #TODO (sgolovatiuk): fix this, should be a specific user not root
+         'wsrep_sst_auth'                 => "\"root:${mysql_root_password}\"",
+         'wsrep_node_address'             => $galera_node_address,
+@@ -269,7 +271,7 @@ class osnailyfacter::database::database {
+       wsrep_group_comm_port => $wsrep_group_comm_port,
+       bind_address          => $galera_node_address,
+       local_ip              => $galera_node_address,
+-      wsrep_sst_method      => 'xtrabackup-v2',
++      wsrep_sst_method      => $wsrep_sst_method,
+       override_options      => $override_options,
+     }
+ 
diff --git a/patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch b/patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch
new file mode 100644
index 00000000..87f0a2fd
--- /dev/null
+++ b/patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch
@@ -0,0 +1,45 @@
+From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Date: Wed, 20 Apr 2016 15:05:15 -0700
+Subject: [PATCH] Add configuration item for WSREP SST provider
+
+This patch adds a radio button in "OpenStack Services" tab of the
+environment settings to configure which WSREP SST provider to use for
+MySQL.
+
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+---
+ nailgun/nailgun/fixtures/openstack.yaml | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml
+index 62e6b73..4b123b9 100644
+--- a/nailgun/nailgun/fixtures/openstack.yaml
++++ b/nailgun/nailgun/fixtures/openstack.yaml
+@@ -918,6 +918,27 @@
+             description: "Name for Mongo replication set"
+             weight: 30
+             type: "text"
++        mysql_wsrep:
++          metadata:
++            label: "Database configuration"
++            weight: 15
++            group: "openstack_services"
++          wsrep_method:
++            value: "xtrabackup-v2"
++            label: "WSREP SST provider"
++            description: "This setting changes the wsrep_sst_method switch in the MySQL Galera cluster configuration."
++            weight: 10
++            type: "radio"
++            values:
++              - data: "xtrabackup-v2"
++                label: "xtrabackup-v2"
++                description: "Use Percona xtrabackup v2 provider. This is broken on some ARM64 platforms due to outdated MySQL/InnoDB code used by xtrabackup."
++              - data: "rsync"
++                label: "rsync"
++                description: "Use rsync provider. Use if xtrabackup is broken on your platform."
++              - data: "mysqldump"
++                label: "mysqldump"
++                description: "Use mysqldump provider (untested)."
+         additional_components:
+           metadata:
+             label: "Additional Components"
-- 
cgit